Function at 0x44ce10
Capabilities:
Encode data using base64
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
mov edi, eax
push esi
push ebx
sub esp, 0xac
mov byte [eax + 0xb], 0
mov byte [eax + 0xec], 0
mov dword [esp + 0x38], edx
movzx edx, word [edx + 0x14]
mov byte [eax + 0x6c], 1
mov dword [esp + 0x44], ecx
mov eax, edx
shr ax, 6
mov ecx, eax
and cx, 0x84
cmp cx, 4
je 0x44cfb0
test al, 4
jne 0x44cf60
mov ebx, dword [esp + 0x38]
xor ebp, ebp
mov esi, dword [ebx + 0x18]
test byte [esi + 0x14], 1
mov dword [esp + 0x3c], esi
jne 0x44d051
test al, 0x80
je 0x44d011
mov ebx, dword [esp + 0x38]
or eax, 0x20
shl eax, 6
movzx esi, word [ebx + 0x14]
mov edx, esi
mov word [esp + 0x24], si
and edx, 0x3f
or eax, edx
mov word [ebx + 0x14], ax
mov eax, dword [edi + 0x220]
test eax, eax
je 0x44ceb5
mov esi, dword [esp + 0x38]
mov dword [esp], edi
mov dword [esp + 8], esi
mov esi, dword [esp + 0xc0]
mov dword [esp + 4], esi
call eax
mov ebx, dword [esp + 0x3c]
movzx eax, byte [ebx + 0x14]
mov byte [esp + 0x24], al
or eax, 8
cmp word [ebx + 0x10], 0
mov byte [ebx + 0x14], al
je 0x44d140
test ebp, ebp
je 0x44d268
cmp byte [edi + 8], 0
je 0x44d22e
lea eax, [edi + 0x4c]
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], eax
nop
mov edi, dword [ebp + 8]
mov esi, dword [ebp + 4]
mov eax, dword [esp + 0x28]
mov ebx, dword [ebp]
mov dword [ebp], 0
call fcn.0044bbe0
mov dword [eax + 0x18], 0
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], ebp
mov dword [eax + 8], esi
mov dword [eax + 0xc], edi
mov eax, dword [esp + 0x24]
cmp byte [eax + 0x275], 0
jne 0x44cf3a
sub edi, esi
mov edx, edi
sar edx, 2
add dword [0x4de004], edx
test ebx, ebx
mov ebp, ebx
jne 0x44cef0
mov edi, dword [esp + 0x24]
mov eax, 2
mov byte [edi + 0x6c], 0
add esp, 0xac
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [edi + 0x68]
mov byte [edi + 0x6c], 0
test byte [eax + 0x15], 1
je 0x44cf90
mov eax, dword [edi + 0x64]
mov ecx, dword [esp + 0xc0]
mov edx, dword [esp + 0x38]
mov dword [esp], eax
mov eax, edi
call fcn.0044c7c0
add esp, 0xac
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [eax + 0x18]
test byte [eax + 0x14], 1
je 0x44cf6d
mov eax, dword [edi + 0xf0]
mov eax, dword [eax - 0x10]
mov dword [esp + 0xc0], eax
jmp 0x44cf70
or al, 0x80
mov esi, dword [esp + 0x38]
and edx, 0x3f
shl eax, 6
or eax, edx
mov word [esi + 0x14], ax
mov eax, dword [edi + 0x228]
test eax, eax
je 0x44cfdd
mov ebx, dword [esp + 0x38]
mov dword [esp], edi
mov dword [esp + 4], ebx
call eax
test al, al
jne 0x44cfff
mov eax, dword [edi + 0x214]
test eax, eax
je 0x44d29c
mov ebx, dword [esp + 0x38]
mov dword [esp + 8], ebx
mov edx, dword [edi + 0x20]
mov dword [esp], edi
mov dword [esp + 4], edx
call eax
movzx eax, word [ebx + 0x14]
mov word [esp + 0x24], ax
shr ax, 6
jmp 0x44ce4e
mov ebx, dword [esp + 0x38]
or al, 0xa0
shl eax, 6
movzx esi, word [ebx + 0x14]
mov edx, esi
mov word [esp + 0x24], si
and edx, 0x3f
or eax, edx
mov word [ebx + 0x14], ax
mov eax, dword [edi + 0x214]
test eax, eax
je 0x44ce93
mov dword [esp + 8], ebx
mov edx, dword [edi + 0x20]
mov dword [esp], edi
mov dword [esp + 4], edx
call eax
jmp 0x44ce93
add byte [edi + 0x10], 1
add dword [edi + 0x10c], 1
xor ebx, ebx
mov byte [edi + 0x11], 1
mov dword [esp], edi
call fcn.0044f0a0
movzx edx, byte [eax + 4]
cmp dl, 0x53
jne 0x44d094
test ebx, ebx
je 0x44d090
test byte [ebx + 6], 1
jne 0x44d062
mov ebp, dword [eax + 8]
test ebp, ebp
cmove ebx, eax
jmp 0x44d062
mov ebx, eax
jmp 0x44d062
cmp dl, 0x14
je 0x44d34e
cmp dl, 0x16
jne 0x44d0ac
lea edx, [edi + 0x170]
cmp eax, edx
jne 0x44d0dc
mov dword [esp + 4], 1
mov dword [esp], edi
call fcn.0044cb40
test ebx, ebx
je 0x44d0dc
mov dword [esp + 0xc], 1
mov dword [esp + 8], ebx
mov dword [esp + 4], 0
mov dword [esp], edi
call fcn.0044c750
sub dword [edi + 0x10c], 1
sub byte [edi + 0x10], 1
cmp byte [edi + 0x262], 0
mov byte [edi + 0x11], 0
je 0x44d135
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x18]
test byte [eax + 0x14], 4
jne 0x44d135
xor ebp, ebp
mov eax, dword [esp + 0x38]
mov eax, dword [eax]
mov dword [esp + 8], str.function_like_macro___s__must_be_used_with_arguments_in_traditional_C
mov dword [esp + 4], 6
mov dword [esp], edi
mov dword [esp + 0xc], eax
call fcn.0043a6c0
test ebp, ebp
je 0x44d135
mov dword [esp + 4], ebp
mov dword [esp], edi
call fcn.00446220
mov byte [edi + 0x6c], 0
xor eax, eax
jmp 0x44cf4d
test al, 0x20
jne 0x44d2b2
mov eax, dword [esp + 0x3c]
cmp byte [edi + 0x275], 0
mov esi, dword [eax + 0xc]
mov dword [esp + 0x2c], esi
mov esi, dword [eax + 4]
je 0x44d27e
mov eax, dword [esp + 0x2c]
lea ebx, [eax*4]
shl eax, 4
mov dword [esp], eax
call fcn.0046ea40
mov dword [esp + 4], ebx
mov dword [esp], edi
mov dword [esp + 0x28], eax
call fcn.00446250
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0xc0]
mov ebx, dword [esp + 0x2c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0xc], ebx
mov dword [esp + 4], eax
mov eax, dword [edi + 0x1c]
mov dword [esp], eax
call fcn.00449890
test ebx, ebx
mov ecx, eax
je 0x44e50e
mov dword [esp + 0x30], ebp
xor ebx, ebx
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x2c], edi
mov edi, ecx
lea esi, [esi]
mov eax, dword [esi]
mov edx, dword [esp + 0x28]
mov ecx, esi
mov dword [esp + 0xc], ebx
mov dword [esp + 8], edi
add ebx, 1
add esi, 0x10
mov dword [esp + 4], eax
mov dword [esp], eax
mov eax, dword [esp + 0x24]
call fcn.0044bd30
cmp ebx, ebp
jne 0x44d1d0
mov ebp, dword [esp + 0x30]
mov edi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x24]
mov dword [esp + 8], ebx
mov edx, dword [esp + 0x38]
mov eax, dword [ecx + 4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x28]
mov dword [esp], eax
mov eax, edi
call fcn.0044bc50
add dword [0x4de004], ebx
jmp 0x44ced2
mov dword [esp], edi
call fcn.004457e0
mov esi, dword [esp + 0x44]
xor edx, edx
mov byte [eax + 4], 0x53
mov word [eax + 6], dx
mov dword [eax + 8], esi
mov dword [esp + 0xc], 1
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov dword [esp], edi
call fcn.0044c750
jmp 0x44cee4
mov byte [edi + 0x6c], 0
mov eax, 1
jmp 0x44cf4d
mov dword [esp + 0x2c], 0
mov ebx, dword [esp + 0x2c]
mov eax, dword [esp + 0x38]
mov dword [esp + 8], esi
mov dword [esp], edi
mov dword [esp + 0xc], ebx
mov dword [esp + 4], eax
call fcn.0044c750
jmp 0x44d223
mov eax, dword [esp + 0x38]
movzx eax, word [eax + 0x14]
mov word [esp + 0x24], ax
shr ax, 6
jmp 0x44ce4e
mov ecx, dword [ebx + 0xc]
test ecx, ecx
je 0x44eac3
mov eax, dword [esp + 0x3c]
xor edx, edx
mov esi, dword [eax + 4]
cmp byte [esi + 4], 0x26
lea eax, [esi + 0x10]
je 0x44e924
add edx, 1
cmp edx, ecx
je 0x44eac3
movzx ebx, byte [eax + 4]
add eax, 0x10
cmp bl, 0x26
jne 0x44d2d3
cmp byte [edi + 0x275], 0
mov dword [esp + 0x2c], edx
je 0x44d27e
mov eax, dword [esp + 0x2c]
lea ebx, [eax*4]
shl eax, 4
mov dword [esp], eax
call fcn.0046ea40
mov dword [esp + 4], ebx
mov dword [esp], edi
mov dword [esp + 0x28], eax
call fcn.00446250
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 4], eax
mov eax, dword [edi + 0x1c]
mov dword [esp], eax
call fcn.00449890
mov ecx, eax
jmp 0x44d1bd
movzx eax, byte [edi + 0x275]
mov byte [edi + 0x11], 2
mov byte [esp + 0x5c], al
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x18]
movzx ebx, word [eax + 0x10]
mov dword [esp + 0x54], eax
test bx, bx
je 0x44e4ff
imul eax, ebx, 0xe4
imul ebx, ebx, 0x1c
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.00446250
mov esi, eax
mov dword [esp + 0x68], eax
mov eax, dword [eax + 4]
mov dword [esp + 8], ebx
mov dword [esp + 4], 0
mov ebp, eax
mov dword [esp], eax
mov dword [esp + 0x60], eax
call sub.msvcrt.dll_memset
mov eax, ebp
mov dword [esp + 0x28], esi
mov dword [esp + 0x24], edi
add eax, ebx
cmp byte [esp + 0x5c], 0
mov ebx, ebp
mov dword [esi + 8], eax
lea esi, [edi + 0x170]
mov dword [esp + 0x40], 0
mov edi, ebx
mov dword [esp + 0x58], esi
setne byte [esp + 0x30]
xor ebp, ebp
mov dword [esp + 0x48], ebp
add dword [esp + 0x40], 1
cmp byte [esp + 0x5c], 0
mov dword [edi], eax
jne 0x44d764
mov dword [esp + 0x2c], 0x32
xor ebx, ebx
mov dword [esp + 0x34], 0
mov esi, 2
jmp 0x44d431
mov eax, dword [edi]
test eax, eax
je 0x44d4d2
mov edx, dword [edi + 0x14]
mov dword [eax + ebp - 8], ecx
lea edx, [edx + ebp - 8]
test edx, edx
je 0x44d42b
mov dword [edx], esi
add ebx, 1
lea esi, [ebx + 2]
mov ecx, dword [esp + 0x28]
lea ebp, [esi*4]
add eax, ebp
cmp dword [ecx + 0xc], eax
jb 0x44d4e0
mov ecx, dword [esp + 0x2c]
cmp esi, ecx
mov eax, ecx
jbe 0x44d45c
cmp byte [esp + 0x30], 0
jne 0x44d550
mov eax, dword [esp + 0x24]
lea edx, [esp + 0x9c]
call fcn.0044eb00
mov ecx, eax
movzx eax, byte [eax + 4]
cmp al, 0x53
je 0x44d510
cmp al, 0x14
je 0x44d520
cmp al, 0x15
je 0x44d530
cmp al, 0x13
je 0x44d580
cmp al, 0x16
je 0x44d5a4
cmp al, 0x25
je 0x44d650
cmp al, 0x51
je 0x44d660
lea esi, [esi]
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x9c]
cmp byte [eax + 0x275], 0
jne 0x44d410
mov eax, dword [edi]
test eax, eax
jne 0x44d573
mov dword [0], ecx
ud2
mov eax, dword [esp + 0x24]
mov dword [esp + 8], 0xfa0
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.004462f0
mov dword [esp + 0x28], eax
mov eax, dword [eax + 8]
mov dword [edi], eax
jmp 0x44d447
test ebx, ebx
jne 0x44d4b0
mov eax, dword [edi]
jmp 0x44d431
add dword [esp + 0x34], 1
jmp 0x44d4b0
mov esi, dword [esp + 0x34]
mov eax, esi
sub eax, 1
test esi, esi
je 0x44d5a4
mov dword [esp + 0x34], eax
jmp 0x44d4b0
add eax, 0x3e8
mov dword [esp + 0x2c], eax
shl eax, 2
mov dword [esp + 4], eax
mov eax, dword [edi + 0x14]
mov dword [esp], eax
call fcn.0046eac0
mov dword [edi + 0x14], eax
jmp 0x44d45c
mov dword [eax + ebp - 8], ecx
jmp 0x44d42b
mov esi, dword [esp + 0x34]
test esi, esi
jne 0x44d4b0
mov eax, dword [esp + 0x54]
test byte [eax + 0x14], 2
je 0x44d5a4
movzx eax, word [eax + 0x10]
cmp dword [esp + 0x40], eax
je 0x44d4b0
test ebx, ebx
mov eax, dword [edi]
je 0x44d5d3
mov edx, dword [eax + ebx*4 - 4]
cmp byte [edx + 4], 0x53
je 0x44d5ce
jmp 0x44d5d3
mov edx, dword [eax + ebx*4 - 4]
cmp byte [edx + 4], 0x53
jne 0x44d73b
sub ebx, 1
jne 0x44d5c0
mov edx, dword [esp + 0x24]
mov dword [edi + 0xc], ebx
cmp byte [edx + 0x275], 0
mov esi, dword [edx + 0x170]
je 0x44d755
test eax, eax
je 0x44d759
mov edx, dword [edi + 0x14]
mov ebp, dword [esp + 0x58]
lea edx, [edx + ebx*4]
mov dword [eax + ebx*4], ebp
test edx, edx
je 0x44d608
mov dword [edx], esi
mov esi, dword [esp + 0x54]
mov ebp, dword [esp + 0x40]
movzx edx, word [esi + 0x10]
cmp ebp, edx
mov esi, edx
ja 0x44d62d
lea eax, [eax + ebx*4 + 4]
mov ebx, dword [esp + 0x28]
cmp ebp, edx
mov dword [ebx + 8], eax
lea eax, [edi + 0x1c]
cmovne edi, eax
movzx eax, byte [ecx + 4]
lea edx, [eax - 0x15]
cmp dl, 1
jbe 0x44d786
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 8]
jmp 0x44d3e2
test byte [ecx + 6], 0x40
je 0x44d4b0
jmp 0x44d5a4
mov eax, dword [esp + 0x24]
mov dword [esp + 0x4c], ecx
mov dword [esp], eax
call fcn.004457e0
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x50], ebx
mov ebx, eax
mov dword [esp + 0x4c], edi
mov ebp, dword [esp + 0x48]
mov edi, dword [esp + 0x24]
mov edx, dword [ecx]
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov edx, dword [ecx + 8]
mov dword [eax + 8], edx
mov edx, dword [ecx + 0xc]
mov dword [eax + 0xc], edx
jmp 0x44d6e9
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
sub eax, edx
cmp eax, 3
ja 0x44d6c5
sub edx, dword [ebp + 4]
mov dword [esp], edi
add edx, edx
mov dword [esp + 4], edx
call fcn.00446250
mov edx, dword [eax + 8]
mov dword [eax], ebp
mov ebp, eax
mov dword [edx], ebx
add edx, 4
cmp byte [ebx + 4], 0x52
mov dword [ebp + 8], edx
je 0x44d710
lea edx, [esp + 0x9c]
mov eax, edi
call fcn.0044eb00
cmp byte [eax + 4], 0x16
mov ebx, eax
je 0x44d710
test ebp, ebp
jne 0x44d6a0
mov dword [esp + 4], pe_nt_image_headers32
mov dword [esp], edi
call fcn.00446250
mov edx, dword [eax + 8]
mov ebp, eax
mov dword [edx], ebx
add edx, 4
cmp byte [ebx + 4], 0x52
mov dword [ebp + 8], edx
jne 0x44d6d3
mov eax, dword [esp + 0x24]
mov ecx, ebx
mov edi, dword [esp + 0x4c]
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x48], ebp
mov byte [eax + 0x11], 2
mov byte [eax + 0x10], 1
cmp byte [ecx + 4], 0x16
je 0x44d5a4
mov eax, dword [edi]
jmp 0x44d431
mov edx, dword [esp + 0x24]
mov dword [edi + 0xc], ebx
cmp byte [edx + 0x275], 0
mov esi, dword [edx + 0x170]
jne 0x44d5f5
test eax, eax
jne 0x44d77a
mov eax, dword [esp + 0x58]
mov dword [0], eax
ud2
mov dword [esp], 0xc8
call fcn.0046ea40
mov dword [edi + 0x14], eax
mov eax, dword [edi]
jmp 0x44d3f4
mov esi, dword [esp + 0x58]
mov dword [eax + ebx*4], esi
jmp 0x44d608
cmp al, 0x16
mov ebp, dword [esp + 0x48]
mov edi, dword [esp + 0x24]
je 0x44e723
mov eax, dword [esp + 0x40]
cmp eax, 1
mov ebx, eax
je 0x44e6b2
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x54]
mov dword [esp + 0xc], ebx
mov dword [esp], edi
mov dword [esp + 8], eax
mov dword [esp + 4], esi
call fcn.0044c650
test al, al
mov byte [esp + 0x58], al
je 0x44e763
test byte [esi + 0x14], 2
je 0x44d7e8
movzx eax, word [esi + 0x10]
cmp ebx, eax
jb 0x44e6ea
cmp ebx, 1
je 0x44e6ce
mov eax, dword [esp + 0x3c]
sub byte [edi + 0x10], 1
mov byte [edi + 0x11], 0
sub dword [edi + 0x10c], 1
cmp word [eax + 0x10], 0
je 0x44da49
mov eax, dword [esp + 0x68]
mov eax, dword [eax + 4]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x3c]
test byte [eax + 0x14], 0x20
jne 0x44e4bf
mov eax, dword [esp + 0x3c]
mov ebx, dword [eax + 0xc]
mov edx, dword [eax + 4]
mov eax, ebx
shl eax, 4
add eax, edx
mov dword [esp + 0x24], eax
cmp edx, dword [esp + 0x24]
lea eax, [edi + 0x28]
mov dword [esp + 0x2c], ebx
mov esi, edx
mov dword [esp + 0x50], eax
jae 0x44db1a
mov dword [esp + 0x48], ebp
mov dword [esp + 0x28], edi
jmp 0x44d862
add esi, 0x10
cmp esi, dword [esp + 0x24]
jae 0x44db12
cmp byte [esi + 4], 0x50
jne 0x44d855
lea eax, [ebx + 2]
mov edi, dword [esp + 0x60]
add dword [esp + 0x2c], 2
mov ecx, eax
mov dword [esp + 0x34], eax
imul eax, dword [esi + 8], 0x1c
lea edi, [edi + eax - 0x1c]
movzx eax, word [esi + 6]
test al, 4
je 0x44dae0
mov ebp, dword [edi + 8]
mov ebx, ecx
test ebp, ebp
jne 0x44d855
mov eax, dword [esp + 0x28]
mov edx, dword [eax + 0x28]
mov eax, dword [edx + 8]
mov edx, dword [edx + 0xc]
sub edx, eax
cmp edx, 2
ja 0x44d8cd
mov eax, dword [esp + 0x50]
mov ebx, dword [esp + 0x28]
mov dword [esp + 8], 3
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.00446400
mov eax, dword [ebx + 0x28]
mov eax, dword [eax + 8]
mov byte [eax], 0x22
mov ecx, dword [edi + 0xc]
lea ebp, [eax + 1]
test ecx, ecx
je 0x44e13f
xor ebx, ebx
mov dword [esp + 0x54], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x5c], esi
mov eax, dword [edi]
mov esi, dword [esp + 0x30]
mov esi, dword [eax + esi*4]
movzx eax, byte [esi + 4]
cmp al, 0x53
je 0x44e1b1
lea edx, [eax - 0x3e]
cmp dl, 4
jbe 0x44d929
lea edx, [eax - 0x38]
cmp dl, 4
jbe 0x44d929
mov dword [esp], eax
call fcn.0043c8a0
test al, al
je 0x44ea3f
mov dword [esp], esi
call fcn.00445910
movzx ecx, byte [esp + 0x58]
shl eax, 2
mov byte [esp + 0x4c], cl
lea ecx, [eax + 3]
mov eax, dword [esp + 0x28]
mov edx, dword [eax + 0x28]
mov eax, dword [edx + 0xc]
sub eax, ebp
cmp ecx, eax
ja 0x44e1e4
mov eax, dword [edx + 8]
lea edx, [ebp - 1]
cmp eax, edx
je 0x44d970
test ebx, ebx
cmove ebx, esi
test byte [ebx + 6], 1
je 0x44d970
mov byte [ebp], 0x20
add ebp, 1
cmp byte [esp + 0x4c], 0
je 0x44e18e
mov eax, dword [esp + 0x28]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00446250
mov ebx, dword [eax + 8]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0xc], 1
mov dword [esp + 4], esi
mov dword [esp + 8], ebx
mov dword [esp], eax
call fcn.004459b0
cmp eax, ebx
je 0x44e0db
mov ecx, ebx
jmp 0x44d9cd
cmp eax, ecx
lea ebp, [ebx + 1]
mov byte [ebx], dl
je 0x44e0db
add ecx, 1
movzx edx, byte [ecx - 1]
cmp dl, 0x22
je 0x44d9ea
cmp dl, 0x5c
je 0x44d9ea
cmp dl, 0xa
mov ebx, ebp
jne 0x44d9c0
mov edx, 0x6e
lea ebx, [ebp + 1]
mov byte [ebp], 0x5c
jmp 0x44d9c0
mov edi, ebp
mov ebp, dword [esp + 0x88]
mov eax, dword [esp + 0x50]
test eax, eax
jne 0x44e07c
lea eax, [edi + 0x4c]
mov ebx, dword [esi + 8]
sub ebx, dword [esi + 4]
call fcn.0044bbe0
mov ecx, dword [esp + 0x38]
mov dword [eax + 0x18], 0
and ebx, 0xfffffffc
mov dword [eax + 0x10], esi
mov dword [eax + 0x14], ecx
mov ecx, dword [esp + 0x84]
lea edx, [ecx + ebx]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
mov eax, dword [esi + 8]
sub eax, dword [esi + 4]
shr eax, 2
add dword [0x4de004], eax
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x40]
xor ebx, ebx
mov eax, dword [eax + 4]
test ecx, ecx
mov dword [esp + 0x24], eax
lea esi, [eax + 4]
je 0x44dabe
mov dword [esp + 0x24], edi
mov edi, esi
mov esi, dword [esp + 0x40]
nop
lea esi, [esi]
mov edx, dword [edi]
test edx, edx
je 0x44da84
mov dword [esp], edx
call sub.msvcrt.dll_free
mov dword [edi], 0
mov edx, dword [edi + 0x10]
test edx, edx
je 0x44da9a
mov dword [esp], edx
call sub.msvcrt.dll_free
mov dword [edi + 0x10], 0
mov edx, dword [edi + 0x14]
test edx, edx
je 0x44dab0
mov dword [esp], edx
call sub.msvcrt.dll_free
mov dword [edi + 0x14], 0
add ebx, 1
add edi, 0x1c
cmp esi, ebx
jne 0x44da70
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x68]
mov dword [esp], eax
call fcn.00446460
mov eax, dword [esp + 0x38]
movzx eax, word [eax + 0x14]
mov word [esp + 0x24], ax
shr ax, 6
jmp 0x44ce6d
test al, 8
jne 0x44dc96
mov eax, dword [esp + 0x3c]
cmp dword [eax + 4], esi
jae 0x44dafb
test byte [esi - 0xa], 8
jne 0x44dc96
mov eax, dword [edi + 4]
test eax, eax
je 0x44e7b2
mov eax, dword [edi + 0x10]
lea ebx, [ebx + eax + 1]
jmp 0x44d855
mov ebp, dword [esp + 0x48]
mov edi, dword [esp + 0x28]
lea esi, [ebx*4]
movzx eax, byte [edi + 0x275]
test eax, eax
mov dword [esp + 0x50], eax
jne 0x44de3d
mov dword [esp + 4], esi
mov dword [esp], edi
call fcn.00446250
mov esi, eax
mov eax, dword [eax + 4]
mov dword [esp + 0x34], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x84], eax
mov ebx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x60]
movzx eax, word [ebx + 0x10]
imul eax, eax, 0x1c
mov eax, dword [ecx + eax - 0x10]
mov dword [esp + 0x80], eax
movzx eax, byte [ebx + 0x14]
mov ebx, dword [ebx + 4]
mov byte [esp + 0x28], al
and eax, 2
cmp dword [esp + 0x24], ebx
mov byte [esp + 0x2c], al
jbe 0x44d9fc
lea eax, [edi + 0x160]
mov dword [esp + 0x88], ebp
mov dword [esp + 0x78], 0
mov dword [esp + 0x28], 0
mov byte [esp + 0x77], 0
mov ebp, edi
mov dword [esp + 0x30], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x8c], eax
jmp 0x44dc20
cmp al, 0x50
je 0x44dca2
movzx eax, byte [ebp + 0x275]
mov edx, dword [esp + 0x30]
cmp eax, 1
jle 0x44dee2
mov eax, dword [ebx]
mov edi, dword [esp + 0x48]
mov ecx, ebx
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x34]
mov dword [esp + 4], eax
mov dword [esp], eax
mov eax, esi
mov dword [esp + 8], edi
call fcn.0044bd30
add dword [esp + 0x30], 1
add ebx, 0x10
cmp dword [esp + 0x24], ebx
jbe 0x44d9f3
cmp byte [esp + 0x2c], 0
movzx eax, byte [ebx + 4]
je 0x44dbd0
cmp al, 0x35
je 0x44dc75
cmp dword [esp + 0x28], 1
je 0x44dea5
jle 0x44dbd0
cmp dword [esp + 0x28], 2
je 0x44e0c6
cmp al, 0x26
je 0x44e0ad
cmp al, 0x14
je 0x44e1d5
cmp al, 0x15
je 0x44e344
mov ecx, dword [esp + 0x80]
mov byte [esp + 0x77], 0
test ecx, ecx
jne 0x44dbd0
jmp 0x44dc13
mov edi, dword [ebp + 0x2c4]
cmp dword [ebx + 8], edi
je 0x44e360
cmp dword [esp + 0x28], 1
je 0x44deb5
jg 0x44dc3c
jmp 0x44dbd8
mov eax, dword [edi + 0xc]
lea ebx, [ebx + eax + 1]
jmp 0x44d855
mov eax, dword [ebx + 8]
movzx ecx, word [ebx + 6]
mov edi, dword [esp + 0x60]
imul edx, eax, 0x1c
mov dword [esp + 0x5c], eax
test cl, 4
lea edx, [edi + edx - 0x1c]
je 0x44e021
lea eax, [edx + 8]
mov dword [esp + 0x70], eax
movzx eax, byte [ebp + 0x275]
test al, al
setne byte [esp + 0x54]
jne 0x44e495
mov dword [esp + 0x4c], 0
mov dword [esp + 0x6c], 1
mov edi, 1
cmp byte [ebp + 8], 0
mov dword [esp + 0x7c], 0
je 0x44dd05
cmp byte [ebp + 9], 0
je 0x44dd76
mov eax, dword [esp + 0x3c]
cmp ebx, dword [eax + 4]
je 0x44dd76
test byte [ebx - 0xa], 8
jne 0x44dd76
mov ecx, dword [esp + 0x58]
test ecx, ecx
je 0x44dd2b
mov eax, dword [esi + 8]
cmp dword [esi + 4], eax
je 0x44dd2b
sub eax, 4
cmp ecx, eax
je 0x44dd76
mov dword [esp], ebp
call fcn.004457e0
xor edx, edx
mov byte [eax + 4], 0x53
mov dword [eax + 8], ebx
mov word [eax + 6], dx
movzx ecx, byte [ebp + 0x275]
mov edx, dword [esp + 0x30]
cmp ecx, 1
jle 0x44e545
mov ecx, dword [eax]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x48]
mov dword [esp + 4], ecx
mov dword [esp], ecx
mov ecx, eax
mov dword [esp + 8], edx
mov edx, dword [esp + 0x34]
mov eax, esi
call fcn.0044bd30
test edi, edi
je 0x44df39
mov eax, edi
mov edi, dword [esp + 0x30]
mov dword [esp + 0x5c], ebx
mov ebx, dword [esp + 0x6c]
mov dword [esp + 0x6c], esi
mov esi, dword [esp + 0x70]
mov dword [esp + 0x70], ebp
add eax, edi
mov dword [esp + 0x64], eax
jmp 0x44dde4
mov ecx, dword [esp + 0x4c]
mov edx, dword [ecx]
xor ecx, ecx
test esi, esi
je 0x44ddae
mov ecx, dword [esi]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x48]
mov dword [esp], edx
mov edx, dword [esp + 0x34]
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
mov eax, dword [esp + 0x6c]
call fcn.0044bd30
test ebx, ebx
je 0x44de13
cmp ebx, 2
je 0x44de13
add edi, 1
cmp edi, dword [esp + 0x64]
je 0x44def3
mov ecx, dword [esp + 0x70]
cmp dword [esp + 0x50], 1
mov eax, dword [esp + 0x30]
movzx edx, byte [ecx + 0x275]
cmovg eax, edi
cmp edx, 1
jle 0x44de2d
cmp byte [esp + 0x54], 0
mov ecx, dword [esp + 0x5c]
mov ebp, dword [ecx]
jne 0x44dda0
mov ecx, dword [esi]
mov edx, dword [ecx]
jmp 0x44ddae
mov edx, dword [esp + 0x4c]
add esi, 4
mov eax, edx
add eax, 4
cmp byte [esp + 0x54], 0
cmove eax, edx
mov dword [esp + 0x4c], eax
jmp 0x44ddd7
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x5c]
sub eax, dword [ecx + 4]
sar eax, 4
jmp 0x44de00
lea eax, [esi*4]
mov dword [esp], eax
call fcn.0046ea40
mov dword [esp + 4], esi
mov dword [esp], edi
mov dword [esp + 0x28], eax
call fcn.00446250
cmp dword [esp + 0x50], 1
mov ecx, dword [eax + 4]
mov esi, eax
cmove ebx, dword [esp + 0x2c]
mov dword [esp + 0x84], ecx
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0xc0]
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x38]
mov dword [esp + 4], ebx
mov eax, dword [edi + 0x1c]
mov dword [esp], eax
call fcn.00449890
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x34], eax
jmp 0x44db5c
cmp al, 0x14
mov dword [esp + 0x28], 2
je 0x44dc13
mov eax, dword [esp + 0x78]
mov dword [esp + 0xc], str.__VA_OPT___must_be_followed_by_an_open_parenthesis
mov dword [esp + 4], 3
mov dword [esp], ebp
mov dword [esp + 8], eax
call fcn.0043a8c0
mov dword [esp + 0x28], 1
jmp 0x44dc13
mov eax, dword [esp + 0x3c]
mov edx, ebx
sub edx, dword [eax + 4]
sar edx, 4
jmp 0x44dbec
mov ebx, dword [esp + 0x5c]
mov esi, dword [esp + 0x6c]
mov ebp, dword [esp + 0x70]
test byte [ebx + 6], 8
je 0x44e27f
mov eax, dword [esi + 8]
cmp dword [esi + 4], eax
je 0x44df2c
sub eax, 4
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x7c]
test eax, eax
je 0x44df2c
lea ecx, [ebx + 6]
mov edx, eax
mov eax, ebp
call fcn.0044bcd0
mov eax, dword [esp + 0x64]
mov dword [esp + 0x30], eax
jmp 0x44dc13
cmp byte [ebp + 0x272], 0
je 0x44e218
cmp byte [ebp + 0x270], 0
jne 0x44e218
mov eax, dword [esp + 0x3c]
test byte [eax + 0x14], 4
jne 0x44e218
mov eax, dword [ebp]
test eax, eax
je 0x44df72
cmp byte [eax + 0x3d], 0
jne 0x44e218
cmp byte [ebp + 0x250], 0
jne 0x44e684
cmp byte [ebp + 0x292], 0
je 0x44dfb6
mov eax, dword [esp + 0x38]
mov ecx, dword [ebx + 8]
mov edx, dword [eax]
setg al
mov dword [esp + 0x10], ecx
movzx eax, al
mov dword [esp + 8], str.invoking_macro__s_argument__d:_empty_macro_arguments_are_undefined_in_ISO_C90
mov dword [esp], ebp
add eax, 0x15
mov dword [esp + 0xc], edx
mov dword [esp + 4], eax
call fcn.0043a700
cmp byte [ebp + 8], 0
mov eax, dword [esp + 0x30]
mov dword [esp + 0x64], eax
jne 0x44df18
test byte [ebx + 6], 8
jne 0x44df18
mov edi, dword [esp + 0x58]
test edi, edi
je 0x44dfed
mov eax, dword [esi + 8]
cmp dword [esi + 4], eax
je 0x44dfed
sub eax, 4
cmp edi, eax
je 0x44df18
mov eax, dword [ebp + 0x160]
mov ecx, dword [esp + 0x8c]
mov edx, dword [esp + 0x34]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov dword [esp], eax
mov eax, esi
call fcn.0044bd30
jmp 0x44df18
and ecx, 8
je 0x44e2a6
mov eax, dword [edx]
mov edi, dword [edx + 0xc]
mov dword [esp + 0x4c], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], eax
movzx eax, byte [ebp + 0x275]
test al, al
setne byte [esp + 0x54]
je 0x44dcf1
mov eax, dword [esp + 0x70]
test eax, eax
je 0x44ea94
mov eax, dword [edx + 0x14]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x6c], 0
mov byte [esp + 0x54], 1
jmp 0x44dcf1
mov eax, dword [esi + 8]
sub eax, dword [esi + 4]
mov ecx, esi
mov edx, dword [esp + 0x38]
shr eax, 2
mov dword [esp + 8], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x34]
mov dword [esp], eax
mov eax, edi
call fcn.0044bc50
jmp 0x44da3a
mov byte [esp + 0x77], 1
mov eax, dword [esp + 0x80]
test eax, eax
jne 0x44dbd8
jmp 0x44dc13
cmp al, 0x26
je 0x44e7a5
mov dword [esp + 0x28], 3
jmp 0x44dc4f
mov eax, dword [esp + 0x4c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call fcn.00446220
cmp byte [esi + 4], 0x3d
je 0x44e28e
xor ebx, ebx
mov dword [esp + 0x54], 0
add dword [esp + 0x30], 1
mov eax, dword [esp + 0x30]
cmp dword [edi + 0xc], eax
ja 0x44d8f4
test byte [esp + 0x54], 1
mov esi, dword [esp + 0x5c]
je 0x44e13f
mov eax, dword [esp + 0x28]
mov dword [esp + 8], str.invalid_string_literal__ignoring_final_
sub ebp, 1
mov dword [esp + 4], 0
mov dword [esp], eax
call fcn.0043a680
mov eax, dword [esp + 0x28]
mov byte [ebp], 0x22
lea ecx, [ebp + 1]
lea edx, [ebp + 2]
mov ebx, ecx
mov eax, dword [eax + 0x28]
sub ebx, dword [eax + 8]
mov dword [eax + 8], edx
mov eax, dword [esp + 0x28]
sub ecx, ebx
mov dword [esp], eax
mov dword [esp + 0x30], ecx
call fcn.004457e0
mov ecx, dword [esp + 0x30]
xor edx, edx
mov byte [ebp + 1], 0
mov dword [eax + 8], ebx
mov byte [eax + 4], 0x3e
mov word [eax + 6], dx
mov ebx, dword [esp + 0x34]
mov dword [eax + 0xc], ecx
mov dword [edi + 8], eax
jmp 0x44d855
mov eax, dword [esp + 0x28]
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 1
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.004459b0
mov ebp, eax
jmp 0x44e0ef
test ebx, ebx
je 0x44e6fe
test byte [ebx + 6], 1
jne 0x44e103
mov eax, dword [esi + 8]
test eax, eax
jne 0x44e103
mov ebx, eax
jmp 0x44e103
add dword [esp + 0x28], 1
mov byte [esp + 0x77], 0
jmp 0x44e0b2
mov eax, dword [esp + 0x50]
sub ebp, dword [edx + 8]
mov dword [esp + 8], ecx
mov dword [esp + 0x64], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call fcn.00446400
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x64]
mov eax, dword [eax + 0x28]
mov eax, dword [eax + 8]
add ebp, eax
jmp 0x44d957
cmp byte [ebp + 0x292], 0
jle 0x44dfb6
cmp byte [ebp + 0x250], 0
jne 0x44dfb6
mov eax, dword [esp + 0x3c]
test byte [eax + 0x14], 4
jne 0x44dfb6
mov eax, dword [ebp]
test eax, eax
je 0x44e251
cmp byte [eax + 0x3d], 0
jne 0x44dfb6
mov eax, dword [ebx + 8]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x38]
mov eax, dword [eax]
mov dword [esp + 8], str.invoking_macro__s_argument__d:_empty_macro_arguments_are_undefined_in_ISO_C90
mov dword [esp + 4], 0x16
mov dword [esp], ebp
mov dword [esp + 0xc], eax
call fcn.0043a6c0
jmp 0x44dfb6
cmp byte [ebp + 8], 0
je 0x44dfd2
jmp 0x44df18
mov eax, dword [esi + 0xc]
cmp byte [eax], 0x5c
jne 0x44e0f9
add dword [esp + 0x54], 1
xor ebx, ebx
jmp 0x44e103
mov eax, dword [esp + 0x3c]
cmp ebx, dword [eax + 4]
je 0x44e3f7
test byte [ebx - 0xa], 8
je 0x44e3f7
movzx ecx, byte [ebp + 0x275]
mov eax, dword [edx]
mov edi, dword [edx + 0xc]
mov dword [esp + 0x4c], 0
mov dword [esp + 0x70], eax
test cl, cl
setne byte [esp + 0x54]
jne 0x44e910
mov edx, dword [esi + 8]
mov ecx, dword [esi + 4]
mov eax, edx
mov dword [esp + 0x64], ecx
sub eax, ecx
cmp eax, 3
jbe 0x44e515
cmp dword [esp + 0x64], edx
je 0x44e708
mov ecx, dword [edx - 4]
lea eax, [edx - 4]
mov dword [esp + 0x7c], eax
cmp byte [ecx + 4], 0x13
je 0x44e8c4
test edi, edi
jne 0x44e515
mov ecx, dword [esp + 0x58]
cmp dword [esp + 0x7c], ecx
je 0x44e515
cmp byte [ebp + 8], 0
mov dword [esp + 0x6c], 0
je 0x44dd76
jmp 0x44dcff
sub dword [esp + 0x28], 1
mov eax, dword [esp + 0x28]
cmp eax, 2
je 0x44e556
mov byte [esp + 0x77], 0
jmp 0x44e0b2
mov edi, dword [esp + 0x28]
test edi, edi
jg 0x44e522
mov eax, dword [ebx]
add dword [esp + 0x28], 1
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x3c]
cmp ebx, dword [eax + 4]
je 0x44e386
test byte [ebx - 0xa], 8
je 0x44e3a0
mov eax, dword [esi + 8]
cmp dword [esi + 4], eax
lea edx, [eax - 4]
mov eax, 0
cmovne eax, edx
mov dword [esp + 0x58], eax
jmp 0x44dc13
mov dword [esp], ebp
call fcn.004457e0
xor edx, edx
mov byte [eax + 4], 0x53
mov dword [eax + 8], ebx
mov word [eax + 6], dx
movzx ecx, byte [ebp + 0x275]
mov edx, dword [esp + 0x30]
cmp ecx, 1
jle 0x44e3e9
mov ecx, dword [eax]
mov edi, dword [esp + 0x48]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x34]
mov dword [esp + 4], ecx
mov dword [esp], ecx
mov ecx, eax
mov dword [esp + 8], edi
mov eax, esi
call fcn.0044bd30
jmp 0x44e386
mov edi, dword [esp + 0x3c]
mov edx, ebx
sub edx, dword [edi + 4]
sar edx, 4
jmp 0x44e3c5
movzx ecx, byte [ebp + 0x275]
mov eax, dword [edx + 4]
mov edi, dword [edx + 0x10]
mov dword [esp + 0x4c], 0
mov dword [esp + 0x70], eax
test cl, cl
setne byte [esp + 0x54]
jne 0x44e70f
mov edx, dword [esp + 0x58]
test edx, edx
je 0x44e47f
mov eax, dword [esi + 8]
cmp dword [esi + 4], eax
je 0x44e47f
sub eax, 4
mov dword [esp + 0x6c], 2
cmp edx, eax
jne 0x44dcf1
test edi, edi
je 0x44dcf1
mov eax, dword [esp + 0x70]
mov byte [esp + 0x5c], cl
test eax, eax
je 0x44e48c
mov edx, dword [eax]
cmp byte [edx + 4], 0x53
jne 0x44e47b
mov edx, dword [esp + 0x4c]
add eax, 4
add edx, 4
cmp byte [esp + 0x5c], 0
mov ecx, edx
cmove ecx, dword [esp + 0x4c]
sub edi, 1
mov dword [esp + 0x4c], ecx
jne 0x44e450
mov dword [esp + 0x70], eax
mov dword [esp + 0x6c], 2
jmp 0x44dcf1
movzx eax, byte [4]
ud2
mov eax, dword [esp + 0x70]
test eax, eax
je 0x44e8b7
mov eax, dword [edx + 8]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x6c], 1
mov byte [esp + 0x54], 1
mov edi, 1
jmp 0x44dcf1
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x44eac3
mov eax, dword [esp + 0x3c]
xor ebx, ebx
mov edx, dword [eax + 4]
cmp byte [edx + 4], 0x26
lea eax, [edx + 0x10]
je 0x44eaae
add ebx, 1
cmp ebx, ecx
je 0x44eac3
mov esi, eax
add eax, 0x10
cmp byte [esi + 4], 0x26
jne 0x44e4e0
mov dword [esp + 0x24], esi
jmp 0x44d834
mov ebx, 0x1c
mov eax, 0xe4
jmp 0x44d37e
xor ebx, ebx
jmp 0x44d202
mov dword [esp + 0x7c], 0
jmp 0x44e32d
mov dword [esp + 0xc], str.__VA_OPT___may_not_appear_in_a___VA_OPT__
mov eax, dword [ebx]
mov dword [esp + 4], 3
mov dword [esp], ebp
mov dword [esp + 8], eax
call fcn.0043a8c0
jmp 0x44dc13
mov ecx, dword [esp + 0x3c]
mov edx, ebx
sub edx, dword [ecx + 4]
sar edx, 4
jmp 0x44dd54
cmp byte [esp + 0x77], 0
jne 0x44ea64
mov ecx, dword [esi + 4]
mov edx, dword [esi + 8]
cmp ecx, edx
je 0x44e607
sub edx, 4
xor edi, edi
mov dword [esp + 0x28], ebx
mov eax, dword [esp + 0x58]
jmp 0x44e595
mov ebx, dword [esi + 8]
cmp ecx, ebx
jae 0x44e58d
sub ebx, 4
mov dword [esi + 8], ebx
lea edx, [ebx - 4]
cmp ebx, ecx
cmove edx, edi
test edx, edx
je 0x44e5d3
cmp edx, eax
je 0x44e5d3
mov ebx, dword [edx]
cmp byte [ebx + 4], 0x53
je 0x44e580
mov ebx, dword [esp + 0x28]
test byte [ebx + 6], 8
je 0x44e621
lea ecx, [ebx + 6]
mov eax, ebp
call fcn.0044bcd0
mov dword [esp + 0x28], 0
mov byte [esp + 0x77], 0
mov dword [esp + 0x58], 0
jmp 0x44dc13
mov ebx, dword [esp + 0x28]
test byte [ebx + 6], 8
je 0x44e621
test edx, edx
je 0x44e66a
mov eax, dword [edx]
cmp byte [eax + 4], 0x53
jne 0x44e5af
mov dword [esp + 0x28], 0
mov byte [esp + 0x77], 0
mov dword [esp + 0x58], 0
jmp 0x44dc13
test byte [ebx + 6], 8
mov dword [esp + 0x28], 0
mov dword [esp + 0x58], 0
jne 0x44dc13
mov eax, dword [ebp + 0x160]
mov ecx, dword [esp + 0x8c]
mov edx, dword [esp + 0x34]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov dword [esp], eax
mov eax, esi
call fcn.0044bd30
mov dword [esp + 0x28], 0
mov byte [esp + 0x77], 0
mov dword [esp + 0x58], 0
jmp 0x44dc13
mov dword [esp + 0x58], 0
mov dword [esp + 0x28], 0
mov byte [esp + 0x77], 0
jmp 0x44dc13
mov eax, dword [ebx + 8]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x38]
mov eax, dword [eax]
mov dword [esp + 8], str.invoking_macro__s_argument__d:_empty_macro_arguments_are_undefined_in_ISO_C98
mov dword [esp + 4], 0x15
mov dword [esp], ebp
mov dword [esp + 0xc], eax
call fcn.0043a700
jmp 0x44dfb6
test si, si
jne 0x44d7a5
mov eax, dword [esp + 0x60]
xor ebx, ebx
mov ecx, dword [eax + 0xc]
test ecx, ecx
setne bl
jmp 0x44d7a5
mov esi, dword [esp + 0x60]
mov edx, dword [esi + 0xc]
test edx, edx
jne 0x44d7e8
cmp byte [edi + 0x271], 0
jne 0x44d7e8
imul eax, eax, 0x1c
mov esi, dword [esp + 0x60]
mov dword [esi + eax - 0x1c], 0
jmp 0x44d7e8
mov eax, dword [esi + 8]
mov ebx, eax
jmp 0x44e103
mov eax, dword [pe_dos_header]
ud2
test eax, eax
je 0x44eaa1
mov eax, dword [edx + 0x18]
mov dword [esp + 0x4c], eax
jmp 0x44e41d
mov eax, dword [edi + 0x4c]
mov ebx, dword [eax + 4]
test ebx, ebx
je 0x44eaec
mov dword [esp + 4], 1
mov dword [esp], edi
call fcn.0044cb40
mov eax, dword [esp + 0x38]
mov eax, dword [eax]
mov dword [esp + 8], 0x4d3d44
mov dword [esp + 4], 3
mov dword [esp], edi
mov dword [esp + 0xc], eax
call fcn.0043a680
mov eax, dword [esp + 0x68]
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.00446220
sub dword [edi + 0x10c], 1
sub byte [edi + 0x10], 1
cmp byte [edi + 0x262], 0
mov byte [edi + 0x11], 0
je 0x44d125
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x18]
test byte [eax + 0x14], 4
jne 0x44d125
jmp 0x44d103
mov dword [esp + 0xc], str._cannot_appear_at_either_end_of___VA_OPT__
jmp 0x44e52a
mov eax, dword [edi + 0xc]
test eax, eax
je 0x44db06
mov ecx, dword [esp + 0x28]
cmp byte [ecx + 0x262], 0
movzx ebp, byte [ecx + 0x275]
mov byte [ecx + 0x262], 0
mov dword [esp], 0x400
setne byte [esp + 0x34]
call fcn.0046ea40
mov dword [edi + 4], eax
mov eax, dword [esp + 0x28]
cmp byte [eax + 0x275], 0
je 0x44e806
mov dword [esp], 0x400
call fcn.0046ea40
mov dword [edi + 0x18], eax
mov eax, ebp
test al, al
mov eax, dword [edi + 0xc]
je 0x44e9eb
add eax, 1
xor ecx, ecx
xor edx, edx
mov dword [esp + 8], eax
mov eax, dword [edi]
mov dword [esp + 4], eax
mov eax, dword [edi + 0x14]
mov dword [esp], eax
mov eax, dword [esp + 0x28]
call fcn.0044bc50
mov eax, dword [edi + 0x10]
mov dword [esp + 0x30], 0x100
mov dword [esp + 0x4c], ebx
jmp 0x44e858
mov edx, dword [edi + 4]
test edx, edx
je 0x44ea27
mov dword [edx + eax*4], ebx
add eax, 1
mov dword [edi + 0x10], eax
lea ebp, [eax + 1]
cmp ebp, dword [esp + 0x30]
ja 0x44e9a2
mov eax, dword [esp + 0x28]
lea edx, [esp + 0x9c]
call fcn.0044eb00
cmp byte [eax + 4], 0x16
mov ebx, eax
je 0x44e982
mov ecx, dword [esp + 0x28]
mov eax, dword [edi + 0x10]
mov ebp, dword [esp + 0x9c]
cmp byte [ecx + 0x275], 0
je 0x44e844
mov edx, dword [edi + 4]
test edx, edx
je 0x44ea27
mov ecx, dword [edi + 0x18]
mov dword [edx + eax*4], ebx
lea ecx, [ecx + eax*4]
test ecx, ecx
je 0x44e852
mov dword [ecx], ebp
mov eax, dword [edi + 0x10]
jmp 0x44e852
mov dword [esp + 0x4c], 0
jmp 0x44e4a8
mov eax, dword [esp + 0x3c]
test byte [eax + 0x14], 2
je 0x44e317
movzx ecx, word [eax + 0x10]
cmp dword [esp + 0x5c], ecx
jne 0x44e317
mov eax, dword [esp + 0x70]
test eax, eax
je 0x44e8f2
mov ecx, dword [eax]
test ecx, ecx
jne 0x44e32d
cmp dword [esp + 0x64], edx
jae 0x44e515
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x6c], 0
mov dword [esi + 8], eax
jmp 0x44dcf1
test eax, eax
je 0x44eadf
mov eax, dword [edx + 0x14]
mov dword [esp + 0x4c], eax
jmp 0x44e2e2
cmp byte [edi + 0x275], 0
je 0x44d276
mov dword [esp], 0
xor ebx, ebx
call fcn.0046ea40
mov dword [esp + 4], 0
mov dword [esp], edi
mov dword [esp + 0x28], eax
call fcn.00446250
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 0xc], 0
mov dword [esp + 8], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 4], eax
mov eax, dword [edi + 0x1c]
mov dword [esp], eax
call fcn.00449890
jmp 0x44d202
mov ebp, dword [esp + 0x28]
mov ebx, dword [esp + 0x4c]
mov dword [esp], ebp
call fcn.0044c9c0
movzx eax, byte [esp + 0x34]
mov byte [ebp + 0x262], al
jmp 0x44db06
lea eax, [ebp + ebp]
shl ebp, 3
mov dword [esp + 4], ebp
mov dword [esp + 0x30], eax
mov eax, dword [edi + 4]
mov dword [esp], eax
call fcn.0046eac0
mov dword [edi + 4], eax
mov eax, dword [esp + 0x28]
cmp byte [eax + 0x275], 0
je 0x44e865
mov eax, dword [edi + 0x18]
test eax, eax
je 0x44ea2f
mov dword [esp + 4], ebp
mov dword [esp], eax
call fcn.0046eac0
mov dword [edi + 0x18], eax
jmp 0x44e865
lea ebp, [eax + 1]
mov eax, dword [esp + 0x28]
mov edx, dword [edi]
add eax, 0x4c
mov dword [esp + 0x30], edx
call fcn.0044bbe0
mov edx, dword [esp + 0x30]
mov dword [eax + 0x18], 0
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0
mov dword [eax + 8], edx
lea edx, [edx + ebp*4]
mov dword [eax + 0xc], edx
jmp 0x44e833
mov dword [0], ebx
ud2
mov dword [esp], ebp
call fcn.0046ea40
mov dword [edi + 0x18], eax
jmp 0x44e865
movzx eax, byte [esi + 4]
mov dword [esp], eax
call fcn.0043c8b0
test al, al
mov byte [esp + 0x4c], al
jne 0x44d929
mov dword [esp], esi
call fcn.00445910
jmp 0x44d93d
mov dword [esp + 0xc], str._cannot_appear_at_either_end_of___VA_OPT__
mov eax, dword [ebx]
mov dword [esp + 4], 3
mov dword [esp], ebp
mov dword [esp + 8], eax
call fcn.0043a8c0
mov dword [esp + 0x28], 0
mov byte [esp + 0x77], 0
jmp 0x44dc13
mov eax, dword [esp + 0x70]
mov dword [esp + 0x4c], eax
jmp 0x44e06a
mov eax, dword [esp + 0x70]
mov dword [esp + 0x4c], eax
jmp 0x44e41d
mov dword [esp + 0x24], edx
xor esi, esi
mov dword [esp + 0x2c], 0
xor ebx, ebx
jmp 0x44db21
mov dword [esp + 8], str.macro_real_token_count
mov dword [esp + 4], 0x4dc
mov dword [esp], str._builds_idf_crosstool_NG_.build_HOST_i686_w64_mingw32_xtensa_esp32s3_elf_src_gcc_libcpp_macro.c
call fcn.0048c200
mov eax, dword [esp + 0x70]
mov dword [esp + 0x4c], eax
jmp 0x44e2e2
cmp byte [edi + 8], 0
je 0x44e741
jmp 0x44e731