/*
 * Do not edit - this file auto-generated by macros.pl from:
 *   version.mac
 *   ./macros/altreg.mac
 *   ./macros/fp.mac
 *   ./macros/ifunc.mac
 *   ./macros/masm.mac
 *   ./macros/smartalign.mac
 *   ./macros/standard.mac
 *   ./macros/vtern.mac
 *   ./output/outaout.mac
 *   ./output/outas86.mac
 *   ./output/outbin.mac
 *   ./output/outcoff.mac
 *   ./output/outdbg.mac
 *   ./output/outelf.mac
 *   ./output/outmacho.mac
 *   ./output/outobj.mac
 */

#include "macros.h"
#include "nasmlib.h"
#include "hashtbl.h"
#include "outform.h"


/* --- from version.mac --- */

/*
 * %define __?NASM_MAJOR?__ 3
 * %define __?NASM_MINOR?__ 1
 * %define __?NASM_SUBMINOR?__ 0
 * %define __?NASM_PATCHLEVEL?__ 0
 * %define __?NASM_VERSION_ID?__ 003010000h
 * %define __?NASM_VER?__ "3.01"
 */

static const unsigned char nasm_stdmac_version_blob[101] = {
    0x78,0xda,0x93,0x52,0x4d,0x49,0x4d,0xcb,
    0xcc,0x4b,0x55,0x88,0x8f,0xb7,0xf7,0x73,
    0x0c,0xf6,0x8d,0xf7,0x75,0xf4,0xf2,0x0f,
    0xb2,0x8f,0x8f,0x57,0x30,0x96,0xc2,0x90,
    0xf2,0xf4,0x83,0x48,0x19,0xca,0xa2,0x4b,
    0x05,0x87,0x3a,0xc1,0x65,0x0d,0xe4,0xd1,
    0x65,0x03,0x1c,0x43,0x9c,0x3d,0x7c,0x5c,
    0xc3,0x5c,0x7d,0xc0,0xf2,0x1a,0xe8,0xf2,
    0x61,0xae,0x41,0xc1,0x9e,0xfe,0x7e,0xf1,
    0x9e,0x2e,0x60,0x79,0x03,0x63,0x03,0x43,
    0x03,0x20,0xc8,0x90,0xc5,0xa2,0x10,0xa4,
    0x42,0xc9,0x58,0xcf,0xc0,0x50,0x89,0x01,
    0x00,0xe2,0x05,0x37,0x00,
};

macros_t nasm_stdmac_version = {
    188, 101, nasm_stdmac_version_blob
};


/* --- from ./macros/altreg.mac --- */

/*
 * %define __?USE_ALTREG?__
 * %defalias __USE_ALTREG__ __?USEALTREG?__
 * %idefine r0 rax
 * %idefine r1 rcx
 * %idefine r2 rdx
 * %idefine r3 rbx
 * %idefine r4 rsp
 * %idefine r5 rbp
 * %idefine r6 rsi
 * %idefine r7 rdi
 * %idefine r0d eax
 * %idefine r1d ecx
 * %idefine r2d edx
 * %idefine r3d ebx
 * %idefine r4d esp
 * %idefine r5d ebp
 * %idefine r6d esi
 * %idefine r7d edi
 * %idefine r0w ax
 * %idefine r1w cx
 * %idefine r2w dx
 * %idefine r3w bx
 * %idefine r4w sp
 * %idefine r5w bp
 * %idefine r6w si
 * %idefine r7w di
 * %idefine r0b al
 * %idefine r1b cl
 * %idefine r2b dl
 * %idefine r3b bl
 * %idefine r4b spl
 * %idefine r5b bpl
 * %idefine r6b sil
 * %idefine r7b dil
 * %idefine r0h ah
 * %idefine r1h ch
 * %idefine r2h dh
 * %idefine r3h bh
 * %idefine r0l al
 * %idefine r1l cl
 * %idefine r2l dl
 * %idefine r3l bl
 * %idefine r4l spl
 * %idefine r5l bpl
 * %idefine r6l sil
 * %idefine r7l dil
 * %idefine r8l r8b
 * %idefine r9l r9b
 * %idefine r10l r10b
 * %idefine r11l r11b
 * %idefine r12l r12b
 * %idefine r13l r13b
 * %idefine r14l r14b
 * %idefine r15l r15b
 * %idefine r16l r16b
 * %idefine r17l r17b
 * %idefine r18l r18b
 * %idefine r19l r19b
 * %idefine r20l r20b
 * %idefine r21l r21b
 * %idefine r22l r22b
 * %idefine r23l r23b
 * %idefine r24l r24b
 * %idefine r25l r25b
 * %idefine r26l r26b
 * %idefine r27l r27b
 * %idefine r28l r28b
 * %idefine r29l r29b
 * %idefine r30l r30b
 * %idefine r31l r31b
 */

static const unsigned char nasm_usemac_altreg_blob[358] = {
    0x78,0xda,0x5d,0x90,0xbb,0x6a,0xc4,0x40,
    0x0c,0x45,0xf3,0x07,0x09,0xa9,0x52,0xaa,
    0x59,0x48,0x69,0x6b,0xfc,0xd8,0xad,0x96,
    0x14,0x4b,0x9a,0x54,0x79,0xd4,0xc6,0x63,
    0x3b,0x78,0x60,0x08,0x8b,0xb7,0xf0,0x7e,
    0x7e,0x24,0x58,0x92,0x7b,0x5d,0xd8,0x70,
    0x8f,0x84,0xe6,0x48,0x4f,0xbb,0x71,0xfa,
    0x4e,0x3f,0x93,0x74,0xdd,0xf1,0xeb,0xe3,
    0xd4,0xbd,0xbc,0x7d,0xbe,0x9f,0x5e,0x8f,
    0x5d,0xf7,0xec,0x85,0x3e,0xa7,0xfe,0x62,
    0xa5,0xff,0x4a,0xd7,0xdd,0x3a,0xff,0x1a,
    0xef,0x77,0xe9,0x36,0x62,0x29,0x64,0xe9,
    0xaf,0x90,0x4b,0x59,0x06,0xcc,0x2a,0xcb,
    0x88,0x39,0xc8,0x12,0x31,0x57,0xb2,0x5c,
    0xce,0x90,0x6b,0xab,0x63,0x6e,0xac,0x9e,
    0x20,0xb7,0x36,0x2f,0x3d,0xc0,0xfb,0xa3,
    0x4c,0xfd,0x15,0x40,0x69,0x60,0x40,0xa0,
    0x06,0x46,0x04,0xc1,0x40,0x44,0x50,0x19,
    0xb8,0x9c,0x01,0xd4,0xde,0x81,0xa0,0xf1,
    0x0e,0x7c,0xb6,0xf5,0xa1,0xe8,0x55,0xac,
    0xc2,0x77,0x58,0x85,0xef,0xb0,0x0a,0xdf,
    0x61,0x15,0xbe,0xc3,0x2a,0x7c,0x07,0xab,
    0xd3,0x1d,0xac,0x4e,0x77,0xb0,0x79,0xf4,
    0x7e,0x94,0x3e,0xe3,0xfb,0x51,0x06,0xcc,
    0x1a,0x65,0xc4,0x1c,0xa2,0xc4,0x8c,0x37,
    0x88,0xf6,0x3e,0x82,0xda,0x1a,0x08,0x34,
    0xd6,0x91,0x10,0xb4,0x36,0x32,0xe1,0xcc,
    0x62,0x96,0x7e,0x46,0x87,0x59,0x06,0xcc,
    0x3a,0xcb,0x88,0x39,0xcc,0x12,0x31,0x17,
    0x79,0xb3,0x43,0xde,0xec,0x90,0x37,0x3b,
    0xe4,0xcd,0x0e,0x79,0xbb,0x43,0xde,0xee,
    0x90,0xb7,0x3b,0x64,0xdf,0x01,0xc0,0x3e,
    0xdb,0x17,0x01,0x1c,0x0c,0x1c,0xe2,0x23,
    0x58,0x99,0xa6,0xfd,0x08,0x95,0x8e,0x4a,
    0x42,0xea,0x48,0x09,0x05,0x47,0x81,0x50,
    0xe5,0xa8,0x22,0x54,0x3b,0xaa,0x09,0x35,
    0x8e,0x1a,0x42,0xad,0xa3,0x96,0x90,0xab,
    0x97,0x7b,0x42,0x2e,0x5f,0x92,0xbd,0xba,
    0xbd,0x92,0xbd,0xba,0xbd,0x92,0xbd,0xba,
    0xbd,0x92,0xbd,0xba,0xbd,0x92,0xbd,0xba,
    0xbd,0x92,0xbd,0xba,0xbd,0x92,0xbd,0xba,
    0xbd,0x92,0xbd,0xba,0xbd,0x92,0xbd,0xba,
    0xbd,0x92,0xbd,0xba,0xbd,0x92,0x7d,0x70,
    0xfb,0x40,0xf6,0xc1,0xed,0x43,0x19,0xef,
    0x7e,0x01,0x5a,0x25,0x89,0x70,
};

static macros_t nasm_usemac_altreg = {
    1239, 358, nasm_usemac_altreg_blob
};


/* --- from ./macros/fp.mac --- */

/*
 * %define __?USE_FP?__
 * %defalias __USE_FP__ __?USEFP?__
 * %define Inf __?Infinity?__
 * %define NaN __?QNaN?__
 * %define QNaN __?QNaN?__
 * %define SNaN __?SNaN?__
 * %define float8(x) __?float8?__(x)
 * %define float16(x) __?float16?__(x)
 * %define bfloat16(x) __?bfloat16?__(x)
 * %define float32(x) __?float32?__(x)
 * %define float64(x) __?float64?__(x)
 * %define float80m(x) __?float80m?__(x)
 * %define float80e(x) __?float80e?__(x)
 * %define float128l(x) __?float128l?__(x)
 * %define float128h(x) __?float128h?__(x)
 * %imacro bf16 1-*.nolist
 * %rep %0
 * dw __?bfloat16?__(%1)
 * %rotate 1
 * %endrep
 * %endmacro
 */

static const unsigned char nasm_usemac_fp_blob[232] = {
    0x78,0xda,0x75,0x90,0x3d,0x0b,0xc2,0x30,
    0x10,0x86,0xdd,0xc4,0xdd,0x0f,0x70,0x8a,
    0x48,0xf0,0x03,0x94,0xa6,0x2d,0xc1,0xcd,
    0x49,0xc1,0x45,0x94,0xe2,0x1c,0xa2,0x4d,
    0x31,0xd0,0xa6,0x52,0x03,0xea,0xbf,0xf7,
    0x62,0x0c,0x34,0x45,0xa7,0xe3,0x9e,0xf7,
    0xc9,0xe5,0x92,0x2e,0x4e,0x45,0x26,0x95,
    0x40,0x8c,0xad,0x4f,0xc9,0x86,0x6d,0x0f,
    0x6b,0xc6,0x90,0x81,0x3c,0x97,0xfc,0x0e,
    0xd8,0x52,0x80,0xd6,0xf8,0x08,0x43,0x77,
    0x6a,0xa7,0x32,0xc3,0xa1,0x48,0x25,0xf5,
    0x0b,0xa2,0xbe,0x8b,0xf6,0x7c,0x6f,0xa2,
    0x23,0x54,0xc0,0x03,0x87,0x8f,0x7f,0x78,
    0xf2,0xe5,0x89,0xe5,0x23,0xc7,0xb3,0xbc,
    0xe4,0x7a,0x35,0x7d,0xce,0x4c,0x68,0x1b,
    0x88,0xa1,0x1f,0x7b,0x06,0xa1,0x75,0x85,
    0x50,0xeb,0x60,0xe7,0x9c,0x7d,0xe9,0xec,
    0x59,0xfe,0xa4,0x28,0xac,0x4f,0x8a,0xc2,
    0x5f,0x0e,0x8d,0xeb,0x0e,0x8d,0x1b,0xb7,
    0xd9,0x35,0x83,0xc2,0xdb,0x3a,0x28,0x7e,
    0x5b,0xc2,0xb7,0x84,0xb5,0x26,0xfe,0xeb,
    0xc2,0x55,0xee,0xbd,0x0f,0xfa,0x3f,0xde,
    0xb5,0xe1,0x5d,0xad,0x37,0xc0,0xb2,0xe0,
    0x97,0xaa,0x84,0x9f,0x20,0x14,0x91,0xc5,
    0x7c,0xa9,0xca,0x5c,0xde,0x75,0x1b,0x57,
    0xe2,0x86,0x70,0xd0,0x4b,0x1f,0xcd,0x8f,
    0xc1,0x64,0xd6,0xc1,0x55,0xa9,0xb9,0x16,
    0x88,0xb4,0xb1,0x50,0x29,0xa8,0x1d,0x53,
    0x3f,0x93,0x5a,0x6f,0x86,0x3c,0xb5,0x9f,
};

static macros_t nasm_usemac_fp = {
    571, 232, nasm_usemac_fp_blob
};


/* --- from ./macros/ifunc.mac --- */

/*
 * %define __?USE_IFUNC?__
 * %defalias __USE_IFUNC__ __?USEIFUNC?__
 * %idefine ilog2(x) (__?ilog2e?__(x))
 * %idefine ilog2e(x) (__?ilog2e?__(x))
 * %idefine ilog2w(x) (__?ilog2w?__(x))
 * %idefine ilog2fw(x) (__?ilog2w?__(x))
 * %idefine ilog2f(x) (__?ilog2f?__(x))
 * %idefine ilog2cw(x) (__?ilog2w?__(x) * 0 + __?ilog2c?__(x))
 * %idefine ilog2c(x) (__?ilog2c?__(x))
 */

static const unsigned char nasm_usemac_ifunc_blob[126] = {
    0x78,0xda,0x13,0x57,0x4d,0x49,0x4d,0xcb,
    0xcc,0x4b,0x55,0x88,0x8f,0xb7,0x0f,0x0d,
    0x76,0x8d,0xf7,0x74,0x0b,0xf5,0x73,0xb6,
    0x8f,0x8f,0x57,0x03,0x89,0x27,0xe6,0x64,
    0x26,0x16,0x03,0x65,0xe0,0x12,0xf1,0xf1,
    0x50,0x75,0x30,0x65,0xca,0xaa,0x99,0x50,
    0xfd,0x99,0x39,0xf9,0xe9,0x46,0x1a,0x15,
    0x9a,0x0a,0x1a,0x40,0x15,0x60,0x4e,0x2a,
    0x50,0x1e,0x28,0xa0,0xa9,0x82,0xaa,0x26,
    0x95,0x18,0x45,0xe5,0x28,0x8a,0xca,0xa1,
    0x8a,0x54,0x51,0x15,0xa5,0x61,0x57,0x85,
    0x66,0x54,0x1a,0x8a,0xa2,0x34,0xa8,0x22,
    0x6b,0x54,0x45,0xc9,0x58,0x8d,0x52,0xd0,
    0x52,0x30,0x50,0xd0,0x56,0x80,0x89,0x26,
    0x63,0xb7,0x20,0x19,0x45,0x2b,0x4c,0x11,
    0x03,0x00,0x7a,0x1b,0x6c,0xff,
};

static macros_t nasm_usemac_ifunc = {
    346, 126, nasm_usemac_ifunc_blob
};


/* --- from ./macros/masm.mac --- */

/*
 * %define __?USE_MASM?__
 * %defalias __USE_MASM__ __?USEMASM?__
 * %unimacro segment 1+
 * %imacro segment 0-1+.nolist
 * %define __?SECT?__ [segment %00 %1]
 * __?SECT?__
 * %endmacro
 * %imacro ends 0+.nolist
 * %null ends %00
 * %endmacro
 * %imacro proc 0-*.nolist
 * %rep %0
 * %ifidni %1,far
 * %idefine ret retf
 * %else
 * %idefine ret retn
 * %endif
 * %rotate 1
 * %endrep
 * %endmacro
 * %imacro endp 0.nolist
 * %null endp %00
 * %undef ret
 * %endmacro
 * %ifndef st
 * %idefine st(x) st %+ x
 * %endif
 * %idefine ptr __?masm_ptr?__
 * %idefine flat __?masm_flat?__
 * %idefine offset
 * %imacro end 0+.nolist
 * %endmacro
 * %idefine tbyte tword
 * default rel
 */

static const unsigned char nasm_usemac_masm_blob[299] = {
    0x78,0xda,0x65,0x52,0xd1,0x4a,0xc3,0x30,
    0x14,0xf5,0x45,0xc7,0x2a,0x4c,0x84,0x59,
    0x1f,0x86,0x10,0xd0,0x0b,0x6a,0x55,0xda,
    0x2f,0x18,0x22,0x7b,0xdc,0x53,0xf5,0x49,
    0x24,0xc4,0x35,0x91,0x40,0x9a,0x94,0x24,
    0xc3,0xf9,0xf7,0xde,0xcc,0x36,0x29,0xee,
    0xa1,0xa5,0x3d,0xe7,0xdc,0x73,0x4e,0x2e,
    0xc9,0xa1,0xe1,0x42,0x6a,0x4e,0x28,0x5d,
    0xbe,0xd5,0x2b,0xba,0x7e,0xae,0xd7,0x4b,
    0x4a,0x6f,0x02,0xcc,0x94,0x64,0x0e,0x89,
    0x01,0xa7,0xb4,0x57,0xf5,0xa2,0x39,0x6c,
    0xb5,0x6c,0xd9,0xc6,0x1a,0xe2,0xf8,0x57,
    0xcb,0xb5,0x27,0x55,0xb1,0x80,0x7f,0x50,
    0xf9,0x58,0x15,0x4f,0xda,0x28,0xe9,0xfc,
    0xf5,0x28,0xac,0x5e,0xbd,0xbc,0xa2,0x07,
    0x79,0x1f,0x74,0x50,0x96,0x04,0xaa,0x8f,
    0x2c,0x71,0x53,0xe0,0xba,0xd9,0x9b,0xe5,
    0x83,0x29,0x02,0x8e,0x94,0x83,0xdf,0x0c,
    0xf4,0x56,0xa9,0x3f,0x10,0xc7,0x93,0xfe,
    0x72,0xd0,0x77,0xd6,0x6c,0xb0,0xc1,0x7d,
    0x3f,0x30,0x01,0xcb,0x3b,0x94,0xce,0x40,
    0x0a,0xd9,0x68,0x89,0x81,0x0f,0x82,0xd9,
    0x73,0x90,0x7d,0x31,0xcb,0x7d,0x78,0xc4,
    0x31,0x70,0xe5,0xf8,0x01,0xae,0x4f,0x42,
    0x84,0x14,0x53,0xb0,0xc6,0x33,0xcf,0x49,
    0x35,0x09,0x00,0x9a,0xa6,0xec,0x8b,0x51,
    0xd7,0x8e,0x94,0x07,0x55,0x43,0x7e,0x99,
    0xe1,0xea,0xd0,0x3a,0x78,0xa6,0xc9,0x0c,
    0x5b,0xed,0x51,0xe7,0xf3,0x98,0xec,0xfc,
    0xed,0xee,0x0e,0xdf,0x04,0x0a,0xb2,0xeb,
    0xe3,0x17,0x91,0xed,0xbc,0x0d,0xcb,0x6c,
    0x99,0x6b,0x29,0x7e,0xe3,0xd2,0xae,0x22,
    0x27,0x14,0xf3,0x91,0x0c,0x3f,0xc8,0x9e,
    0x45,0xd6,0x08,0xe1,0xb8,0x1f,0x97,0x4d,
    0x7b,0x4d,0x95,0xe6,0x51,0xef,0x3f,0x7f,
    0xf0,0xbc,0xfe,0xdb,0xd8,0xe6,0x34,0xdc,
    0x8d,0xad,0x0a,0x1b,0x51,0x47,0xbf,0xa4,
    0x2e,0xbd,0xd6,
};

static macros_t nasm_usemac_masm = {
    577, 299, nasm_usemac_masm_blob
};


/* --- from ./macros/smartalign.mac --- */

/*
 * %define __?USE_SMARTALIGN?__
 * %defalias __USE_SMARTALIGN__ __?USESMARTALIGN?__
 * %imacro alignmode 1-2.nolist
 * %ifidni %1,nop
 * %define __?ALIGN_JMP_THRESHOLD?__ 16
 * %define __?ALIGN_16BIT_1B?__ 0x90
 * %define __?ALIGN_16BIT_GROUP?__ 1
 * %define __?ALIGN_32BIT_1B?__ 0x90
 * %define __?ALIGN_32BIT_GROUP?__ 1
 * %define __?ALIGN_64BIT_1B?__ 0x90
 * %define __?ALIGN_64BIT_GROUP?__ 1
 * %elifidni %1,generic
 * %define __?ALIGN_JMP_THRESHOLD?__ 8
 * %define __?ALIGN_16BIT_1B?__ 0x90
 * %define __?ALIGN_16BIT_2B?__ 0x89,0xf6
 * %define __?ALIGN_16BIT_3B?__ 0x8d,0x74,0x00
 * %define __?ALIGN_16BIT_4B?__ 0x8d,0xb4,0x00,0x00
 * %define __?ALIGN_16BIT_5B?__ 0x8d,0xb4,0x00,0x00,0x90
 * %define __?ALIGN_16BIT_6B?__ 0x8d,0xb4,0x00,0x00,0x89,0xff
 * %define __?ALIGN_16BIT_7B?__ 0x8d,0xb4,0x00,0x00,0x8d,0x7d,0x00
 * %define __?ALIGN_16BIT_8B?__ 0x8d,0xb4,0x00,0x00,0x8d,0xbd,0x00,0x00
 * %define __?ALIGN_16BIT_GROUP?__ 8
 * %define __?ALIGN_32BIT_1B?__ 0x90
 * %define __?ALIGN_32BIT_2B?__ 0x89,0xf6
 * %define __?ALIGN_32BIT_3B?__ 0x8d,0x76,0x00
 * %define __?ALIGN_32BIT_4B?__ 0x8d,0x74,0x26,0x00
 * %define __?ALIGN_32BIT_5B?__ 0x90,0x8d,0x74,0x26,0x00
 * %define __?ALIGN_32BIT_6B?__ 0x8d,0xb6,0x00,0x00,0x00,0x00
 * %define __?ALIGN_32BIT_7B?__ 0x8d,0xb4,0x26,0x00,0x00,0x00,0x00
 * %define __?ALIGN_32BIT_GROUP?__ 7
 * %define __?ALIGN_64BIT_1B?__ 0x90
 * %define __?ALIGN_64BIT_2B?__ 0x66,0x90
 * %define __?ALIGN_64BIT_3B?__ 0x66,0x66,0x90
 * %define __?ALIGN_64BIT_4B?__ 0x66,0x66,0x66,0x90
 * %define __?ALIGN_64BIT_GROUP?__ 4
 * %elifidni %1,k8
 * %define __?ALIGN_JMP_THRESHOLD?__ 16
 * %define __?ALIGN_16BIT_1B?__ 0x90
 * %define __?ALIGN_16BIT_2B?__ 0x66,0x90
 * %define __?ALIGN_16BIT_3B?__ 0x66,0x66,0x90
 * %define __?ALIGN_16BIT_4B?__ 0x66,0x66,0x66,0x90
 * %define __?ALIGN_16BIT_GROUP?__ 4
 * %define __?ALIGN_32BIT_1B?__ 0x90
 * %define __?ALIGN_32BIT_2B?__ 0x66,0x90
 * %define __?ALIGN_32BIT_3B?__ 0x66,0x66,0x90
 * %define __?ALIGN_32BIT_4B?__ 0x66,0x66,0x66,0x90
 * %define __?ALIGN_32BIT_GROUP?__ 4
 * %define __?ALIGN_64BIT_1B?__ 0x90
 * %define __?ALIGN_64BIT_2B?__ 0x66,0x90
 * %define __?ALIGN_64BIT_3B?__ 0x66,0x66,0x90
 * %define __?ALIGN_64BIT_4B?__ 0x66,0x66,0x66,0x90
 * %define __?ALIGN_64BIT_GROUP?__ 4
 * %elifidni %1,k7
 * %define __?ALIGN_JMP_THRESHOLD?__ 16
 * %define __?ALIGN_16BIT_1B?__ 0x90
 * %define __?ALIGN_16BIT_2B?__ 0x66,0x90
 * %define __?ALIGN_16BIT_3B?__ 0x66,0x66,0x90
 * %define __?ALIGN_16BIT_4B?__ 0x66,0x66,0x66,0x90
 * %define __?ALIGN_64BIT_GROUP?__ 4
 * %define __?ALIGN_32BIT_1B?__ 0x90
 * %define __?ALIGN_32BIT_2B?__ 0x8b,0xc0
 * %define __?ALIGN_32BIT_3B?__ 0x8d,0x04,0x20
 * %define __?ALIGN_32BIT_4B?__ 0x8d,0x44,0x20,0x00
 * %define __?ALIGN_32BIT_5B?__ 0x8d,0x44,0x20,0x00,0x90
 * %define __?ALIGN_32BIT_6B?__ 0x8d,0x80,0x00,0x00,0x00,0x00
 * %define __?ALIGN_32BIT_7B?__ 0x8d,0x04,0x05,0x00,0x00,0x00,0x00
 * %define __?ALIGN_32BIT_GROUP?__ 7
 * %define __?ALIGN_64BIT_1B?__ 0x90
 * %define __?ALIGN_64BIT_2B?__ 0x66,0x90
 * %define __?ALIGN_64BIT_3B?__ 0x66,0x66,0x90
 * %define __?ALIGN_64BIT_4B?__ 0x66,0x66,0x66,0x90
 * %define __?ALIGN_64BIT_GROUP?__ 4
 * %elifidni %1,p6
 * %define __?ALIGN_JMP_THRESHOLD?__ 16
 * %define __?ALIGN_16BIT_1B?__ 0x90
 * %define __?ALIGN_16BIT_2B?__ 0x66,0x90
 * %define __?ALIGN_16BIT_3B?__ 0x0f,0x1f,0x00
 * %define __?ALIGN_16BIT_4B?__ 0x0f,0x1f,0x40,0x00
 * %define __?ALIGN_16BIT_GROUP?__ 4
 * %define __?ALIGN_32BIT_1B?__ 0x90
 * %define __?ALIGN_32BIT_2B?__ 0x66,0x90
 * %define __?ALIGN_32BIT_3B?__ 0x0f,0x1f,0x00
 * %define __?ALIGN_32BIT_4B?__ 0x0f,0x1f,0x40,0x00
 * %define __?ALIGN_32BIT_5B?__ 0x0f,0x1f,0x44,0x00,0x00
 * %define __?ALIGN_32BIT_6B?__ 0x66,0x0f,0x1f,0x44,0x00,0x00
 * %define __?ALIGN_32BIT_7B?__ 0x0f,0x1f,0x80,0x00,0x00,0x00,0x00
 * %define __?ALIGN_32BIT_8B?__ 0x0f,0x1f,0x84,0x00,0x00,0x00,0x00,0x00
 * %define __?ALIGN_32BIT_GROUP?__ 8
 * %define __?ALIGN_64BIT_1B?__ 0x90
 * %define __?ALIGN_64BIT_2B?__ 0x66,0x90
 * %define __?ALIGN_64BIT_3B?__ 0x0f,0x1f,0x00
 * %define __?ALIGN_64BIT_4B?__ 0x0f,0x1f,0x40,0x00
 * %define __?ALIGN_64BIT_5B?__ 0x0f,0x1f,0x44,0x00,0x00
 * %define __?ALIGN_64BIT_6B?__ 0x66,0x0f,0x1f,0x44,0x00,0x00
 * %define __?ALIGN_64BIT_7B?__ 0x0f,0x1f,0x80,0x00,0x00,0x00,0x00
 * %define __?ALIGN_64BIT_8B?__ 0x0f,0x1f,0x84,0x00,0x00,0x00,0x00,0x00
 * %define __?ALIGN_64BIT_GROUP?__ 8
 * %else
 * %error unknown alignment mode: %1
 * %endif
 * %ifnempty %2
 * %ifidni %2,nojmp
 * %xdefine __?ALIGN_JMP_THRESHOLD?__ -1
 * %else
 * %xdefine __?ALIGN_JMP_THRESHOLD?__ %2
 * %endif
 * %endif
 * %xdefine __?ALIGNMODE?__ %1,__?ALIGN_JMP_THRESHOLD?__
 * %endmacro
 * %defalias __ALIGNMODE__ __?ALIGNMODE?__
 * %unimacro align 1-2+.nolist
 * %imacro align 1-2+.nolist
 * sectalign %1
 * %ifnempty %2
 * times (((%1) - (($-$$) % (%1))) % (%1)) %2
 * %elif __?PASS?__ == 0 || __?PASS?__ == 3
 * times (((%1) - (($-$$) % (%1))) % (%1)) nop
 * %else
 * %push
 * %assign %$pad (((%1) - (($-$$) % (%1))) % (%1))
 * %if __?ALIGN_JMP_THRESHOLD?__ != -1 && %$pad > __?ALIGN_JMP_THRESHOLD?__
 * jmp %$end
 * times (((%1) - (($-$$) % (%1))) % (%1)) nop
 * %else
 * times (%$pad / __?ALIGN_%[__?BITS?__]BIT_GROUP?__) db __?ALIGN_%[__?BITS?__]BIT_%[__?ALIGN_%[__?BITS?__]BIT_GROUP?__]B?__
 * %assign %$pad %$pad % __?ALIGN_%[__?BITS?__]BIT_GROUP?__
 * %if %$pad > 0
 * db __?ALIGN_%[__?BITS?__]BIT_%[%$pad]B?__
 * %endif
 * %endif
 * %$end:
 * %pop
 * %endif
 * %endmacro
 * alignmode generic
 */

static const unsigned char nasm_usemac_smartalign_blob[845] = {
    0x78,0xda,0xed,0x58,0x5b,0x4f,0xdb,0x30,
    0x18,0xdd,0xc3,0x40,0x42,0x62,0x37,0x69,
    0x2f,0xd3,0x78,0x70,0xb5,0xba,0x6b,0xd7,
    0x76,0x38,0x69,0x9a,0x86,0x4a,0xac,0x02,
    0x15,0x01,0x13,0x0c,0x44,0xe1,0x69,0x42,
    0x51,0xdb,0x24,0x2c,0x83,0x26,0x51,0x53,
    0x34,0x90,0xf8,0xf1,0x73,0x6c,0xd3,0xc4,
    0x4d,0x1d,0x87,0x8b,0xd0,0x84,0xf6,0x12,
    0x82,0x7d,0xce,0x67,0x7f,0xb7,0xd3,0xd8,
    0x2b,0xd0,0xb2,0x1d,0xd7,0xb3,0x81,0x69,
    0x76,0x4e,0x7a,0x5b,0x66,0x6f,0x7f,0xe3,
    0xe8,0x78,0x63,0x6f,0x77,0xfb,0x47,0xc7,
    0x34,0x51,0x34,0xd9,0xbf,0x70,0xfb,0x21,
    0x9e,0xe6,0x67,0x4d,0x93,0x31,0x38,0xc2,
    0x0a,0x74,0x47,0xfd,0xe1,0xd8,0x07,0x98,
    0x74,0xe6,0x8d,0x7c,0xcb,0x06,0x4a,0x5d,
    0xfd,0xea,0xf9,0x17,0x6e,0x38,0x79,0x0d,
    0x5d,0xc7,0xb5,0x3c,0x17,0x40,0xa5,0xe6,
    0xf9,0x41,0x31,0xb1,0x32,0x35,0xf9,0x7d,
    0xff,0xd0,0x3c,0xde,0x39,0xda,0xea,0xed,
    0x1c,0xec,0x75,0xb1,0x35,0xa0,0xe8,0x85,
    0x14,0x48,0xd1,0x37,0x77,0x8f,0x4d,0x65,
    0x33,0x9a,0x47,0x57,0x6b,0x48,0x84,0xd8,
    0x3e,0x3a,0x38,0x39,0x24,0x46,0xd2,0x88,
    0x86,0x2a,0xb3,0x41,0x11,0x59,0x36,0x74,
    0x4d,0x66,0x83,0x22,0x62,0x1b,0xef,0xa1,
    0x7d,0x11,0x47,0xe0,0xcc,0xf6,0xec,0xb1,
    0x3b,0xfc,0x24,0x8f,0x82,0x21,0x0f,0x42,
    0x49,0x80,0x50,0x19,0xc2,0x58,0xab,0xa1,
    0x2b,0x47,0xaf,0x0a,0x60,0x8d,0x5b,0x98,
    0x85,0x61,0x2d,0x0d,0x3f,0x10,0x42,0x02,
    0xac,0x96,0xc4,0x0e,0x28,0x96,0x3c,0x9a,
    0x02,0x42,0x53,0x44,0xa8,0x45,0x3b,0x6f,
    0x0b,0x58,0x7a,0x06,0x8b,0x7a,0xe3,0x74,
    0x04,0xd4,0x56,0x16,0x95,0x78,0x68,0x91,
    0x7f,0xbb,0x02,0xbe,0x21,0xe3,0x0f,0xac,
    0x78,0x4c,0x5a,0x7e,0x86,0xbc,0xfc,0x4a,
    0x02,0x84,0x34,0x7b,0x14,0xc6,0x67,0x4f,
    0x17,0x64,0x8f,0x62,0xb5,0x54,0xa6,0x55,
    0x5d,0x90,0x3d,0x4a,0x68,0x4e,0x77,0x59,
    0x9b,0xc3,0x6a,0x0b,0x58,0x7c,0xf6,0x74,
    0x2e,0x84,0xec,0xd1,0x11,0x50,0xd3,0xd9,
    0x53,0xe7,0xf2,0xa5,0x3d,0xdb,0x92,0xf7,
    0x6c,0x49,0x80,0xb8,0x0d,0xbc,0xae,0x93,
    0x1a,0xad,0x0a,0x60,0x8d,0x24,0x8c,0x61,
    0x91,0x00,0xab,0xa5,0xb0,0x8c,0x20,0xd5,
    0x0d,0xed,0x0d,0xa7,0x1b,0xe7,0xc6,0x23,
    0x09,0xa7,0x4c,0x33,0x84,0xce,0xf3,0x9a,
    0x91,0xed,0x3c,0xaf,0x19,0x39,0x9c,0x9f,
    0xe9,0x1e,0xed,0xe1,0xdd,0x23,0xf4,0x83,
    0xef,0x9e,0x6c,0x3f,0xf8,0xee,0xc9,0xe1,
    0xc7,0x4c,0x31,0x6a,0xcf,0xb4,0x18,0x5b,
    0xcf,0xba,0x18,0x67,0x9d,0x7f,0x04,0x29,
    0x1f,0xe0,0xa5,0x86,0x28,0x97,0x94,0x23,
    0x22,0x7e,0xf9,0xa4,0x5c,0xa3,0xd8,0x5c,
    0x52,0x9e,0x22,0x08,0x7e,0x88,0xe7,0x48,
    0xb9,0x81,0xee,0x2d,0xe5,0xc4,0x1b,0xd4,
    0xfc,0x2f,0xe5,0x71,0xf7,0x04,0xfa,0xbf,
    0xd5,0x3d,0xc8,0xc1,0x30,0xc5,0xc9,0xf5,
    0xf9,0x17,0x63,0xb5,0x9c,0x1f,0x42,0x4f,
    0x27,0xe5,0xd9,0x7e,0xf0,0xdd,0x93,0xf2,
    0x43,0xd6,0x3d,0x09,0x42,0xe2,0xd3,0x50,
    0xd6,0x3d,0x64,0xe7,0xf3,0xa9,0xb2,0xee,
    0x89,0x59,0xf3,0xbb,0xaf,0x2b,0xe0,0x1b,
    0x69,0xbe,0x36,0x8f,0x9f,0xaf,0x05,0x8d,
    0x27,0x6b,0xc1,0xec,0xec,0xf1,0x2d,0x98,
    0x23,0x7b,0x94,0x70,0xd7,0xec,0x51,0xd6,
    0xbd,0xb2,0x47,0xa9,0xf7,0xcf,0x1e,0xe5,
    0x3f,0x30,0x7b,0x33,0xc2,0x63,0x2c,0x60,
    0xe1,0x09,0xed,0x02,0xb4,0xc7,0x63,0x7f,
    0x0c,0x2e,0xbd,0x73,0xcf,0xff,0xe3,0xb1,
    0x53,0xba,0xed,0x4d,0x40,0x74,0x54,0x6f,
    0x63,0x4d,0x5a,0x84,0xb6,0x67,0xb9,0xce,
    0x32,0x3e,0xaa,0x7b,0xf6,0x28,0x98,0x5c,
    0x03,0xa8,0xbe,0x9d,0x9e,0xdb,0x55,0x7c,
    0x6e,0xff,0x3d,0x0a,0x20,0xbc,0x92,0xca,
    0x56,0x5d,0xa1,0x4b,0xe6,0xc1,0x42,0x95,
    0x2d,0xcb,0xfe,0x34,0x53,0x9c,0xfd,0x83,
    0xee,0x16,0x41,0x2a,0x35,0xa1,0x99,0xa5,
    0x88,0x4c,0x6e,0x1f,0x3e,0x27,0xaf,0x2d,
    0xa6,0x7c,0x7a,0x63,0x91,0x34,0xf7,0x11,
    0x5e,0x7a,0xc9,0xfb,0x8a,0xe8,0xae,0xa2,
    0xca,0x2e,0x2b,0x3e,0x40,0xd1,0xcc,0x72,
    0x68,0x0f,0x27,0x74,0x14,0x2a,0x5c,0xa0,
    0xbe,0x4c,0xdc,0x91,0x1d,0x82,0x72,0xb9,
    0x0c,0x95,0x0a,0xa8,0xe3,0x97,0x62,0xbd,
    0x58,0xac,0x00,0x08,0xa2,0x81,0xca,0xf4,
    0x05,0x43,0xcb,0xe4,0x87,0x20,0xda,0xd0,
    0xe1,0x46,0xaf,0x17,0xb9,0xb6,0xbe,0x0e,
    0x10,0xb8,0xb9,0x99,0x19,0x6a,0x54,0xf3,
    0xda,0xf4,0xfc,0x80,0x46,0x7c,0x01,0x06,
    0x97,0xe1,0xaf,0x55,0xd8,0x0f,0x43,0xb2,
    0xc7,0x62,0xd0,0xb7,0xe4,0xfc,0x1d,0x48,
    0xb7,0x23,0x48,0x51,0x61,0x1d,0x67,0x14,
    0x94,0x4a,0xcc,0xdc,0x37,0x31,0x74,0x09,
    0x17,0x08,0x46,0xe1,0x5c,0xdc,0x7d,0xeb,
    0xd7,0x8c,0x41,0x17,0x59,0x8d,0x17,0x81,
    0x3f,0xf1,0x2b,0xae,0xe8,0x28,0x2c,0xa7,
    0xc9,0xca,0xae,0x00,0x6b,0x90,0x01,0x23,
    0x03,0x12,0x13,0xa7,0x51,0xa7,0x19,0x7c,
    0xb8,0xd8,0x33,0xc7,0x06,0x5e,0x45,0x71,
    0xbb,0x0d,0x0a,0xaa,0x48,0x76,0x43,0x80,
    0x64,0x41,0xbe,0xe2,0x17,0x49,0xc0,0xda,
    0x2f,0x61,0xe0,0x07,0x6c,0x28,0x2e,0xe7,
    0x77,0xf1,0x65,0x1a,0xbb,0x34,0x7a,0xf1,
    0x17,0x1c,0x0a,0xa8,0xc5,
};

static macros_t nasm_usemac_smartalign = {
    5046, 845, nasm_usemac_smartalign_blob
};


/* --- from ./macros/standard.mac --- */

/*
 * %idefine IDEAL
 * %idefine JUMPS
 * %idefine P386
 * %idefine P486
 * %idefine P586
 * %idefine END
 */

static const unsigned char nasm_stdmac_tasm_blob[52] = {
    0x78,0xda,0xe3,0x53,0xcd,0x4c,0x49,0x4d,
    0xcb,0xcc,0x4b,0x55,0xf0,0x74,0x71,0x75,
    0xf4,0xe1,0x83,0x73,0xbd,0x42,0x7d,0x03,
    0x82,0x79,0xe1,0xdc,0x00,0x63,0x0b,0x33,
    0x24,0x9e,0x09,0x0a,0xcf,0xd4,0xc2,0x8c,
    0x07,0xce,0x73,0xf5,0x73,0x61,0x00,0x00,
    0x66,0x2c,0x19,0x81,
};

macros_t nasm_stdmac_tasm = {
    86, 52, nasm_stdmac_tasm_blob
};


/* --- from ./macros/standard.mac --- */

/*
 * %define __?SECT?__
 * %defalias __SECT__ __?SECT?__
 * %imacro section 1+.nolist
 * %define __?SECT?__ [section %1]
 * __?SECT?__
 * %endmacro
 * %imacro segment 1+.nolist
 * %define __?SECT?__ [segment %1]
 * __?SECT?__
 * %endmacro
 * %define __?SECTALIGN_ALIGN_UPDATES_SECTION?__ 1
 * %imacro sectalign 1+.nolist
 * %ifidni %1,off
 * %define __?SECTALIGN_ALIGN_UPDATES_SECTION?__ 0
 * %elifidni %1,on
 * %define __?SECTALIGN_ALIGN_UPDATES_SECTION?__ 1
 * %else
 * [sectalign %1]
 * %endif
 * %endmacro
 * %defalias __SECTALIGN_ALIGN_UPDATES_SECTION__ __?SECTALIGN_ALIGN_UPDATES_SECTION?__
 * %imacro absolute 1+.nolist
 * %define __?SECT?__ [absolute %1]
 * __?SECT?__
 * %endmacro
 * %imacro struc 1-2.nolist 0
 * %push
 * %define %$strucname %1
 * [absolute %2]
 * %$strucname:
 * %endmacro
 * %imacro endstruc 0.nolist
 * %{$strucname}_size equ ($-%$strucname)
 * %pop
 * [warning push]
 * [warning -other]
 * __?SECT?__
 * [warning pop]
 * %endmacro
 * %imacro istruc 1.nolist
 * %push
 * %define %$strucname %1
 * %$strucstart:
 * %endmacro
 * %imacro at 1-2+.nolist
 * %defstr %$member %1
 * %substr %$member1 %$member 1
 * %ifidn %$member1, '.'
 * times (%$strucname%1-%$strucname)-($-%$strucstart) db 0
 * %else
 * times (%1-%$strucname)-($-%$strucstart) db 0
 * %endif
 * %2
 * %endmacro
 * %imacro iend 0.nolist
 * times %{$strucname}_size-($-%$strucstart) db 0
 * %pop
 * %endmacro
 * %imacro align 1-2+.nolist nop
 * %if __?SECTALIGN_ALIGN_UPDATES_SECTION?__
 * sectalign %1
 * %endif
 * times (((%1) - (($-$$) % (%1))) % (%1)) %2
 * %endmacro
 * %imacro alignb 1-2+.nolist
 * %if __?SECTALIGN_ALIGN_UPDATES_SECTION?__
 * sectalign %1
 * %endif
 * %ifempty %2
 * [warning push]
 * [warning -zeroing]
 * resb (((%1) - (($-$$) % (%1))) % (%1))
 * [warning pop]
 * %else
 * times (((%1) - (($-$$) % (%1))) % (%1)) %2
 * %endif
 * %endmacro
 * %imacro bits 1+.nolist
 * [bits %1]
 * %endmacro
 * %imacro use16 0.nolist
 * [bits 16]
 * %endmacro
 * %imacro use32 0.nolist
 * [bits 32]
 * %endmacro
 * %imacro use64 0.nolist
 * [bits 64]
 * %endmacro
 * %imacro extern 1-*.nolist
 * %rep %0
 * [extern %1]
 * %rotate 1
 * %endrep
 * %endmacro
 * %imacro static 1-*.nolist
 * %rep %0
 * [static %1]
 * %rotate 1
 * %endrep
 * %endmacro
 * %imacro global 1-*.nolist
 * %rep %0
 * [global %1]
 * %rotate 1
 * %endrep
 * %endmacro
 * %imacro required 1-*.nolist
 * %rep %0
 * [required %1]
 * %rotate 1
 * %endrep
 * %endmacro
 * %imacro common 1-*.nolist
 * %rep %0
 * [common %1]
 * %rotate 1
 * %endrep
 * %endmacro
 * %imacro cpu 1+.nolist
 * [cpu %1]
 * %endmacro
 * %define __?FLOAT_DAZ?__ nodaz
 * %define __?FLOAT_ROUND?__ near
 * %define __?FLOAT?__ __?FLOAT_DAZ?__,__?FLOAT_ROUND?__
 * %defalias __FLOAT_DAZ__ __?FLOAT_DAZ?__
 * %defalias __FLOAT_ROUND__ __?FLOAT_ROUND?__
 * %defalias __FLOAT__ __?FLOAT?__
 * %imacro float 1-*.nolist
 * %rep %0
 * [float %1]
 * %ifidni %1,daz
 * %define __?FLOAT_DAZ?__ daz
 * %elifidni %1,nodaz
 * %define __?FLOAT_DAZ?__ nodaz
 * %elifidni %1,near
 * %define __?FLOAT_ROUND?__ near
 * %elifidni %1,up
 * %define __?FLOAT_ROUND?__ up
 * %elifidni %1,down
 * %define __?FLOAT_ROUND?__ down
 * %elifidni %1,zero
 * %define __?FLOAT_ROUND?__ zero
 * %elifidni %1,default
 * %define __?FLOAT_DAZ?__ nodaz
 * %define __?FLOAT_ROUND?__ near
 * %endif
 * %rotate 1
 * %endrep
 * %endmacro
 * %imacro default 1+.nolist
 * [default %1]
 * %endmacro
 * %imacro userel 0.nolist
 * [default rel]
 * %endmacro
 * %imacro useabs 0.nolist
 * [default abs]
 * %endmacro
 * %imacro usebnd 0.nolist
 * [default bnd]
 * %endmacro
 * %imacro usenobnd 0.nolist
 * [default nobnd]
 * %endmacro
 * %imacro incbin 1-2+.nolist 0
 * %? %depend(%pathsearch(%1)),%2
 * %endmacro
 * %defalias __NASM_MAJOR__ __?NASM_MAJOR?__
 * %defalias __NASM_MINOR__ __?NASM_MINOR?__
 * %defalias __NASM_SUBMINOR__ __?NASM_SUBMINOR?__
 * %defalias __NASM_PATCHLEVEL__ __?NASM_PATCHLEVEL?__
 * %defalias __NASM_SNAPSHOT__ __?NASM_SNAPSHOT?__
 * %defalias __NASM_VERSION_ID__ __?NASM_VERSION_ID?__
 * %defalias __NASM_VER__ __?NASM_VER?__
 * %defalias __OUTPUT_FORMAT__ __?OUTPUT_FORMAT?__
 * %defalias __DEBUG_FORMAT__ __?DEBUG_FORMAT?__
 * %defalias __DATE__ __?DATE?__
 * %defalias __DATE_NUM__ __?DATE_NUM?__
 * %defalias __TIME__ __?TIME?__
 * %defalias __TIME_NUM__ __?TIME_NUM?__
 * %defalias __UTC_DATE__ __?UTC_DATE?__
 * %defalias __UTC_DATE_NUM__ __?UTC_DATE_NUM?__
 * %defalias __UTC_TIME__ __?UTC_TIME?__
 * %defalias __UTC_TIME_NUM__ __?UTC_TIME_NUM?__
 * %defalias __POSIX_TIME__ __?POSIX_TIME?__
 * %defalias __FILE__ __?FILE?__
 * %defalias __LINE__ __?LINE?__
 * %defalias __BITS__ __?BITS?__
 * %defalias __PTR__ __?PTR?__
 * %defalias __PASS__ __?PASS?__
 * %idefine __?infinity?__ %?
 * %idefine __?nan?__ %?
 * %idefine __?qnan?__ %?
 * %idefine __?snan?__ %?
 * %idefine __?float8?__ %?
 * %idefine __?float16?__ %?
 * %idefine __?float32?__ %?
 * %idefine __?float64?__ %?
 * %idefine __?float80m?__ %?
 * %idefine __?float80e?__ %?
 * %idefine __?float128l?__ %?
 * %idefine __?float128h?__ %?
 * %idefine __?utf16?__ %?
 * %idefine __?utf16le?__ %?
 * %idefine __?utf16be?__ %?
 * %idefine __?utf32?__ %?
 * %idefine __?utf32le?__ %?
 * %idefine __?utf32be?__ %?
 * %idefine __?ilog2e?__ %?
 * %idefine __?ilog2w?__ %?
 * %idefine __?ilog2f?__ %?
 * %idefine __?ilog2c?__ %?
 * %idefalias __infinity__ __?infinity?__
 * %idefalias __nan__ __?nan?__
 * %idefalias __qnan__ __?qnan?__
 * %idefalias __snan__ __?snan?__
 * %idefalias __float8__ __?float8?__
 * %idefalias __float16__ __?float16?__
 * %idefalias __float32__ __?float32?__
 * %idefalias __float64__ __?float64?__
 * %idefalias __float80m__ __?float80m?__
 * %idefalias __float80e__ __?float80e?__
 * %idefalias __float128l__ __?float128l?__
 * %idefalias __float128h__ __?float128h?__
 * %idefalias __utf16__ __?utf16?__
 * %idefalias __utf16le__ __?utf16le?__
 * %idefalias __utf16be__ __?utf16be?__
 * %idefalias __utf32__ __?utf32?__
 * %idefalias __utf32le__ __?utf32le?__
 * %idefalias __utf32be__ __?utf32be?__
 * %idefalias __ilog2e__ __?ilog2e?__
 * %idefalias __ilog2w__ __?ilog2w?__
 * %idefalias __ilog2f__ __?ilog2f?__
 * %idefalias __ilog2c__ __?ilog2c?__
 * %define __?NASM_HAS_IFDIRECTIVE?__ 1
 */

static const unsigned char nasm_stdmac_nasm_blob[1417] = {
    0x78,0xda,0xa5,0x58,0xfd,0x4f,0xdb,0x46,
    0x18,0x9e,0xa6,0x75,0x5d,0x3f,0xa0,0x1b,
    0x5b,0xa1,0x2d,0x94,0x5a,0x53,0x0c,0xa4,
    0x25,0x6d,0x3e,0x58,0x56,0xed,0x17,0x94,
    0x92,0xd0,0x66,0x82,0x04,0x91,0x04,0x4d,
    0x8b,0x90,0x65,0x27,0x17,0xb0,0xe4,0xd8,
    0xc1,0x76,0xc4,0xca,0xb4,0xff,0x7d,0xf7,
    0xe5,0xbb,0xf7,0xec,0x73,0xa0,0xea,0x2f,
    0xe8,0xfc,0x3e,0xcf,0xfb,0xdc,0x7b,0xef,
    0x3d,0xbe,0x73,0x58,0x31,0xc7,0x68,0xe2,
    0xfa,0xc8,0xb0,0xac,0xfd,0x5e,0xeb,0xa0,
    0xbf,0x6f,0x59,0x2f,0x49,0xc8,0xf6,0x5c,
    0x3b,0xc2,0x41,0x12,0xb3,0x2c,0x80,0x3e,
    0x37,0xdd,0xa9,0x3d,0x0a,0x03,0x23,0x42,
    0xa3,0xd8,0x0d,0x7c,0xa3,0xf2,0xe6,0xad,
    0x1f,0x78,0x6e,0x14,0xbf,0xca,0x4a,0x19,
    0xc3,0x84,0x65,0x56,0xce,0x1f,0xca,0xf8,
    0x03,0x13,0xf9,0x63,0x2a,0x03,0xe4,0x2e,
    0xa6,0xc8,0x8f,0x6f,0x95,0x63,0xac,0x3c,
    0xb9,0x77,0xa9,0xa4,0xc6,0x51,0xfb,0x63,
    0xc7,0x62,0x7f,0x07,0x27,0xcd,0x46,0xbf,
    0xd5,0xa3,0x4b,0x6a,0x77,0x3b,0x44,0xaf,
    0xb2,0x0e,0x57,0x83,0xd7,0x7c,0x01,0xd6,
    0xb3,0x6c,0xba,0x13,0x77,0xec,0xbb,0x78,
    0xb2,0xdd,0x60,0x32,0xf9,0x42,0xe9,0xf2,
    0x13,0x13,0x79,0x40,0xc0,0xff,0xd2,0xd2,
    0xee,0xe1,0xfc,0x08,0x2d,0x0f,0x65,0x65,
    0x78,0xd1,0xdf,0x93,0x95,0xba,0x13,0xb9,
    0xe0,0x5e,0x7a,0xb3,0x16,0xc8,0xca,0x7d,
    0x5c,0x3c,0xf7,0x8b,0xa4,0x29,0xb6,0x13,
    0x05,0xde,0x3c,0x46,0xb2,0x27,0x86,0x6e,
    0x53,0x04,0x2d,0x6f,0x57,0x84,0x60,0x14,
    0x87,0xf3,0x91,0x51,0x29,0x55,0x13,0xb9,
    0xf2,0x3d,0x73,0x36,0x8f,0x2e,0x57,0x13,
    0x59,0xb3,0x40,0x29,0xbe,0x3d,0x25,0x6a,
    0x4b,0x40,0xba,0x7a,0xfe,0x18,0x80,0x7f,
    0x68,0x1c,0x84,0x03,0x4c,0xbf,0xcc,0xd5,
    0xb7,0xcc,0x7f,0x65,0xc6,0x7f,0x56,0xe4,
    0xde,0x20,0x03,0x5d,0xcd,0x8d,0x9d,0x42,
    0x09,0x48,0x15,0xbf,0x33,0x67,0xc1,0x6c,
    0x79,0x78,0x6d,0x87,0xbe,0xeb,0x5f,0x18,
    0xa4,0x9e,0xf3,0x1f,0xc5,0x63,0x29,0x88,
    0x2f,0x51,0x08,0xd7,0xb5,0x24,0xa9,0xc1,
    0xec,0x5c,0x16,0xb2,0x96,0x14,0xe2,0xf2,
    0x65,0xf2,0x32,0x16,0x2f,0x91,0x3f,0x46,
    0xb1,0x1d,0xc6,0x60,0x55,0xab,0x62,0x0f,
    0x62,0xd2,0xaf,0xa4,0xff,0x3f,0x13,0x15,
    0x9c,0x80,0x55,0xa6,0x68,0xea,0x20,0x3c,
    0xa8,0x6c,0x98,0xd1,0xdc,0x81,0xb1,0x8a,
    0x44,0x2b,0x4f,0x99,0x89,0x25,0xb6,0x6b,
    0x6c,0xbf,0xdd,0xfe,0x3d,0x76,0xa7,0x28,
    0x32,0x76,0x40,0x2d,0x66,0x45,0x69,0x4a,
    0x49,0x36,0x89,0x96,0x56,0x34,0xc6,0x0e,
    0xd9,0x2d,0xe2,0xc9,0xdd,0x24,0xfb,0x2e,
    0x29,0xdc,0xb1,0xdf,0x9a,0x55,0xb9,0xb8,
    0xa7,0xa2,0x53,0x38,0x22,0xb6,0xeb,0x2d,
    0x93,0xcd,0x6e,0x9a,0x5e,0x98,0x6e,0x9b,
    0xd4,0x7c,0x29,0x1a,0xc6,0xde,0x62,0xd9,
    0x33,0xc3,0x0f,0x66,0x45,0xdc,0x86,0xbb,
    0x99,0xff,0x31,0x7c,0xdf,0x78,0xf1,0xaf,
    0xf9,0x82,0x77,0xf0,0x92,0x8b,0x46,0x09,
    0x0f,0x0a,0xa5,0x42,0xa1,0x68,0x98,0xa4,
    0x07,0xc5,0xa2,0x18,0x18,0x70,0x91,0x2f,
    0x94,0x82,0x1c,0x58,0xd1,0xd7,0x55,0xf3,
    0x08,0x67,0xa3,0xe9,0x2c,0xfe,0x8c,0xa7,
    0x4b,0xd9,0x76,0x45,0xda,0xf6,0x06,0x85,
    0x01,0x1e,0x9c,0x6f,0x85,0x28,0x72,0x6e,
    0x2f,0x5d,0x35,0x35,0xdb,0xe7,0x2f,0x58,
    0x76,0xe6,0x5c,0x12,0xfe,0x75,0xdc,0x38,
    0x92,0xe7,0xc7,0x83,0x21,0x7d,0xc6,0x07,
    0x85,0x86,0x3a,0x8f,0x50,0xa5,0x2e,0xec,
    0xc0,0xa9,0x95,0x7a,0x0e,0xb5,0x56,0x4d,
    0x53,0x6b,0xd5,0x1c,0x6a,0x7d,0x2f,0x4d,
    0xad,0xef,0x9d,0xeb,0x4e,0x90,0x7f,0x62,
    0x14,0x12,0xef,0xbc,0xe6,0xec,0xfb,0x66,
    0x88,0x66,0x86,0x59,0x7e,0x34,0xe4,0x10,
    0x2d,0x3c,0x0c,0x62,0x9b,0x1c,0x8a,0xf7,
    0x89,0x02,0x26,0xe8,0x6e,0x33,0xcc,0x70,
    0x47,0x5a,0x25,0x0e,0xdd,0x55,0xe9,0xc2,
    0x0b,0x1c,0xdb,0xd3,0x2a,0x71,0xe8,0x16,
    0x25,0x71,0xc5,0x85,0xf8,0xec,0x73,0x43,
    0x34,0xd6,0x68,0x2d,0x0d,0x05,0x78,0xd7,
    0xba,0x46,0xc1,0x74,0x1a,0xe8,0x7b,0xc5,
    0xa1,0x5b,0x94,0xc4,0x21,0x30,0x9a,0xcd,
    0xa5,0x41,0x7e,0x18,0x92,0x47,0xc5,0x1f,
    0x2f,0xc1,0x9d,0x73,0x78,0xd4,0x6d,0xf4,
    0xad,0x66,0xe3,0x6f,0x72,0xf1,0xf8,0xc1,
    0xd8,0xbe,0xd9,0xcc,0xa0,0xa7,0xdd,0x41,
    0xa7,0x49,0x71,0x64,0x87,0xbf,0xa5,0xe1,
    0x7d,0x76,0x0b,0x42,0xa1,0xdd,0x4c,0xea,
    0x36,0xbc,0x55,0x05,0x35,0x9b,0xf9,0x26,
    0xcb,0xa3,0x12,0x90,0x99,0x68,0xbe,0xca,
    0x72,0x2d,0x58,0xd5,0xb3,0xa4,0x1f,0x13,
    0x2f,0xa0,0x87,0x7e,0xba,0xb1,0x0f,0x87,
    0x0c,0xc1,0xcd,0x81,0x9f,0x26,0xb8,0x07,
    0xeb,0x79,0x1d,0xc2,0xd8,0x8a,0xf2,0x19,
    0x42,0x5b,0xb6,0xb8,0xa1,0x3f,0xa9,0x09,
    0xb8,0x87,0xb7,0xb4,0x58,0xfd,0xd0,0x99,
    0xcf,0x36,0xf2,0xe9,0xf3,0x99,0xaa,0x3e,
    0x0e,0xae,0xfd,0x05,0xea,0x04,0x56,0x13,
    0xc8,0xa9,0xb6,0x20,0x81,0xc0,0xbf,0xa8,
    0x33,0xe0,0x9e,0xcf,0xbd,0xf8,0xab,0x3c,
    0x24,0x0e,0xb7,0x3b,0xbc,0x16,0x7c,0x3e,
    0x69,0xe8,0xc7,0xc3,0x24,0xa4,0x98,0x7a,
    0x0d,0x1c,0x4f,0x21,0xf2,0xc4,0xf9,0xb4,
    0x24,0xe8,0x38,0x9a,0xc3,0xc7,0x1f,0x45,
    0x1a,0x3e,0x8e,0xe6,0xf0,0x1d,0x70,0xc9,
    0x4a,0x3e,0x8e,0xea,0xce,0x40,0xcc,0xf7,
    0x03,0x98,0xf1,0x44,0x64,0xd0,0x38,0xc8,
    0xd9,0x10,0xd7,0xb8,0x3f,0x72,0x5c,0xf5,
    0xce,0x2d,0x6f,0x9a,0xfb,0xe4,0x63,0x71,
    0x86,0xc9,0x3b,0xe6,0xcc,0x8e,0x2f,0x71,
    0xdd,0xe1,0xe8,0x92,0x5e,0x18,0xbb,0xf0,
    0x9e,0x2c,0xc2,0xf7,0xa2,0xd3,0xe8,0x1d,
    0x5b,0xc7,0x8d,0x3f,0xbb,0xa7,0xec,0xe5,
    0x90,0xcf,0x78,0x33,0x34,0xcc,0x76,0x47,
    0x65,0x92,0x67,0xcc,0x7c,0x97,0x61,0xf6,
    0x06,0x1f,0xd2,0xe4,0x24,0x84,0xf9,0xb5,
    0x0c,0xff,0xa4,0xd1,0x3f,0xf8,0x74,0xd4,
    0x3a,0x6b,0x1d,0x81,0x0c,0x19,0xd4,0xcf,
    0xd1,0x69,0x9c,0xf4,0x3e,0x75,0xfb,0x70,
    0x0e,0x1e,0xd2,0xce,0x71,0xd6,0x3a,0xed,
    0x91,0xcf,0xf2,0x76,0x13,0x64,0xc8,0x20,
    0xce,0x31,0x75,0x39,0x2a,0x39,0x5d,0x49,
    0x77,0xd0,0x3f,0x19,0xf4,0xad,0xc3,0xee,
    0xe9,0x71,0x72,0xc2,0x28,0x21,0xcc,0x2f,
    0x41,0x7e,0xb3,0xf5,0x61,0xf0,0x51,0xa1,
    0xc3,0x48,0xfa,0xe7,0x20,0xf9,0x3e,0xe1,
    0x2c,0x3c,0x4a,0x57,0x48,0xd1,0xce,0xe0,
    0x58,0x32,0xc8,0x53,0x5a,0xa3,0xdf,0x3e,
    0xe6,0x1a,0x64,0x94,0xd6,0xa0,0xa8,0xd0,
    0x48,0x9e,0xd2,0xac,0x41,0xff,0x00,0xd4,
    0x92,0x3c,0xa5,0xd7,0x26,0x58,0x42,0x0f,
    0x46,0x74,0x9a,0xb2,0xb6,0xe4,0x49,0xa7,
    0xa9,0xd6,0x08,0x23,0x69,0x97,0x9e,0x74,
    0x7b,0xed,0xbf,0x80,0xaa,0x7c,0x4e,0x77,
    0xe5,0xb0,0x7d,0xc4,0x39,0x64,0x94,0x46,
    0x8f,0xda,0x1d,0x8e,0x92,0x51,0x1a,0xfd,
    0xd0,0xee,0xf7,0x18,0x4a,0x46,0x18,0x5d,
    0x57,0x6a,0xe8,0x73,0xcb,0xe0,0x41,0x3a,
    0xf3,0xa4,0xd1,0xe3,0x99,0x64,0xc4,0x7e,
    0xfb,0xc9,0xb3,0xd0,0xf5,0xf1,0xc8,0x8d,
    0x3f,0x93,0x83,0xd0,0xdc,0x7f,0x0a,0x21,
    0xdf,0xf6,0x59,0x74,0x15,0x46,0xaf,0xf4,
    0xe1,0x48,0x84,0x9f,0xc1,0x30,0xbd,0xce,
    0xde,0x33,0xe0,0x79,0x06,0xa8,0xd4,0xf3,
    0x90,0x5a,0x35,0x0f,0xa9,0xef,0x31,0xe4,
    0x45,0x76,0x9a,0xf2,0x34,0x1f,0x42,0x0c,
    0x5a,0xcf,0xd6,0x50,0x7d,0xef,0x2d,0xc0,
    0x2e,0x19,0xb6,0x06,0xb1,0x79,0x3c,0xd1,
    0x56,0x4e,0xe3,0x1e,0xca,0x43,0x1c,0xa4,
    0xd7,0xd2,0xae,0x95,0xc6,0xf3,0xb4,0x6a,
    0xd5,0x44,0x4b,0x69,0xb6,0xeb,0x05,0x17,
    0xd5,0x5c,0xe0,0x3a,0x0f,0x98,0xe4,0x01,
    0x23,0x06,0x6c,0x51,0x20,0xb1,0x53,0x62,
    0x18,0x66,0x29,0x60,0x9f,0x0d,0x85,0x86,
    0xed,0xc0,0x18,0xcc,0x17,0x9b,0x0a,0x78,
    0x25,0xd0,0x2b,0x1d,0x1c,0x09,0x98,0xbb,
    0xea,0x57,0x05,0x66,0x3b,0xca,0x08,0xc2,
    0x5f,0x85,0x2c,0xa5,0x52,0x07,0x1c,0xba,
    0x61,0x1a,0x52,0xad,0x0a,0x48,0x74,0x27,
    0x34,0xa4,0xfa,0x1e,0x20,0x51,0x03,0x6e,
    0x69,0x2a,0x2a,0x4f,0x61,0x4d,0xd4,0x8c,
    0x5a,0x1a,0x52,0x68,0x64,0xbf,0x76,0x34,
    0xc5,0x63,0x5b,0xc2,0xf2,0x99,0x4b,0xf5,
    0xc4,0x4b,0x95,0xc8,0x2c,0x0b,0x89,0xd4,
    0x7e,0x8c,0x94,0x78,0xb7,0x90,0x25,0x78,
    0x08,0x50,0xa8,0xf5,0x34,0x24,0x07,0x92,
    0xb8,0x0b,0x53,0xa4,0xa4,0xa5,0x89,0xb5,
    0x0b,0x59,0x02,0x98,0x8a,0xbb,0x5c,0x43,
    0x72,0x20,0x89,0x4e,0xa5,0xfa,0x80,0xd9,
    0x9d,0xfb,0x30,0xb1,0xbe,0x86,0x72,0x0d,
    0x28,0xd7,0x7a,0xca,0x04,0x50,0x26,0x7a,
    0xca,0x08,0x50,0x46,0xb4,0x60,0xf9,0xb6,
    0xd0,0x8b,0xfa,0x53,0xa3,0x67,0xb5,0x0f,
    0x9b,0xed,0x53,0xf2,0xcb,0xfe,0xac,0x45,
    0xff,0xc1,0xf7,0xcd,0xff,0x15,0x94,0xed,
    0x4a,
};

macros_t nasm_stdmac_nasm = {
    5500, 1417, nasm_stdmac_nasm_blob
};


/* --- from ./macros/vtern.mac --- */

/*
 * %define __?USE_VTERN?__
 * %defalias __USE_VTERN__ __?USEVTERN?__
 * %imacro vpternlogd 4.nolist
 * %define %%imm(a,A,b,B,c,C) (%4)
 * %? %1,%2,%3,%%imm(0xaa,0xaa,0xcc,0xcc,0xf0,0xf0)
 * %endmacro
 * %imacro vpternlogq 4.nolist
 * %define %%imm(a,A,b,B,c,C) (%4)
 * %? %1,%2,%3,%%imm(0xaa,0xaa,0xcc,0xcc,0xf0,0xf0)
 * %endmacro
 */

static const unsigned char nasm_usemac_vtern_blob[146] = {
    0x78,0xda,0x13,0x57,0x4d,0x49,0x4d,0xcb,
    0xcc,0x4b,0x55,0x88,0x8f,0xb7,0x0f,0x0d,
    0x76,0x8d,0x0f,0x0b,0x71,0x0d,0xf2,0xb3,
    0x8f,0x8f,0x57,0x03,0x89,0x27,0xe6,0x64,
    0x26,0x16,0x03,0x65,0xe0,0x12,0xf1,0xf1,
    0x50,0x75,0x30,0x65,0xd2,0xaa,0x99,0xb9,
    0x89,0xc9,0x45,0xf9,0x0a,0x65,0x05,0x25,
    0xa9,0x45,0x79,0x39,0xf9,0xe9,0x29,0x0a,
    0x26,0x7a,0x79,0xf9,0x39,0x99,0xc5,0x25,
    0xf2,0x30,0xa3,0x55,0x81,0x8a,0x72,0x35,
    0x12,0x75,0x1c,0x75,0x92,0x74,0x9c,0x74,
    0x92,0x75,0x9c,0x35,0x15,0x34,0x54,0x4d,
    0x34,0x0d,0x54,0xed,0x15,0x54,0x0d,0x75,
    0x54,0x8d,0x74,0x54,0x8d,0x75,0x20,0x6a,
    0x0c,0x2a,0x12,0x13,0x75,0xa0,0x44,0x72,
    0x32,0x8c,0x48,0x33,0x00,0x13,0x9a,0x9c,
    0xaa,0xa9,0x79,0x29,0x60,0xeb,0x30,0xad,
    0x2d,0xa4,0x87,0xb5,0x0c,0x00,0xd2,0xd5,
    0x5a,0x63,
};

static macros_t nasm_usemac_vtern = {
    302, 146, nasm_usemac_vtern_blob
};


/* --- from ./output/outaout.mac --- */

#if defined(OF_AOUT) || defined(OF_AOUTB)
/*
 * %define __?SECT?__ [section .text]
 * %macro __?NASM_CDecl?__ 1
 * %endmacro
 */

static const unsigned char aout_stdmac_blob[72] = {
    0x22,0x25,0x64,0x65,0x66,0x69,0x6e,0x65,
    0x20,0x5f,0x5f,0x3f,0x53,0x45,0x43,0x54,
    0x3f,0x5f,0x5f,0x20,0x5b,0x73,0x65,0x63,
    0x74,0x69,0x6f,0x6e,0x20,0x2e,0x74,0x65,
    0x78,0x74,0x5d,0x19,0x25,0x6d,0x61,0x63,
    0x72,0x6f,0x20,0x5f,0x5f,0x3f,0x4e,0x41,
    0x53,0x4d,0x5f,0x43,0x44,0x65,0x63,0x6c,
    0x3f,0x5f,0x5f,0x20,0x31,0x09,0x25,0x65,
    0x6e,0x64,0x6d,0x61,0x63,0x72,0x6f,0x00,
};

macros_t aout_stdmac = {
    72, 72, aout_stdmac_blob
};
#endif


/* --- from ./output/outas86.mac --- */

#if defined(OF_AS86)
/*
 * %define __?SECT?__ [section .text]
 * %macro __?NASM_CDecl?__ 1
 * %endmacro
 */

static const unsigned char as86_stdmac_blob[72] = {
    0x22,0x25,0x64,0x65,0x66,0x69,0x6e,0x65,
    0x20,0x5f,0x5f,0x3f,0x53,0x45,0x43,0x54,
    0x3f,0x5f,0x5f,0x20,0x5b,0x73,0x65,0x63,
    0x74,0x69,0x6f,0x6e,0x20,0x2e,0x74,0x65,
    0x78,0x74,0x5d,0x19,0x25,0x6d,0x61,0x63,
    0x72,0x6f,0x20,0x5f,0x5f,0x3f,0x4e,0x41,
    0x53,0x4d,0x5f,0x43,0x44,0x65,0x63,0x6c,
    0x3f,0x5f,0x5f,0x20,0x31,0x09,0x25,0x65,
    0x6e,0x64,0x6d,0x61,0x63,0x72,0x6f,0x00,
};

macros_t as86_stdmac = {
    72, 72, as86_stdmac_blob
};
#endif


/* --- from ./output/outbin.mac --- */

#if defined(OF_BIN)
/*
 * %define __?SECT?__ [section .text]
 * %imacro org 1+.nolist
 * [org %1]
 * %endmacro
 * %macro __?NASM_CDecl?__ 1
 * %endmacro
 */

static const unsigned char bin_stdmac_blob[101] = {
    0x78,0xda,0x53,0x52,0x4d,0x49,0x4d,0xcb,
    0xcc,0x4b,0x55,0x88,0x8f,0xb7,0x0f,0x76,
    0x75,0x0e,0xb1,0x8f,0x8f,0x57,0x88,0x2e,
    0x4e,0x4d,0x2e,0xc9,0xcc,0xcf,0x53,0xd0,
    0x2b,0x49,0xad,0x28,0x89,0x15,0x55,0xcd,
    0xcc,0x4d,0x4c,0x2e,0xca,0x57,0xc8,0x2f,
    0x4a,0x57,0x30,0xd4,0xd6,0xcb,0xcb,0xcf,
    0xc9,0x2c,0x2e,0xe1,0x88,0x06,0x71,0x55,
    0x0d,0x63,0x39,0x55,0x53,0xf3,0x52,0xc0,
    0x0a,0x24,0x55,0x21,0xea,0x80,0x46,0xf9,
    0x39,0x06,0xfb,0xc6,0x3b,0xbb,0xa4,0x26,
    0xe7,0x80,0x0c,0x34,0x44,0xa8,0x61,0x00,
    0x00,0x40,0x14,0x24,0xac,
};

macros_t bin_stdmac = {
    113, 101, bin_stdmac_blob
};
#endif


/* --- from ./output/outcoff.mac --- */

#if defined(OF_COFF) || defined(OF_WIN32) || defined(OF_WIN64)
/*
 * %define __?SECT?__ [section .text]
 * %macro __?NASM_CDecl?__ 1
 * %endmacro
 * %imacro export 1+.nolist
 * [export %1]
 * %endmacro
 * %imacro safeseh 1.nolist
 * [safeseh %1]
 * %endmacro
 */

static const unsigned char coff_stdmac_blob[120] = {
    0x78,0xda,0x53,0x52,0x4d,0x49,0x4d,0xcb,
    0xcc,0x4b,0x55,0x88,0x8f,0xb7,0x0f,0x76,
    0x75,0x0e,0xb1,0x8f,0x8f,0x57,0x88,0x2e,
    0x4e,0x4d,0x2e,0xc9,0xcc,0xcf,0x53,0xd0,
    0x2b,0x49,0xad,0x28,0x89,0x95,0x54,0xcd,
    0x4d,0x4c,0x2e,0xca,0x07,0xa9,0xf0,0x73,
    0x0c,0xf6,0x8d,0x77,0x76,0x49,0x4d,0xce,
    0x01,0xa9,0x33,0xe4,0x54,0x4d,0xcd,0x4b,
    0x01,0x4b,0x4a,0xa8,0x66,0x42,0x14,0xa5,
    0x56,0x14,0xe4,0x17,0x95,0x28,0x18,0x6a,
    0xeb,0xe5,0xe5,0xe7,0x64,0x16,0x97,0x70,
    0x47,0x43,0x45,0x54,0x0d,0x63,0xb1,0x28,
    0x2f,0x4e,0x4c,0x4b,0x2d,0x4e,0xcd,0x50,
    0x30,0x84,0x2a,0xe7,0x89,0x86,0x89,0xa0,
    0xa8,0x67,0x00,0x00,0x33,0xe3,0x37,0xc5,
};

macros_t coff_stdmac = {
    167, 120, coff_stdmac_blob
};
#endif


/* --- from ./output/outdbg.mac --- */

#if defined(OF_DBG)
/*
 * %define __?SECT?__ [section .text]
 * %imacro group 1+.nolist
 * [group %1]
 * %endmacro
 * %imacro uppercase 0+.nolist
 * %pragma dbg uppercase %1
 * %endmacro
 * %imacro export 1+.nolist
 * %pragma dbg export %1
 * %endmacro
 * %imacro import 1+.nolist
 * %pragma dbg import %1
 * %endmacro
 * %imacro org 1+.nolist
 * %pragma dbg org %1
 * %endmacro
 * %macro __?NASM_CDecl?__ 1
 * %endmacro
 */

static const unsigned char dbg_stdmac_blob[174] = {
    0x78,0xda,0x7d,0xd0,0x31,0x0b,0xc2,0x30,
    0x10,0x05,0x60,0x57,0x1d,0x85,0xa2,0xe2,
    0x72,0x08,0x99,0x84,0x62,0x7f,0x41,0x91,
    0xea,0xa8,0x4b,0xdd,0x4a,0x09,0x31,0x3d,
    0x43,0xa0,0x4d,0x42,0x9a,0x42,0x7f,0xbe,
    0xd6,0x36,0x34,0x83,0xb8,0xde,0x7b,0x1f,
    0x07,0xef,0x40,0x2a,0x7c,0x49,0x85,0x40,
    0x69,0x9a,0x5f,0xb3,0x47,0x4a,0x29,0x14,
    0x2d,0x72,0x27,0xb5,0x82,0xd8,0x61,0xef,
    0xca,0x0d,0x91,0x0d,0xe3,0x56,0x83,0xb0,
    0xba,0x33,0x90,0x1c,0x63,0xa5,0x6b,0xd9,
    0xba,0x55,0x31,0x1e,0x48,0x52,0x2e,0x09,
    0xaa,0xea,0x5b,0xda,0xfb,0x72,0x67,0x0c,
    0x5a,0xce,0x5a,0x84,0x93,0x07,0x5b,0x62,
    0x2c,0x13,0x0d,0x83,0xea,0x29,0x82,0x9c,
    0x24,0x33,0xdf,0x7a,0x8e,0xbd,0xd1,0xd6,
    0xcd,0xcf,0xa2,0xd0,0x4e,0xe1,0x4f,0x28,
    0x9b,0x3f,0x70,0x0a,0x43,0x18,0x79,0xa8,
    0xad,0x98,0xd5,0x3a,0x54,0x43,0x12,0x92,
    0x1d,0x19,0xc5,0x67,0xb2,0xfb,0x39,0xbf,
    0xd1,0xec,0x82,0xbc,0x1e,0x86,0x0b,0x3a,
    0x8b,0x37,0x00,0x61,0x73,0xaf,
};

macros_t dbg_stdmac = {
    345, 174, dbg_stdmac_blob
};
#endif


/* --- from ./output/outelf.mac --- */

#if defined(OF_ELF) || defined(OF_ELF32) || defined(OF_ELF64)
/*
 * %define __?SECT?__ [section .text]
 * %macro __?NASM_CDecl?__ 1
 * %define $_%1 $%1
 * %endmacro
 * %imacro osabi 1+.nolist
 * [%? %1]
 * %endmacro
 */

static const unsigned char elf_stdmac_blob[114] = {
    0x78,0xda,0x53,0x52,0x4d,0x49,0x4d,0xcb,
    0xcc,0x4b,0x55,0x88,0x8f,0xb7,0x0f,0x76,
    0x75,0x0e,0xb1,0x8f,0x8f,0x57,0x88,0x2e,
    0x4e,0x4d,0x2e,0xc9,0xcc,0xcf,0x53,0xd0,
    0x2b,0x49,0xad,0x28,0x89,0x95,0x54,0xcd,
    0x4d,0x4c,0x2e,0xca,0x07,0xa9,0xf0,0x73,
    0x0c,0xf6,0x8d,0x77,0x76,0x49,0x4d,0xce,
    0x01,0xa9,0x33,0x14,0x80,0x69,0x56,0x89,
    0x57,0x35,0x54,0x50,0x51,0x35,0xe4,0x54,
    0x4d,0xcd,0x4b,0x01,0xab,0x16,0x57,0xcd,
    0x84,0xe8,0xca,0x2f,0x4e,0x4c,0xca,0x54,
    0x30,0xd4,0xd6,0xcb,0xcb,0xcf,0xc9,0x2c,
    0x2e,0x61,0x8f,0x56,0xb5,0x57,0x50,0x35,
    0x8c,0x45,0xa8,0x64,0x00,0x00,0xb1,0x2e,
    0x28,0xc2,
};

macros_t elf_stdmac = {
    131, 114, elf_stdmac_blob
};
#endif


/* --- from ./output/outmacho.mac --- */

#if defined(OF_MACHO) || defined(OF_MACHO32) || defined(OF_MACHO64)
/*
 * %define __?SECT?__ [section .text]
 * %macro __?NASM_CDecl?__ 1
 * %endmacro
 * %imacro subsections_via_symbols 0.nolist
 * %pragma __?OUTPUT_FORMAT?__ %?
 * %endmacro
 * %imacro no_dead_strip 1-*.nolist
 * %rep %0
 * %pragma __?OUTPUT_FORMAT?__ %? %1
 * %rotate 1
 * %endrep
 * %endmacro
 * %imacro build_version 3+
 * %pragma __?OUTPUT_FORMAT?__ %? %1,%2,%3
 * %endmacro
 */

static const unsigned char macho_stdmac_blob[208] = {
    0x78,0xda,0x85,0xcf,0x4d,0x6b,0xc2,0x40,
    0x10,0x06,0xe0,0xde,0xa4,0xff,0xa0,0x5e,
    0xca,0xb4,0x30,0x54,0xea,0x07,0x46,0x7f,
    0x40,0x10,0xb5,0xb7,0x18,0x31,0xf1,0x54,
    0xca,0xb0,0xc9,0x8e,0x65,0x21,0xd9,0x0d,
    0xbb,0x1b,0x69,0xff,0x7d,0x5d,0x3f,0xc8,
    0xcd,0x9e,0xe7,0x9d,0xe7,0x9d,0x79,0x45,
    0xc9,0x07,0xa5,0x19,0x88,0xe2,0x6c,0xbd,
    0xcc,0x63,0x22,0xf8,0x74,0x5c,0x7a,0x65,
    0x34,0x4c,0x3c,0xff,0xf8,0xaf,0x3e,0xd6,
    0xa2,0xb4,0x26,0x24,0x36,0x8b,0x2c,0xa1,
    0xe5,0x8a,0xcb,0x2a,0xe4,0xa2,0x47,0x64,
    0x2d,0xcf,0xc3,0x01,0xaa,0x4b,0xc8,0xb5,
    0xc5,0x75,0xdb,0xd1,0x51,0x09,0x72,0xbf,
    0x75,0x61,0x2a,0x07,0xd3,0x89,0x36,0x95,
    0x72,0xfe,0x19,0x1b,0x2b,0xbe,0x6b,0x11,
    0xb4,0x74,0x9f,0x6f,0xf7,0x39,0x7d,0xa4,
    0xbb,0x64,0x71,0x2e,0xc6,0xb8,0x13,0xe1,
    0x26,0x6a,0x43,0x92,0x85,0x24,0xe7,0xad,
    0x6a,0x20,0x1a,0xbf,0x5f,0xa5,0x1e,0x5a,
    0x6e,0x00,0xa7,0x2f,0xf7,0x45,0xc0,0xd3,
    0x99,0xd6,0x78,0xe1,0x19,0xa2,0x5e,0xe0,
    0x4f,0x6b,0x5d,0xcd,0xd3,0xad,0xa6,0x68,
    0x55,0x25,0xe9,0xc8,0xd6,0x85,0xcf,0xe7,
    0xc3,0xb7,0x7f,0xd9,0x11,0xce,0x46,0x38,
    0xef,0xa8,0x87,0x3f,0x15,0x8a,0x6b,0xde,
};

macros_t macho_stdmac = {
    332, 208, macho_stdmac_blob
};
#endif


/* --- from ./output/outobj.mac --- */

#if defined(OF_OBJ) || defined(OF_OBJ2)
/*
 * %define __?SECT?__ [section .text]
 * %imacro group 1+.nolist
 * [group %1]
 * %endmacro
 * %imacro uppercase 0+.nolist
 * [uppercase %1]
 * %endmacro
 * %imacro export 1+.nolist
 * [export %1]
 * %endmacro
 * %imacro import 1+.nolist
 * [import %1]
 * %endmacro
 * %macro __?NASM_CDecl?__ 1
 * %endmacro
 */

static const unsigned char obj_stdmac_blob[150] = {
    0x78,0xda,0x53,0x52,0x4d,0x49,0x4d,0xcb,
    0xcc,0x4b,0x55,0x88,0x8f,0xb7,0x0f,0x76,
    0x75,0x0e,0xb1,0x8f,0x8f,0x57,0x88,0x2e,
    0x4e,0x4d,0x2e,0xc9,0xcc,0xcf,0x53,0xd0,
    0x2b,0x49,0xad,0x28,0x89,0x15,0x57,0xcd,
    0xcc,0x4d,0x4c,0x2e,0xca,0x57,0x48,0x2f,
    0xca,0x2f,0x2d,0x50,0x30,0xd4,0xd6,0xcb,
    0xcb,0xcf,0xc9,0x2c,0x2e,0xe1,0x8a,0x86,
    0x08,0xa8,0x1a,0xc6,0x72,0xaa,0xa6,0xe6,
    0xa5,0x80,0x15,0x49,0xc3,0x14,0x97,0x16,
    0x14,0xa4,0x16,0x25,0x27,0x16,0xa7,0x2a,
    0x18,0xc0,0x34,0xf0,0x45,0x23,0x04,0x51,
    0x34,0x49,0xc0,0x34,0xa5,0x56,0x14,0xe4,
    0x17,0x95,0x20,0xac,0xe0,0x8e,0x86,0x8a,
    0x60,0x57,0x9e,0x99,0x8b,0xae,0x1c,0x2a,
    0x82,0xa2,0x5c,0x52,0x15,0xa2,0x1a,0xe8,
    0x43,0x3f,0xc7,0x60,0xdf,0x78,0x67,0x97,
    0xd4,0xe4,0x1c,0x90,0x3f,0x0d,0x11,0x6a,
    0x18,0x00,0x5f,0x36,0x58,0xea,
};

macros_t obj_stdmac = {
    264, 150, obj_stdmac_blob
};
#endif


const unsigned int use_package_count = 6;

const struct use_package *nasm_find_use_package(const char *name)
{
    static const struct use_package packages[6] = {
        { "altreg", &nasm_usemac_altreg, 0 },
        { "fp", &nasm_usemac_fp, 1 },
        { "ifunc", &nasm_usemac_ifunc, 2 },
        { "masm", &nasm_usemac_masm, 3 },
        { "smartalign", &nasm_usemac_smartalign, 4 },
        { "vtern", &nasm_usemac_vtern, 5 },
    };
#define INVALID_HASH_ENTRY (65535/3)
    static const int16_t hashdata[32] = {
        INVALID_HASH_ENTRY,
        0,
        INVALID_HASH_ENTRY,
        INVALID_HASH_ENTRY,
        INVALID_HASH_ENTRY,
        0,
        INVALID_HASH_ENTRY,
        3,
        1,
        INVALID_HASH_ENTRY,
        0,
        INVALID_HASH_ENTRY,
        INVALID_HASH_ENTRY,
        INVALID_HASH_ENTRY,
        INVALID_HASH_ENTRY,
        INVALID_HASH_ENTRY,
        INVALID_HASH_ENTRY,
        INVALID_HASH_ENTRY,
        INVALID_HASH_ENTRY,
        INVALID_HASH_ENTRY,
        2,
        INVALID_HASH_ENTRY,
        INVALID_HASH_ENTRY,
        INVALID_HASH_ENTRY,
        INVALID_HASH_ENTRY,
        0,
        INVALID_HASH_ENTRY,
        INVALID_HASH_ENTRY,
        INVALID_HASH_ENTRY,
        4,
        INVALID_HASH_ENTRY,
        INVALID_HASH_ENTRY,
    };
    uint32_t k1, k2;
    uint64_t crc;
    uint16_t ix;

    crc = crc64i(UINT64_C(0x076259c3e291c26c), name);
    k1 = ((uint32_t)crc & 0x1e) + 0;
    k2 = ((uint32_t)(crc >> 32) & 0x1e) + 1;

    ix = hashdata[k1] + hashdata[k2];
    if (ix >= 6)
        return NULL;

    if (nasm_stricmp(packages[ix].package, name))
        return NULL;

    return &packages[ix];
}
