Function at 0x539c00
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x6c
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x58], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x54], eax
mov byte [ebp - 0x59], al
mov eax, dword [ebp + 8]
mov byte [eax + 0x10], 0
add eax, 0x20
mov edi, eax
mov dword [ebp - 0x50], eax
call fcn.004cb890
lea ecx, [ebp - 0x28]
mov dword [esp], edi
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x2c]
mov dword [esp + 4], eax
call fcn.005f4b30
mov eax, dword [ebp - 0x24]
mov edi, dword [eax - 0xc]
mov dword [ebp - 0x48], eax
sub esp, 8
test edi, edi
mov ecx, edi
mov dword [ebp - 0x40], edi
je 0x53a21a
add ecx, eax
mov esi, 0x811c9dc5
movsx edx, byte [eax]
add eax, 1
xor edx, esi
imul esi, edx, 0x1000193
cmp eax, ecx
jne 0x539c64
mov ebx, dword [ebp - 0x4c]
xor edx, edx
mov eax, esi
mov edi, dword [ebx + 0x24]
div edi
mov eax, dword [ebx + 0x20]
mov eax, dword [eax + edx*4]
mov dword [ebp - 0x3c], edx
test eax, eax
je 0x539cac
mov ebx, dword [eax]
mov ecx, dword [ebx + 0x10]
cmp esi, ecx
je 0x539cf1
mov ebx, dword [ebx]
test ebx, ebx
je 0x539cac
mov ecx, dword [ebx + 0x10]
xor edx, edx
mov eax, ecx
div edi
cmp dword [ebp - 0x3c], edx
je 0x539c94
mov eax, dword [ebp - 0x48]
lock sub dword [eax - 4], 1
cmp byte [ebp - 0x58], 0
je 0x53a20e
mov dword [esp], 0xc
call fcn.006540e0
mov edi, dword [ebp - 0x4c]
mov ecx, edi
mov byte [eax + 4], 0
mov dword [eax + 8], edi
mov dword [eax], 0x6f0ea8
mov dword [esp], eax
call fcn.005a6240
mov eax, 0xffffffff
sub esp, 4
jmp 0x539ef1
mov eax, dword [ebx + 8]
mov ecx, dword [ebp - 0x40]
mov edx, dword [eax - 0xc]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x48]
cmp edx, ecx
cmovbe ecx, edx
mov dword [esp + 8], ecx
mov dword [esp], eax
mov dword [ebp - 0x44], edx
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x539c98
mov edx, dword [ebp - 0x44]
cmp dword [ebp - 0x40], edx
jne 0x539c98
mov eax, dword [ebp - 0x48]
lock sub dword [eax - 4], 1
mov eax, dword [ebx + 0xc]
cmp eax, 0xb4
mov dword [ebp - 0x3c], eax
je 0x539efb
cmp eax, 0xb5
je 0x539ea6
cmp eax, 0xb3
je 0x53a171
mov eax, dword [ebp - 0x3c]
test eax, eax
je 0x539cb4
mov eax, dword [ebp - 0x3c]
mov edi, dword [ebp - 0x4c]
mov dword [ebp - 0x30], eax
lea eax, [ebp - 0x30]
lea ecx, [edi + 4]
mov dword [esp], eax
call fcn.00642800
mov ebx, eax
sub esp, 4
mov dword [ebp - 0x48], eax
mov eax, edi
add eax, 0xc
cmp ebx, eax
je 0x539cb4
mov eax, ebx
add ebx, 0x14
je 0x539cb4
movzx eax, byte [eax + 0x38]
test al, 2
jne 0x53a20e
test al, 4
jne 0x539cb4
mov dword [esp], 0x34
call fcn.006540e0
mov edi, eax
mov byte [eax + 4], 0
mov eax, dword [ebp - 0x4c]
mov dword [edi], 0x6f0ee8
mov dword [edi + 8], eax
call fcn.004cb890
mov dword [edi + 0x14], 0
mov dword [edi + 0x18], 0
mov dword [edi + 0x1c], 0
mov dword [edi + 0x10], eax
call fcn.004cb890
mov esi, dword [ebp - 0x48]
mov dword [edi + 0x24], 0
mov dword [edi + 0x28], 0
mov dword [edi + 0x2c], 0
mov byte [edi + 0x30], 0
mov byte [edi + 0x31], 0
mov dword [edi + 0x20], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x1c], eax
mov eax, dword [esi + 0x1c]
sub eax, dword [esi + 0x18]
mov dword [edi + 0xc], ebx
sar eax, 2
test eax, eax
jne 0x53a0d5
test byte [esi + 0x38], 1
jne 0x53a0d5
mov esi, dword [ebp - 0x4c]
mov dword [ebp - 0x2c], edi
mov eax, dword [esi + 0xc4]
cmp eax, dword [esi + 0xc8]
je 0x53a550
test eax, eax
je 0x53a547
mov dword [eax], edi
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x2c]
mov eax, dword [eax + 0xc4]
mov edi, dword [ebp - 0x4c]
add eax, 4
mov dword [edi + 0xc4], eax
mov eax, dword [ecx]
call dword [eax + 0x20]
mov eax, dword [ebp - 0x48]
or byte [eax + 0x38], 2
mov dword [eax + 0x34], 0
mov eax, 1
jmp 0x539ef1
mov edi, dword [ebp - 0x4c]
mov esi, dword [ebp + 8]
mov eax, dword [edi + 0x74]
mov eax, dword [eax + 8]
mov dword [esi + 0x18], eax
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x50]
mov dword [esp + 8], 0x6e0716
mov dword [esp + 4], 0x401
mov dword [esp], eax
call sub.msvcrt.dll_sprintf_s
mov eax, dword [ebp + 8]
mov ecx, edi
mov dword [esp], 0x98
mov dword [esp + 4], eax
call fcn.0053de00
mov eax, 1
sub esp, 8
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret 0xc
mov eax, dword [ebp - 0x4c]
mov ecx, dword [eax + 0x74]
mov eax, dword [ecx + 0x50]
movzx ebx, byte [eax + 0x34]
lea edx, [eax + 0x24]
test bl, bl
jne 0x539f2f
mov esi, dword [eax + 4]
mov edx, dword [eax + 0x10]
sub esi, dword [eax + 0x20]
sub esi, 1
cmp esi, edx
cmovg esi, edx
xor edx, edx
mov edi, esi
shl edi, 4
test esi, esi
cmovg edx, edi
add edx, dword [eax + 0x18]
mov edx, dword [edx]
test edx, edx
je 0x539f6a
mov eax, dword [ecx]
mov edi, dword [ebp + 8]
mov eax, dword [eax + 0x30]
mov dword [esp + 0xc], str.filename_based___FILE__
mov dword [esp + 8], 0x6e0bd0
mov dword [esp + 4], 1
mov dword [esp], edi
call eax
mov eax, dword [ebp - 0x4c]
mov eax, dword [eax + 0x74]
sub esp, 0x10
mov eax, dword [eax + 0x50]
movzx ebx, byte [eax + 0x34]
test bl, bl
lea edx, [eax + 0x24]
je 0x53a0b0
mov eax, dword [edx + 4]
mov edi, dword [ebp + 8]
mov dword [edi + 0x18], eax
mov eax, dword [edi]
test eax, eax
je 0x53a48e
lea edx, [ebp - 0x32]
mov dword [esp + 4], edx
lea ecx, [ebp - 0x2c]
mov dword [esp], eax
call fcn.00600990
lea ecx, [ebp - 0x2c]
sub esp, 8
mov dword [esp + 8], 1
mov dword [esp + 4], 0x6e06b8
mov dword [esp], 0
call fcn.005ffd90
mov ebx, eax
mov eax, dword [eax]
sub esp, 0xc
mov dword [esp + 4], 0
mov dword [esp], 0
mov dword [ebp - 0x28], eax
lea eax, [ebp - 0x30]
mov dword [esp + 8], eax
call fcn.005febb0
lea ecx, [ebp - 0x28]
mov dword [ebx], eax
lea ebx, [ebp - 0x31]
mov dword [esp + 4], 1
mov dword [esp], 0x6e06b8
call fcn.005ff710
mov esi, eax
mov eax, dword [eax]
sub esp, 8
mov dword [esp + 8], ebx
mov dword [esp + 4], 0
mov dword [esp], 0
mov dword [ebp - 0x30], eax
call fcn.005febb0
mov edx, 0xffffffff
mov dword [esi], eax
mov eax, dword [ebp - 0x28]
lock xadd dword [eax - 4], edx
test edx, edx
jle 0x53a224
mov eax, dword [ebp - 0x2c]
mov edx, 0xffffffff
lock xadd dword [eax - 4], edx
test edx, edx
jle 0x53a237
mov eax, dword [ebp - 0x30]
mov dword [esp + 8], 0x6e0666
mov dword [esp + 4], 0x401
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x50]
mov dword [esp], eax
call sub.msvcrt.dll_sprintf_s
mov eax, dword [ebp - 0x30]
mov edx, 0xffffffff
lock xadd dword [eax - 4], edx
test edx, edx
jle 0x53a478
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x4c]
mov dword [esp], 0x98
mov dword [esp + 4], eax
call fcn.0053de00
mov eax, 1
sub esp, 8
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret 0xc
mov edx, dword [eax + 4]
sub edx, dword [eax + 0x20]
mov ecx, dword [eax + 0x10]
sub edx, 1
cmp edx, ecx
cmovle ecx, edx
xor edx, edx
mov ebx, ecx
shl ebx, 4
test ecx, ecx
cmovg edx, ebx
add edx, dword [eax + 0x18]
jmp 0x539f75
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x4c]
mov dword [esp], eax
call fcn.005a62a0
sub esp, 4
cmp byte [ebp - 0x54], 0
je 0x53a109
cmp eax, 0xa
jne 0x53a109
mov ebx, dword [ebp - 0x4c]
mov esi, dword [ebp + 8]
mov dword [esp], esi
mov ecx, ebx
call fcn.005a62a0
sub esp, 4
cmp eax, 0xa
je 0x53a0f7
cmp eax, 0x28
mov dword [ebp - 0x40], eax
je 0x53a24d
mov esi, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x3c]
mov ebx, dword [esi + 0x40]
mov edx, dword [esi + 0x74]
mov ebx, dword [ebx + eax*4]
lea eax, [ebp - 0x28]
mov ecx, dword [edx]
mov ebx, dword [ebx + 4]
mov ecx, dword [ecx + 0x78]
mov dword [esp + 4], eax
mov dword [esp], edx
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], str.macro_expansion
mov dword [esp + 8], str.expected___following
call ecx
mov eax, dword [ebp + 8]
mov ecx, esi
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x40]
mov dword [esp], eax
call fcn.0053de00
mov eax, dword [edi]
mov ecx, edi
sub esp, 8
call dword [eax + 4]
xor eax, eax
jmp 0x539ef1
mov eax, dword [ebp - 0x4c]
mov eax, dword [eax + 0x74]
mov eax, dword [eax + 0x50]
cmp byte [eax + 0x34], 0
lea edx, [eax + 0x24]
jne 0x53a1a3
mov edx, dword [eax + 4]
sub edx, dword [eax + 0x20]
mov ecx, dword [eax + 0x10]
sub edx, 1
cmp edx, ecx
cmovle ecx, edx
xor edx, edx
mov ebx, ecx
shl ebx, 4
test ecx, ecx
cmovg edx, ebx
add edx, dword [eax + 0x18]
mov eax, dword [edx + 8]
mov edi, dword [ebp + 8]
mov dword [edi + 0x18], eax
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x50]
mov dword [esp + 8], 0x6e0716
mov dword [esp + 4], 0x401
mov dword [esp], eax
call sub.msvcrt.dll_sprintf_s
jmp 0x53a082
mov esi, dword [ebp - 0x4c]
mov eax, dword [esi + 0x74]
mov ecx, dword [esi + 0x40]
mov esi, dword [ebp - 0x3c]
mov edx, dword [eax]
mov ecx, dword [ecx + esi*4]
mov edx, dword [edx + 0x78]
mov ecx, dword [ecx + 4]
mov dword [esp + 0xc], str.macro_expansion
mov dword [esp + 8], str.End_of_input_in_macro
mov dword [esp + 0x10], ecx
lea esi, [ebp - 0x28]
mov dword [esp], eax
mov dword [esp + 4], esi
call edx
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
lea esp, [ebp - 0xc]
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret 0xc
mov esi, 0x811c9dc5
jmp 0x539c76
lea ecx, [eax - 0xc]
mov dword [esp], ebx
call fcn.005ff250
sub esp, 4
jmp 0x53a036
lea ecx, [eax - 0xc]
lea eax, [ebp - 0x28]
mov dword [esp], eax
call fcn.005ff250
sub esp, 4
jmp 0x53a04b
mov edx, dword [edi + 0xc]
mov ecx, dword [edi + 0x14]
mov ebx, dword [edi + 0x18]
mov eax, dword [edx + 8]
sub eax, dword [edx + 4]
sub ebx, ecx
sar ebx, 2
sar eax, 2
cmp eax, ebx
mov esi, eax
ja 0x53a56f
jae 0x53a281
lea eax, [ecx + eax*4]
mov dword [edi + 0x18], eax
mov eax, dword [edx + 8]
sub eax, dword [edx + 4]
sar eax, 2
mov esi, eax
xor ebx, ebx
test esi, esi
je 0x53a5eb
nop
lea esi, [esi]
mov dword [esp], 0x14
call fcn.006540e0
mov esi, eax
call fcn.004cb890
mov dword [esi + 4], 0
mov dword [esi + 8], 0
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 0
mov dword [esi], eax
mov eax, dword [edi + 0x14]
mov dword [eax + ebx*4], esi
mov edx, dword [edi + 0xc]
add ebx, 1
mov eax, dword [edx + 8]
sub eax, dword [edx + 4]
sar eax, 2
cmp ebx, eax
mov esi, eax
jb 0x53a290
mov ecx, dword [edi + 0x24]
mov ebx, dword [edi + 0x28]
sub ebx, ecx
sar ebx, 2
cmp ebx, eax
mov dword [ebp - 0x40], ebx
jb 0x53a592
cmp esi, dword [ebp - 0x40]
jae 0x53a306
lea eax, [ecx + esi*4]
mov dword [edi + 0x28], eax
mov eax, dword [edx + 8]
sub eax, dword [edx + 4]
sar eax, 2
xor edx, edx
test eax, eax
je 0x53a32d
lea esi, [esi]
mov eax, dword [edi + 0x24]
mov dword [eax + edx*4], 0
mov ecx, dword [edi + 0xc]
add edx, 1
mov eax, dword [ecx + 8]
sub eax, dword [ecx + 4]
sar eax, 2
cmp edx, eax
jb 0x53a310
mov esi, dword [ebp + 8]
mov byte [ebp - 0x40], 0
mov dword [ebp - 0x50], 0
mov eax, dword [ebp - 0x50]
xor ebx, ebx
shl eax, 2
cmp byte [ebp - 0x59], 0
mov dword [ebp - 0x44], eax
je 0x53a3dd
mov ecx, dword [ebp - 0x4c]
mov dword [esp], esi
call fcn.005a62a0
mov edx, eax
sub esp, 4
and edx, 0xfffffffd
cmp edx, 0xfffffffd
je 0x53a1d0
cmp eax, 0xa
je 0x53a350
cmp eax, 0x23
je 0x53a514
mov ecx, dword [edi + 0xc]
mov edx, dword [ecx + 8]
sub edx, dword [ecx + 4]
sar edx, 2
test edx, edx
jne 0x53a393
cmp eax, 0x29
jne 0x53a4d1
test ebx, ebx
jne 0x53a3a9
cmp eax, 0x29
je 0x53a600
cmp eax, 0x2c
je 0x53a600
cmp eax, 0x28
je 0x53a470
xor edx, edx
cmp eax, 0x29
sete dl
sub ebx, edx
mov edx, dword [edi + 0x14]
mov ecx, dword [ebp - 0x44]
mov ecx, dword [edx + ecx]
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.0053df40
mov byte [ebp - 0x40], 1
sub esp, 8
jmp 0x53a350
mov ecx, dword [ebp - 0x4c]
mov dword [esp], esi
call fcn.005a62a0
mov edx, eax
sub esp, 4
and edx, 0xfffffffd
cmp edx, 0xfffffffd
je 0x53a1d0
cmp eax, 0xa
je 0x53a5bb
cmp eax, 0x23
je 0x53a514
mov ecx, dword [edi + 0xc]
mov edx, dword [ecx + 8]
sub edx, dword [ecx + 4]
sar edx, 2
test edx, edx
jne 0x53a424
cmp eax, 0x29
jne 0x53a4d1
test ebx, ebx
jne 0x53a43a
cmp eax, 0x29
je 0x53a600
cmp eax, 0x2c
je 0x53a600
cmp eax, 0x28
je 0x53a5b3
xor edx, edx
cmp eax, 0x29
sete dl
sub ebx, edx
mov edx, dword [edi + 0x14]
mov ecx, dword [ebp - 0x44]
mov ecx, dword [edx + ecx]
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.0053df40
mov byte [ebp - 0x40], 1
sub esp, 8
jmp 0x53a3dd
add ebx, 1
jmp 0x53a3bc
lea ecx, [eax - 0xc]
lea eax, [ebp - 0x28]
mov dword [esp], eax
call fcn.005ff250
sub esp, 4
jmp 0x53a082
mov edx, dword [edi + 4]
lea eax, [ebp - 0x30]
mov dword [esp + 0xc], 0x6e06bd
mov dword [esp + 8], 0x20
mov dword [esp + 4], 0x538480
mov dword [esp + 0x10], edx
sar edx, 0x1f
mov dword [esp + 0x14], edx
mov dword [esp], eax
call fcn.005cabd0
jmp 0x53a04b
add dword [ebp - 0x50], 1
cmp dword [ebp - 0x50], edx
jb 0x53a33b
xor ebx, ebx
cmp eax, 0xffffffff
jne 0x53a4f9
jmp 0x53a1d0
cmp eax, 0xffffffff
je 0x53a1d0
test ebx, ebx
jle 0x53a674
cmp eax, 0x29
sete al
movzx eax, al
sub ebx, eax
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x4c]
mov dword [esp], eax
call fcn.005a62a0
sub esp, 4
cmp eax, 0x28
jne 0x53a4dd
add ebx, 1
jmp 0x53a4f9
mov esi, dword [ebp - 0x4c]
mov eax, dword [esi + 0x74]
mov ecx, dword [esi + 0x40]
mov esi, dword [ebp - 0x3c]
mov edx, dword [eax]
mov ecx, dword [ecx + esi*4]
mov esi, dword [ebp + 8]
mov edx, dword [edx + 0x78]
mov ecx, dword [ecx + 4]
mov dword [esp + 0xc], str.macro_expansion
mov dword [esp + 8], str.unexpected_
mov dword [esp + 0x10], ecx
jmp 0x53a1fe
mov ecx, edi
xor eax, eax
jmp 0x539e80
mov ecx, dword [ebp - 0x4c]
lea eax, [ebp - 0x2c]
mov dword [esp], eax
add ecx, 0xc0
call fcn.00634d40
mov ecx, dword [ebp - 0x2c]
sub esp, 4
jmp 0x539e8c
sub eax, ebx
mov dword [esp], eax
lea ecx, [edi + 0x10]
call fcn.00634c10
mov edx, dword [edi + 0xc]
mov eax, dword [edx + 8]
sub eax, dword [edx + 4]
sub esp, 4
sar eax, 2
mov esi, eax
jmp 0x53a281
sub eax, ebx
mov dword [esp], eax
lea ecx, [edi + 0x20]
call fcn.00634c10
mov edx, dword [edi + 0xc]
mov eax, dword [edx + 8]
sub eax, dword [edx + 4]
sub esp, 4
sar eax, 2
jmp 0x53a306
add ebx, 1
jmp 0x53a44d
mov esi, dword [ebp - 0x4c]
mov eax, dword [esi + 0x74]
mov ecx, dword [esi + 0x40]
mov esi, dword [ebp - 0x3c]
mov edx, dword [eax]
mov ecx, dword [ecx + esi*4]
mov edx, dword [edx + 0x78]
mov ecx, dword [ecx + 4]
mov dword [esp + 0xc], str.macro_expansion
mov dword [esp + 8], str.End_of_line_in_macro_substitution:
mov dword [esp + 0x10], ecx
jmp 0x53a1fb
mov ebx, dword [edi + 0x28]
mov ecx, dword [edi + 0x24]
mov dword [ebp - 0x40], ebx
sub dword [ebp - 0x40], ecx
sar dword [ebp - 0x40], 2
jmp 0x53a2f2
cmp eax, 0x29
jne 0x53a4c4
cmp edx, 1
je 0x53a6f2
add dword [ebp - 0x50], 1
mov eax, edx
cmp dword [ebp - 0x50], eax
jb 0x53a6c5
movzx eax, byte [ebp - 0x54]
xor esi, esi
test edx, edx
mov dword [ebp - 0x3c], eax
je 0x539e52
mov eax, dword [edi + 0x24]
mov edx, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x4c]
lea ebx, [eax + esi*4]
mov eax, dword [edi + 0x14]
mov eax, dword [eax + esi*4]
add esi, 1
mov dword [esp + 8], edx
mov edx, dword [ebp + 8]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.0053b590
mov dword [ebx], eax
mov edx, dword [edi + 0xc]
sub esp, 0xc
mov eax, dword [edx + 8]
sub eax, dword [edx + 4]
sar eax, 2
cmp esi, eax
jb 0x53a632
jmp 0x539e52
cmp eax, 0x29
jne 0x53a4ee
mov esi, dword [ebp - 0x4c]
mov eax, dword [esi + 0x74]
mov edx, dword [eax]
mov ecx, dword [edx + 0x78]
mov edx, dword [esi + 0x40]
mov esi, dword [ebp - 0x3c]
mov edx, dword [edx + esi*4]
mov edx, dword [edx + 4]
mov dword [esp + 0xc], str.macro_expansion
mov dword [esp + 8], str.Too_many_args_in_macro
mov dword [esp + 0x10], edx
lea esi, [ebp - 0x28]
mov dword [esp], eax
mov dword [esp + 4], esi
call ecx
mov eax, dword [edi + 0xc]
mov edx, dword [eax + 8]
sub edx, dword [eax + 4]
sar edx, 2
jmp 0x53a621
mov esi, dword [ebp - 0x4c]
mov eax, dword [esi + 0x74]
mov edx, dword [eax]
mov ecx, dword [edx + 0x78]
mov edx, dword [esi + 0x40]
mov esi, dword [ebp - 0x3c]
mov edx, dword [edx + esi*4]
mov edx, dword [edx + 4]
mov dword [esp + 0xc], str.macro_expansion
mov dword [esp + 8], str.Too_few_args_in_Macro
mov dword [esp + 0x10], edx
jmp 0x53a6a8
cmp byte [ebp - 0x40], 0
mov eax, 1
je 0x53a618
jmp 0x53a612