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

Disassembly:
push ebp
mov ebp, eax
push edi
push esi
push ebx
sub esp, 0x8c
mov dword [esp + 0x34], edx
mov byte [ebp + 0xec], 0
mov byte [ebp + 0xb], 0
mov byte [ebp + 0x6c], 1
movzx edx, word [edx + 0x14]
mov dword [esp + 0x40], ecx
mov eax, edx
shr ax, 6
mov ecx, eax
and cx, 0x84
cmp cx, 4
je 0x439f03
test al, 4
jne 0x439eb8
mov esi, dword [esp + 0x34]
xor edi, edi
mov esi, dword [esi + 0x18]
test byte [esi + 0x14], 1
mov dword [esp + 0x38], esi
jne 0x439f41
mov esi, dword [esp + 0x34]
mov ecx, eax
or ecx, 0x20
shl ecx, 6
movzx edx, word [esi + 0x14]
and edx, 0x3f
or edx, ecx
test al, 0x80
mov word [esi + 0x14], dx
jne 0x439df2
or al, 0xa0
and edx, 0x3f
shl eax, 6
or edx, eax
mov word [esi + 0x14], dx
mov eax, dword [ebp + 0x214]
test eax, eax
je 0x439df2
mov edx, dword [ebp + 0x20]
mov dword [esp + 8], esi
mov dword [esp], ebp
mov dword [esp + 4], edx
call eax
mov eax, dword [ebp + 0x220]
test eax, eax
je 0x439e14
mov esi, dword [esp + 0x34]
mov dword [esp], ebp
mov dword [esp + 8], esi
mov esi, dword [esp + 0xa0]
mov dword [esp + 4], esi
call eax
mov esi, dword [esp + 0x38]
movzx eax, byte [esi + 0x14]
or eax, 8
cmp word [esi + 0x10], 0
mov byte [esi + 0x14], al
je 0x43a027
test edi, edi
je 0x43a145
cmp byte [ebp + 8], 0
je 0x43a10b
lea eax, [ebp + 0x4c]
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], ebp
jmp 0x439e52
mov edi, esi
mov eax, dword [esp + 0x24]
mov ebp, dword [edi + 4]
mov esi, dword [edi]
mov ebx, dword [edi + 8]
mov dword [edi], 0
call fcn.00438c60
sub ebx, ebp
sar ebx, 2
lea edx, [ebp + ebx*4]
mov dword [eax + 0x18], 0
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], edi
mov dword [eax + 8], ebp
mov dword [eax + 0xc], edx
mov eax, dword [esp + 0x20]
cmp byte [eax + 0x26d], 0
jne 0x439e9c
add dword [0x4d928c], ebx
test esi, esi
jne 0x439e50
mov ebp, dword [esp + 0x20]
mov eax, 2
mov byte [ebp + 0x6c], 0
add esp, 0x8c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [ebp + 0x68]
mov byte [ebp + 0x6c], 0
test byte [eax + 0x15], 1
je 0x439ee8
mov eax, dword [ebp + 0x64]
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0x34]
mov dword [esp], eax
mov eax, ebp
call fcn.00439750
add esp, 0x8c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [eax + 0x18]
test byte [eax + 0x14], 1
je 0x439ec5
mov eax, dword [ebp + 0xf0]
mov eax, dword [eax - 0x10]
mov dword [esp + 0xa0], eax
jmp 0x439ec8
or al, 0x80
and edx, 0x3f
shl eax, 6
or edx, eax
mov eax, dword [esp + 0x34]
mov word [eax + 0x14], dx
mov eax, dword [ebp + 0x228]
test eax, eax
je 0x439f77
mov edi, dword [esp + 0x34]
mov dword [esp], ebp
mov dword [esp + 4], edi
call eax
test al, al
je 0x439f77
mov eax, dword [esp + 0x34]
movzx eax, word [eax + 0x14]
shr ax, 6
jmp 0x439d8e
add byte [ebp + 0x10], 1
xor ebx, ebx
add dword [ebp + 0x10c], 1
mov byte [ebp + 0x11], 1
mov dword [esp], ebp
call fcn.0043b980
movzx edx, byte [eax + 4]
cmp dl, 0x53
jne 0x439fa6
test ebx, ebx
je 0x439fa2
test byte [ebx + 6], 1
jne 0x439f52
mov edx, dword [eax + 8]
test edx, edx
cmove ebx, eax
jmp 0x439f52
mov eax, dword [ebp + 0x214]
test eax, eax
je 0x439f30
mov edx, dword [ebp + 0x20]
mov esi, dword [esp + 0x34]
mov dword [esp], ebp
mov dword [esp + 4], edx
mov dword [esp + 8], esi
call eax
movzx eax, word [esi + 0x14]
shr ax, 6
jmp 0x439d8e
mov ebx, eax
jmp 0x439f52
cmp dl, 0x14
je 0x43a1a9
cmp dl, 0x16
jne 0x439fbe
lea edx, [ebp + 0x170]
cmp eax, edx
jne 0x439fee
mov dword [esp + 4], 1
mov dword [esp], ebp
call fcn.00439ae0
test ebx, ebx
je 0x439fee
mov dword [esp + 0xc], 1
mov dword [esp + 8], ebx
mov dword [esp + 4], 0
mov dword [esp], ebp
call fcn.004396e0
sub dword [ebp + 0x10c], 1
xor edi, edi
sub byte [ebp + 0x10], 1
mov byte [ebp + 0x11], 0
cmp byte [ebp + 0x25a], 0
jne 0x43a171
test edi, edi
je 0x43a01c
mov dword [esp + 4], edi
mov dword [esp], ebp
call fcn.0043f260
mov byte [ebp + 0x6c], 0
xor eax, eax
jmp 0x439edd
test al, 0x20
jne 0x43b2d8
mov eax, dword [esp + 0x38]
mov esi, dword [eax + 0xc]
mov ebx, dword [eax + 4]
mov dword [esp + 0x24], esi
cmp byte [ebp + 0x26d], 0
je 0x43a153
mov esi, dword [esp + 0x24]
lea ecx, [esp + 0x7c]
mov eax, ebp
mov dword [esp + 0x7c], 0
mov edx, esi
call fcn.00438c20
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0x24], esi
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x34]
mov dword [esp + 0xc], esi
xor esi, esi
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0042be30
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x43a0d7
mov dword [esp + 0x2c], ebp
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x28], edi
mov edi, eax
mov eax, dword [ebx]
mov ecx, ebx
add ebx, 0x10
mov edx, dword [esp + 0x7c]
mov dword [esp + 0xc], esi
add esi, 1
mov dword [esp + 8], edi
mov dword [esp + 4], eax
mov dword [esp], eax
mov eax, dword [esp + 0x20]
call fcn.00438d80
cmp esi, ebp
jne 0x43a0a5
mov edi, dword [esp + 0x28]
mov ebp, dword [esp + 0x2c]
mov ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0x34]
mov eax, dword [ecx + 4]
mov dword [esp + 8], esi
mov dword [esp + 4], eax
mov eax, dword [esp + 0x7c]
mov dword [esp], eax
mov eax, ebp
call fcn.00438d00
mov eax, dword [esp + 0x24]
add dword [0x4d928c], eax
jmp 0x439e2d
mov dword [esp], ebp
call fcn.0043e870
mov esi, dword [esp + 0x40]
xor edx, edx
mov byte [eax + 4], 0x53
mov dword [eax + 8], esi
mov word [eax + 6], dx
mov dword [esp + 0xc], 1
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov dword [esp], ebp
call fcn.004396e0
jmp 0x439e3f
mov byte [ebp + 0x6c], 0
mov eax, 1
jmp 0x439edd
mov eax, dword [esp + 0x24]
mov dword [esp + 8], ebx
mov dword [esp], ebp
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 4], eax
call fcn.004396e0
jmp 0x43a0fc
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 0x18]
test byte [eax + 0x14], 4
jne 0x43a00c
mov eax, dword [esp + 0x34]
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], ebp
mov dword [esp + 0xc], eax
call fcn.0043cb70
jmp 0x43a00c
mov eax, dword [esp + 0x34]
mov byte [ebp + 0x11], 2
cmp byte [ebp + 0x26d], 0
mov eax, dword [eax + 0x18]
setne byte [esp + 0x28]
movzx ebx, word [eax + 0x10]
mov dword [esp + 0x3c], eax
test bx, bx
je 0x43af89
imul eax, ebx, 0xe4
imul ebx, ebx, 0x1c
mov dword [esp + 4], eax
mov dword [esp], ebp
call fcn.0043f290
mov edi, eax
mov dword [esp + 0x58], eax
mov eax, dword [eax + 4]
mov dword [esp + 8], ebx
mov dword [esp + 4], 0
mov esi, eax
mov dword [esp], eax
mov dword [esp + 0x54], eax
call sub.msvcrt.dll_memset
mov eax, esi
add eax, ebx
lea ecx, [ebp + 0x170]
mov dword [edi + 8], eax
mov dword [esp + 0x24], edi
xor edi, edi
mov dword [esp + 0x50], ecx
mov dword [esp + 0x48], esi
mov dword [esp + 0x44], 0
lea esi, [esi]
mov esi, dword [esp + 0x48]
add dword [esp + 0x44], 1
cmp byte [esp + 0x28], 0
mov dword [esi], eax
jne 0x43a52f
mov dword [esp + 0x20], 2
mov ecx, dword [esp + 0x20]
xor ebx, ebx
mov dword [esp + 0x2c], 0x32
mov esi, dword [esp + 0x48]
mov dword [esp + 0x30], 0
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x24]
cmp dword [ecx + 0xc], eax
jb 0x43a31c
cmp byte [esp + 0x28], 0
je 0x43a28d
mov eax, dword [esp + 0x2c]
cmp dword [esp + 0x20], eax
ja 0x43a366
lea edx, [esp + 0x7c]
mov eax, ebp
call fcn.0043b3f0
mov edx, eax
movzx eax, byte [eax + 4]
cmp al, 0x53
je 0x43a340
cmp al, 0x14
je 0x43a348
cmp al, 0x15
je 0x43a350
cmp al, 0x13
je 0x43a390
cmp al, 0x16
je 0x43a3b8
cmp al, 0x25
je 0x43a466
cmp al, 0x51
je 0x43a475
xor eax, eax
mov ecx, dword [esp + 0x7c]
cmp byte [ebp + 0x26d], 0
mov dword [esp], ebx
mov dword [esp + 4], 0
setne al
add ebx, 1
mov dword [esp + 8], eax
mov eax, esi
call fcn.00438ba0
lea eax, [ebx + 2]
mov dword [esp + 0x20], eax
mov eax, dword [esi]
mov ecx, dword [esp + 0x20]
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x24]
cmp dword [ecx + 0xc], eax
jae 0x43a278
mov dword [esp + 8], 0xfa0
mov dword [esp + 4], ecx
mov dword [esp], ebp
call fcn.0043f330
mov dword [esp + 0x24], eax
mov eax, dword [eax + 8]
mov dword [esi], eax
jmp 0x43a278
test ebx, ebx
jne 0x43a2d6
mov eax, dword [esi]
jmp 0x43a308
add dword [esp + 0x30], 1
jmp 0x43a2d6
mov ecx, dword [esp + 0x30]
mov eax, ecx
sub eax, 1
test ecx, ecx
je 0x43a3b8
mov dword [esp + 0x30], eax
jmp 0x43a2d6
add dword [esp + 0x2c], 0x3e8
mov ecx, dword [esp + 0x2c]
mov eax, dword [esi + 0x14]
lea edx, [ecx*4]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.00452f50
mov dword [esi + 0x14], eax
jmp 0x43a28d
mov eax, dword [esp + 0x30]
test eax, eax
jne 0x43a2d6
mov eax, dword [esp + 0x3c]
test byte [eax + 0x14], 2
je 0x43a3b8
mov eax, dword [esp + 0x3c]
movzx eax, word [eax + 0x10]
cmp dword [esp + 0x44], eax
je 0x43a2d6
mov esi, edx
test ebx, ebx
je 0x43a3df
mov eax, dword [esp + 0x48]
mov edx, dword [eax]
mov eax, dword [edx + ebx*4 - 4]
cmp byte [eax + 4], 0x53
je 0x43a3da
jmp 0x43a3df
mov eax, dword [edx + ebx*4 - 4]
cmp byte [eax + 4], 0x53
jne 0x43a3df
sub ebx, 1
jne 0x43a3d0
mov eax, dword [esp + 0x48]
mov ecx, dword [ebp + 0x170]
mov edx, dword [esp + 0x50]
mov dword [eax + 0xc], ebx
xor eax, eax
cmp byte [ebp + 0x26d], 0
mov dword [esp + 4], 0
mov dword [esp], ebx
setne al
mov dword [esp + 8], eax
mov eax, dword [esp + 0x48]
call fcn.00438ba0
mov eax, dword [esp + 0x3c]
movzx edx, word [eax + 0x10]
movzx eax, dx
cmp dword [esp + 0x44], eax
ja 0x43a44a
mov ecx, dword [esp + 0x48]
mov ecx, dword [ecx]
lea ecx, [ecx + ebx*4 + 4]
mov ebx, dword [esp + 0x24]
mov dword [ebx + 8], ecx
mov ebx, dword [esp + 0x48]
mov ecx, ebx
add ecx, 0x1c
cmp dword [esp + 0x44], eax
cmove ecx, ebx
mov dword [esp + 0x48], ecx
movzx eax, byte [esi + 4]
lea ecx, [eax - 0x15]
cmp cl, 1
jbe 0x43a549
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 8]
jmp 0x43a230
test byte [edx + 6], 0x40
je 0x43a2d6
jmp 0x43a3b8
mov dword [esp], ebp
mov dword [esp + 0x4c], edx
call fcn.0043e870
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x4c], ebx
mov ecx, eax
mov eax, dword [edx]
mov ebx, ecx
mov dword [ecx], eax
mov eax, dword [edx + 4]
mov dword [ecx + 4], eax
mov eax, dword [edx + 8]
mov dword [ecx + 8], eax
mov eax, dword [edx + 0xc]
mov dword [ecx + 0xc], eax
jmp 0x43a4e9
mov edx, dword [edi + 8]
mov eax, dword [edi + 0xc]
sub eax, edx
cmp eax, 3
ja 0x43a4ca
sub edx, dword [edi + 4]
mov dword [esp], ebp
add edx, edx
mov dword [esp + 4], edx
call fcn.0043f290
mov edx, dword [eax + 8]
mov dword [eax], edi
mov edi, eax
mov dword [edx], ebx
add dword [edi + 8], 4
cmp byte [ebx + 4], 0x52
je 0x43a510
lea edx, [esp + 0x7c]
mov eax, ebp
call fcn.0043b3f0
cmp byte [eax + 4], 0x16
mov ebx, eax
je 0x43a510
test edi, edi
jne 0x43a4a5
mov dword [esp + 4], pe_nt_image_headers32
mov dword [esp], ebp
call fcn.0043f290
mov edx, dword [eax + 8]
mov edi, eax
mov dword [edx], ebx
add dword [edi + 8], 4
cmp byte [ebx + 4], 0x52
jne 0x43a4d6
nop
mov ecx, ebx
mov ebx, dword [esp + 0x4c]
mov byte [ebp + 0x11], 2
mov byte [ebp + 0x10], 1
cmp byte [ecx + 4], 0x16
jne 0x43a306
mov esi, ecx
jmp 0x43a3ba
mov dword [esp], 0xc8
call fcn.00452ed0
mov esi, dword [esp + 0x48]
mov dword [esi + 0x14], eax
mov eax, dword [esi]
jmp 0x43a246
mov esi, dword [esp + 0x44]
cmp al, 0x16
mov dword [esp + 0x5c], esi
je 0x43b0c5
cmp dword [esp + 0x44], 1
je 0x43b098
mov eax, dword [esp + 0x44]
mov esi, dword [esp + 0x3c]
mov dword [esp], ebp
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 4], esi
mov dword [esp + 8], eax
call fcn.004395f0
test al, al
je 0x43b105
test byte [esi + 0x14], 2
je 0x43a5af
mov eax, dword [esp + 0x3c]
movzx eax, word [eax + 0x10]
cmp dword [esp + 0x44], eax
jb 0x43b084
cmp dword [esp + 0x44], 1
je 0x43b068
mov eax, dword [esp + 0x38]
sub byte [ebp + 0x10], 1
sub dword [ebp + 0x10c], 1
mov byte [ebp + 0x11], 0
cmp word [eax + 0x10], 0
jne 0x43a655
mov eax, dword [esp + 0x58]
xor ebx, ebx
mov esi, dword [eax + 4]
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x43a638
mov dword [esp + 0x20], edi
mov edi, esi
mov esi, dword [esp + 0x5c]
mov edx, dword [edi + 4]
test edx, edx
je 0x43a5fe
mov dword [esp], edx
call sub.msvcrt.dll_free
mov dword [edi + 4], 0
mov edx, dword [edi + 0x14]
test edx, edx
je 0x43a614
mov dword [esp], edx
call sub.msvcrt.dll_free
mov dword [edi + 0x14], 0
mov edx, dword [edi + 0x18]
test edx, edx
je 0x43a62a
mov dword [esp], edx
call sub.msvcrt.dll_free
mov dword [edi + 0x18], 0
add ebx, 1
add edi, 0x1c
cmp ebx, esi
jne 0x43a5e8
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x58]
mov dword [esp], eax
call fcn.0043f4a0
mov eax, dword [esp + 0x34]
movzx eax, word [eax + 0x14]
shr ax, 6
jmp 0x439dad
mov eax, dword [esp + 0x58]
mov dword [esp + 0x78], 0
mov eax, dword [eax + 4]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x38]
test byte [eax + 0x14], 0x20
jne 0x43b298
mov esi, dword [esp + 0x38]
mov eax, dword [esi + 0xc]
mov edx, eax
mov dword [esp + 0x20], eax
mov eax, dword [esi + 4]
shl edx, 4
lea esi, [eax + edx]
mov dword [esp + 0x2c], esi
cmp dword [esp + 0x2c], eax
jbe 0x43b0b8
mov esi, dword [esp + 0x20]
mov dword [esp + 0x4c], edi
mov dword [esp + 0x24], ebp
mov dword [esp + 0x28], esi
mov esi, eax
lea eax, [ebp + 0x4c]
mov dword [esp + 0x50], eax
lea eax, [ebp + 0x28]
mov dword [esp + 0x48], eax
jmp 0x43a6cd
add esi, 0x10
cmp esi, dword [esp + 0x2c]
jae 0x43a937
cmp byte [esi + 4], 0x50
jne 0x43a6c0
imul eax, dword [esi + 8], 0x1c
mov edi, dword [esp + 0x60]
add dword [esp + 0x20], 2
add dword [esp + 0x28], 2
lea ebp, [edi + eax - 0x1c]
movzx eax, word [esi + 6]
test al, 4
je 0x43a8f1
mov eax, dword [ebp + 8]
test eax, eax
jne 0x43a6c0
mov eax, dword [esp + 0x24]
mov edx, dword [eax + 0x28]
mov eax, dword [edx + 8]
mov edx, dword [edx + 0xc]
sub edx, eax
cmp edx, 2
ja 0x43a732
mov eax, dword [esp + 0x48]
mov edi, dword [esp + 0x24]
mov dword [esp + 8], 3
mov dword [esp + 4], eax
mov dword [esp], edi
call fcn.0043f440
mov eax, dword [edi + 0x28]
mov eax, dword [eax + 8]
mov byte [eax], 0x22
mov edi, dword [ebp + 0xc]
lea ebx, [eax + 1]
test edi, edi
je 0x43a89d
mov dword [esp + 0x3c], 0
xor edi, edi
mov dword [esp + 0x30], 0
mov dword [esp + 0x54], esi
mov eax, dword [ebp]
mov esi, dword [esp + 0x30]
mov esi, dword [eax + esi*4]
movzx eax, byte [esi + 4]
cmp al, 0x53
je 0x43aef9
lea edx, [eax - 0x3e]
cmp dl, 4
jbe 0x43a78f
lea edx, [eax - 0x38]
cmp dl, 4
jbe 0x43a78f
mov dword [esp], eax
call fcn.00443cc0
test al, al
je 0x43b26f
mov dword [esp], esi
call fcn.0043e9a0
mov dword [esp + 0x44], 1
shl eax, 2
lea edx, [eax + 3]
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0x28]
mov eax, dword [ecx + 0xc]
sub eax, ebx
cmp edx, eax
ja 0x43af1d
mov eax, dword [ecx + 8]
lea ecx, [ebx - 1]
cmp eax, ecx
je 0x43a7d4
test edi, edi
cmove edi, esi
test byte [edi + 6], 1
je 0x43a7d4
mov byte [ebx], 0x20
add ebx, 1
mov ecx, dword [esp + 0x44]
test ecx, ecx
je 0x43aed6
mov eax, dword [esp + 0x24]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.0043f290
mov edi, dword [eax + 8]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0xc], 1
mov dword [esp + 4], esi
mov dword [esp + 8], edi
mov dword [esp], eax
call fcn.0043ea40
mov ecx, dword [esp + 0x44]
mov edx, eax
cmp edi, edx
je 0x43a83d
add edi, 1
movzx eax, byte [edi - 1]
cmp al, 0x22
je 0x43a830
cmp al, 0x5c
jne 0x43a8e7
mov byte [ebx], 0x5c
add ebx, 2
mov byte [ebx - 1], al
cmp edi, edx
jne 0x43a81d
mov eax, dword [esp + 0x24]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.0043f260
cmp byte [esi + 4], 0x3d
je 0x43af51
xor edi, edi
mov dword [esp + 0x3c], 0
add dword [esp + 0x30], 1
mov eax, dword [esp + 0x30]
cmp eax, dword [ebp + 0xc]
jb 0x43a759
test byte [esp + 0x3c], 1
mov esi, dword [esp + 0x54]
je 0x43a89d
mov eax, dword [esp + 0x24]
sub ebx, 1
mov dword [esp + 8], str.invalid_string_literal__ignoring_final_
mov dword [esp + 4], 0
mov dword [esp], eax
call fcn.0043cb30
mov eax, dword [esp + 0x24]
lea edx, [ebx + 2]
mov byte [ebx], 0x22
lea ecx, [ebx + 1]
mov edi, ecx
mov eax, dword [eax + 0x28]
sub edi, dword [eax + 8]
mov dword [eax + 8], edx
mov eax, dword [esp + 0x24]
sub ecx, edi
mov dword [esp + 0x30], ecx
mov dword [esp], eax
call fcn.0043e870
mov ecx, dword [esp + 0x30]
xor edx, edx
mov byte [ebx + 1], 0
mov byte [eax + 4], 0x3e
mov dword [eax + 8], edi
mov dword [eax + 0xc], ecx
mov word [eax + 6], dx
mov dword [ebp + 8], eax
jmp 0x43a6c0
mov byte [ebx], al
add ebx, 1
jmp 0x43a819
test al, 8
jne 0x43a923
mov eax, dword [esp + 0x38]
cmp esi, dword [eax + 4]
jbe 0x43a904
test byte [esi - 0xa], 8
jne 0x43a923
mov eax, dword [ebp + 4]
test eax, eax
je 0x43b129
mov edi, dword [esp + 0x20]
mov eax, dword [ebp + 0x10]
lea eax, [edi + eax - 1]
mov dword [esp + 0x20], eax
jmp 0x43a6c0
mov edi, dword [esp + 0x20]
mov eax, dword [ebp + 0xc]
lea eax, [edi + eax - 1]
mov dword [esp + 0x20], eax
jmp 0x43a6c0
mov edi, dword [esp + 0x4c]
mov ebp, dword [esp + 0x24]
movzx eax, byte [ebp + 0x26d]
test eax, eax
mov dword [esp + 0x50], eax
je 0x43adf1
mov esi, dword [esp + 0x20]
lea ecx, [esp + 0x78]
mov eax, ebp
mov edx, esi
call fcn.00438c20
mov edx, esi
mov esi, dword [esp + 0xa0]
cmp dword [esp + 0x50], 1
cmove edx, dword [esp + 0x28]
mov dword [esp + 0x24], eax
mov eax, dword [eax + 4]
mov dword [esp + 0x64], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp + 8], esi
mov esi, dword [esp + 0x34]
mov dword [esp + 0xc], edx
mov dword [esp], eax
mov dword [esp + 4], esi
call fcn.0042be30
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x20], 0
mov eax, dword [eax + 4]
mov esi, eax
cmp esi, dword [esp + 0x2c]
lea eax, [ebp + 0x160]
mov dword [esp + 0x68], eax
jae 0x43acbb
mov dword [esp + 0x6c], edi
jmp 0x43aa17
cmp byte [ebp + 0x26d], 1
mov edx, dword [esp + 0x20]
jbe 0x43ab40
mov eax, dword [esi]
mov ecx, esi
mov edi, dword [esp + 0x30]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x78]
mov dword [esp + 4], eax
mov dword [esp], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 8], edi
call fcn.00438d80
add dword [esp + 0x20], 1
add esi, 0x10
cmp esi, dword [esp + 0x2c]
jae 0x43acb7
cmp byte [esi + 4], 0x50
jne 0x43a9d0
movzx edx, word [esi + 6]
imul eax, dword [esi + 8], 0x1c
mov edi, dword [esp + 0x60]
test dl, 4
lea eax, [edi + eax - 0x1c]
je 0x43ac7a
cmp byte [ebp + 0x26d], 0
lea edi, [eax + 8]
setne byte [esp + 0x28]
jne 0x43ae4b
mov dword [esp + 0x4c], 0
mov ebx, 1
mov dword [esp + 0x48], 1
mov dword [esp + 0x54], 0
cmp byte [ebp + 8], 0
je 0x43aa74
cmp byte [ebp + 9], 0
je 0x43aa87
mov eax, dword [esp + 0x38]
cmp esi, dword [eax + 4]
je 0x43aa87
test byte [esi - 0xa], 8
je 0x43ada2
test ebx, ebx
je 0x43abd6
mov eax, ebx
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x3c], esi
mov esi, dword [esp + 0x4c]
mov dword [esp + 0x4c], ebp
add eax, ebx
mov dword [esp + 0x44], eax
jmp 0x43aaf0
xor ecx, ecx
test edi, edi
mov ebp, dword [esi]
je 0x43aaba
mov ecx, dword [edi]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x78]
mov dword [esp], ebp
mov dword [esp + 8], eax
mov eax, dword [esp + 0x24]
call fcn.00438d80
mov eax, dword [esp + 0x48]
test eax, eax
je 0x43ab20
cmp eax, 2
je 0x43ab20
add ebx, 1
cmp ebx, dword [esp + 0x44]
je 0x43ab51
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x4c]
cmp dword [esp + 0x50], 2
cmovge eax, ebx
cmp byte [ecx + 0x26d], 1
jbe 0x43ab30
mov ecx, dword [esp + 0x3c]
cmp byte [esp + 0x28], 0
mov edx, dword [ecx]
jne 0x43aab0
mov ecx, dword [edi]
mov ebp, dword [ecx]
jmp 0x43aaba
add edi, 4
cmp byte [esp + 0x28], 0
lea eax, [esi + 4]
cmovne esi, eax
jmp 0x43aae7
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
sub eax, dword [ecx + 4]
sar eax, 4
jmp 0x43ab09
mov eax, dword [esp + 0x38]
mov edx, esi
sub edx, dword [eax + 4]
sar edx, 4
jmp 0x43a9e1
mov esi, dword [esp + 0x3c]
mov ebp, dword [esp + 0x4c]
test byte [esi + 6], 8
je 0x43ab71
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 8]
mov dword [esp + 0x20], eax
sub eax, 4
mov dword [esp + 0x54], eax
cmp byte [ebp + 8], 0
jne 0x43ab81
test byte [esi + 6], 8
je 0x43ae73
mov edi, dword [esp + 0x54]
test edi, edi
je 0x43abc9
mov dword [esp], ebp
call fcn.0043e870
mov edx, dword [edi]
movzx edx, byte [edx + 4]
mov byte [eax + 4], dl
mov edx, dword [edi]
mov edi, dword [esp + 0x54]
mov ecx, dword [edx + 8]
mov ebx, dword [edx + 0xc]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ebx
mov edx, dword [edi]
test byte [esi + 6], 8
movzx edx, word [edx + 6]
je 0x43ad12
or edx, 8
mov word [eax + 6], dx
mov edi, dword [esp + 0x54]
mov dword [edi], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x20], eax
jmp 0x43aa0a
cmp byte [ebp + 0x26a], 0
je 0x43ac07
cmp byte [ebp + 0x268], 0
jne 0x43ac07
mov eax, dword [esp + 0x38]
test byte [eax + 0x14], 4
jne 0x43ac07
mov eax, dword [ebp]
test eax, eax
je 0x43afe1
cmp byte [eax + 0x3d], 0
je 0x43afe1
cmp byte [ebp + 0x28a], 0
jle 0x43ac6d
mov eax, dword [esp + 0x20]
cmp byte [ebp + 0x248], 0
mov dword [esp + 0x44], eax
jne 0x43ab71
mov eax, dword [esp + 0x38]
test byte [eax + 0x14], 4
jne 0x43ab71
mov eax, dword [ebp]
test eax, eax
je 0x43ac44
cmp byte [eax + 0x3d], 0
jne 0x43ab71
mov eax, dword [esp + 0x34]
mov edx, dword [esi + 8]
mov eax, dword [eax]
mov dword [esp + 0x10], edx
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 + 0xc], eax
mov dword [esp], ebp
call fcn.0043cb70
mov eax, dword [esp + 0x20]
mov dword [esp + 0x44], eax
jmp 0x43ab71
and edx, 8
je 0x43ad1e
cmp byte [ebp + 0x26d], 0
mov ebx, dword [eax + 0xc]
mov edi, dword [eax]
setne byte [esp + 0x28]
jne 0x43af69
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x54], 0
jmp 0x43aa68
mov edi, dword [esp + 0x6c]
mov ebx, dword [esp + 0x50]
test ebx, ebx
jne 0x43aea6
mov esi, dword [esp + 0x24]
lea eax, [ebp + 0x4c]
mov ebx, dword [esi + 8]
sub ebx, dword [esi + 4]
call fcn.00438c60
mov ecx, dword [esp + 0x34]
shr ebx, 2
mov dword [eax + 0x10], esi
mov esi, dword [esp + 0x64]
mov dword [eax + 0x18], 0
mov dword [eax + 0x14], ecx
lea edx, [esi + ebx*4]
mov dword [eax + 8], esi
mov dword [eax + 0xc], edx
mov esi, dword [esp + 0x24]
mov eax, dword [esi + 8]
sub eax, dword [esi + 4]
shr eax, 2
add dword [0x4d928c], eax
jmp 0x43a5cd
and edx, 0xfffffff7
mov word [eax + 6], dx
jmp 0x43abc3
mov edi, dword [esp + 0x38]
cmp esi, dword [edi + 4]
je 0x43ae16
test byte [esi - 0xa], 8
je 0x43ae16
cmp byte [ebp + 0x26d], 0
mov ebx, dword [eax + 0xc]
mov edi, dword [eax]
setne cl
test cl, cl
mov byte [esp + 0x28], cl
mov dword [esp + 0x4c], 0
je 0x43ad5f
xor edx, edx
call fcn.00438bf0
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x3c], ecx
mov edx, eax
sub edx, ecx
cmp edx, 3
jbe 0x43af98
mov ecx, dword [eax - 4]
lea edx, [eax - 4]
mov dword [esp + 0x54], edx
cmp byte [ecx + 4], 0x13
je 0x43b210
xor eax, eax
test ebx, ebx
cmovne edx, eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x54], edx
jmp 0x43aa68
mov dword [esp], ebp
call fcn.0043e870
xor edx, edx
mov word [eax + 6], dx
mov edx, dword [esp + 0x20]
mov byte [eax + 4], 0x53
mov dword [eax + 8], esi
cmp byte [ebp + 0x26d], 1
jbe 0x43afd0
mov ecx, dword [eax]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x30]
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov edx, dword [esp + 0x78]
mov dword [esp], ecx
mov ecx, eax
mov eax, dword [esp + 0x24]
call fcn.00438d80
jmp 0x43aa87
mov edx, dword [esp + 0x20]
xor ecx, ecx
mov eax, ebp
call fcn.00438c20
mov dword [esp + 0x30], 0
mov dword [esp + 0x24], eax
mov eax, dword [eax + 4]
mov dword [esp + 0x64], eax
jmp 0x43a9a0
cmp byte [ebp + 0x26d], 0
mov ebx, dword [eax + 0x10]
mov edi, dword [eax + 4]
setne byte [esp + 0x28]
jne 0x43afad
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 2
mov dword [esp + 0x54], 0
jmp 0x43aa68
mov edx, 1
mov ebx, 1
call fcn.00438bf0
mov dword [esp + 0x48], 1
mov dword [esp + 0x54], 0
mov dword [esp + 0x4c], eax
jmp 0x43aa68
mov eax, dword [ebp + 0x160]
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x78]
mov dword [esp + 0xc], 0
mov dword [esp + 4], eax
mov dword [esp], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 8], 0
call fcn.00438d80
jmp 0x43ab81
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x34]
mov eax, dword [ecx + 8]
sub eax, dword [ecx + 4]
shr eax, 2
mov dword [esp + 8], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x78]
mov dword [esp], eax
mov eax, ebp
call fcn.00438d00
jmp 0x43acfa
mov eax, dword [esp + 0x24]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.0043ea40
mov ebx, eax
jmp 0x43a84d
test edi, edi
je 0x43b267
test byte [edi + 6], 1
jne 0x43a861
mov esi, dword [esi + 8]
mov eax, 0
test esi, esi
cmove edi, eax
jmp 0x43a861
mov eax, dword [esp + 0x48]
sub ebx, dword [ecx + 8]
mov dword [esp + 8], edx
mov dword [esp + 0x64], edx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x24]
mov dword [esp], eax
call fcn.0043f440
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x64]
mov eax, dword [eax + 0x28]
mov eax, dword [eax + 8]
add ebx, eax
jmp 0x43a7bc
mov eax, dword [esi + 0xc]
cmp byte [eax], 0x5c
jne 0x43a857
add dword [esp + 0x3c], 1
xor edi, edi
jmp 0x43a861
xor edx, edx
call fcn.00438bf0
mov dword [esp + 0x48], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x4c], eax
jmp 0x43aa68
mov ebx, 0x1c
mov eax, 0xe4
jmp 0x43a1da
mov dword [esp + 0x48], 0
mov dword [esp + 0x54], 0
jmp 0x43aa68
mov edx, 2
call fcn.00438bf0
mov dword [esp + 0x48], 2
mov dword [esp + 0x54], 0
mov dword [esp + 0x4c], eax
jmp 0x43aa68
mov ecx, dword [esp + 0x38]
mov edx, esi
sub edx, dword [ecx + 4]
sar edx, 4
jmp 0x43adc8
cmp byte [ebp + 0x248], 0
jne 0x43b032
mov eax, dword [esp + 0x20]
cmp byte [ebp + 0x28a], 0
mov dword [esp + 0x44], eax
je 0x43ab71
mov eax, dword [esp + 0x34]
mov ecx, dword [esi + 8]
mov edx, dword [eax]
setg al
movzx eax, al
add eax, 0x15
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], edx
mov dword [esp + 8], str.invoking_macro__s_argument__d:_empty_macro_arguments_are_undefined_in_ISO_C90
mov dword [esp + 4], eax
mov dword [esp], ebp
call fcn.0043cbb0
jmp 0x43ab71
mov eax, dword [esp + 0x34]
mov edx, dword [esi + 8]
mov eax, dword [eax]
mov dword [esp + 0x10], edx
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 + 0xc], eax
mov dword [esp], ebp
call fcn.0043cbb0
mov eax, dword [esp + 0x20]
mov dword [esp + 0x44], eax
jmp 0x43ab71
mov esi, dword [esp + 0x54]
mov edx, dword [esi + 0xc]
test edx, edx
jne 0x43a5af
cmp byte [ebp + 0x269], 0
jne 0x43a5af
imul eax, eax, 0x1c
mov esi, dword [esp + 0x54]
mov dword [esi + eax - 0x1c], 0
jmp 0x43a5af
test dx, dx
jne 0x43a564
mov eax, dword [esp + 0x54]
mov ecx, dword [eax + 0xc]
xor eax, eax
test ecx, ecx
setne al
mov dword [esp + 0x44], eax
jmp 0x43a564
mov eax, dword [esp + 0x20]
mov dword [esp + 0x28], eax
jmp 0x43a93f
mov eax, dword [ebp + 0x4c]
mov ebx, dword [eax + 4]
test ebx, ebx
je 0x43b34e
mov dword [esp + 4], 1
mov dword [esp], ebp
call fcn.00439ae0
mov eax, dword [esp + 0x34]
mov eax, dword [eax]
mov dword [esp + 8], 0x4cd3c0
mov dword [esp + 4], 3
mov dword [esp], ebp
mov dword [esp + 0xc], eax
call fcn.0043cb30
mov eax, dword [esp + 0x58]
mov dword [esp], ebp
mov dword [esp + 4], eax
call fcn.0043f260
mov byte [ebp + 0x11], 0
sub dword [ebp + 0x10c], 1
sub byte [ebp + 0x10], 1
jmp 0x439fff
mov edi, dword [ebp + 0xc]
mov eax, dword [esp + 0x24]
test edi, edi
movzx ebx, byte [eax + 0x26d]
je 0x43a90f
cmp byte [eax + 0x25a], 0
mov edi, eax
mov byte [eax + 0x25a], 0
mov dword [esp], 0x400
setne byte [esp + 0x30]
call fcn.00452ed0
mov dword [ebp + 4], eax
cmp byte [edi + 0x26d], 0
je 0x43b17b
mov dword [esp], 0x400
call fcn.00452ed0
mov dword [ebp + 0x18], eax
test bl, bl
je 0x43b3a5
mov eax, dword [ebp + 0x14]
mov edi, dword [ebp + 0xc]
mov edx, dword [ebp]
mov dword [esp], eax
mov eax, dword [esp + 0x24]
lea ecx, [edi + 1]
mov dword [esp + 8], ecx
xor ecx, ecx
mov dword [esp + 4], edx
xor edx, edx
call fcn.00438d00
mov eax, dword [ebp + 0x10]
mov ebx, 0x100
lea edx, [eax + 1]
cmp ebx, edx
jb 0x43b35d
mov edi, dword [esp + 0x24]
lea edx, [esp + 0x7c]
mov eax, edi
call fcn.0043b3f0
cmp byte [eax + 4], 0x16
je 0x43b332
xor ecx, ecx
mov edx, dword [ebp + 0x10]
cmp byte [edi + 0x26d], 0
mov dword [esp + 4], 2
setne cl
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x7c]
mov dword [esp], edx
mov edx, eax
mov eax, ebp
call fcn.00438ba0
mov eax, dword [ebp + 0x10]
add eax, 1
mov dword [ebp + 0x10], eax
jmp 0x43b1af
mov ecx, dword [esp + 0x38]
test byte [ecx + 0x14], 2
je 0x43ad8e
movzx ecx, word [ecx + 0x10]
cmp dword [esi + 8], ecx
jne 0x43ad8e
test edi, edi
je 0x43b241
mov ecx, dword [edi]
mov dword [esp + 0x48], 0
test ecx, ecx
jne 0x43aa68
cmp dword [esp + 0x3c], eax
jae 0x43af98
mov eax, dword [esp + 0x24]
mov dword [esp + 0x48], 0
mov dword [esp + 0x54], 0
mov dword [eax + 8], edx
jmp 0x43aa68
mov edi, dword [esi + 8]
jmp 0x43a861
movzx eax, byte [esi + 4]
mov dword [esp], eax
call fcn.00443cd0
test al, al
jne 0x43a78f
mov dword [esp], esi
call fcn.0043e9a0
mov dword [esp + 0x44], 0
jmp 0x43a7a2
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x43b302
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 4]
cmp byte [eax + 4], 0x26
mov dword [esp + 0x2c], eax
je 0x43b31d
add eax, 0x10
xor ebx, ebx
add ebx, 1
cmp ebx, ecx
je 0x43b302
mov edx, eax
add eax, 0x10
cmp byte [edx + 4], 0x26
jne 0x43b2b5
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x2c], edx
jmp 0x43a690
mov ecx, dword [esi + 0xc]
test ecx, ecx
je 0x43b302
mov ebx, dword [esi + 4]
cmp byte [ebx + 4], 0x26
je 0x43b310
lea edx, [ebx + 0x10]
xor esi, esi
jmp 0x43b2fb
movzx eax, byte [edx + 4]
add edx, 0x10
cmp al, 0x26
je 0x43b307
add esi, 1
cmp esi, ecx
jne 0x43b2f0
call fcn.00482700
mov dword [esp + 0x24], esi
jmp 0x43a03d
mov dword [esp + 0x24], 0
jmp 0x43a03d
mov dword [esp + 0x28], 0
mov dword [esp + 0x20], 0
jmp 0x43a93f
mov edi, dword [esp + 0x24]
mov dword [esp], edi
call fcn.00439950
movzx eax, byte [esp + 0x30]
mov byte [edi + 0x25a], al
jmp 0x43a90f
cmp byte [ebp + 8], 0
je 0x43b0e3
jmp 0x43b0d3
mov eax, dword [ebp + 4]
lea edi, [edx*8]
mov dword [esp + 4], edi
lea ebx, [edx + edx]
mov dword [esp], eax
call fcn.00452f50
mov dword [ebp + 4], eax
mov eax, dword [esp + 0x24]
cmp byte [eax + 0x26d], 0
je 0x43b1ba
mov eax, dword [ebp + 0x18]
test eax, eax
je 0x43b3da
mov dword [esp + 4], edi
mov dword [esp], eax
call fcn.00452f50
mov dword [ebp + 0x18], eax
jmp 0x43b1ba
mov eax, dword [ebp + 0xc]
mov edi, dword [ebp]
lea ebx, [eax + 1]
mov eax, dword [esp + 0x50]
call fcn.00438c60
lea edx, [edi + ebx*4]
mov dword [eax + 0x18], 0
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0
mov dword [eax + 8], edi
mov dword [eax + 0xc], edx
jmp 0x43b1a7
mov dword [esp], edi
call fcn.00452ed0
mov dword [ebp + 0x18], eax
jmp 0x43b1ba