Function at 0x43a330
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 0x43a4e3
test al, 4
jne 0x43a498
mov esi, dword [esp + 0x34]
xor edi, edi
mov esi, dword [esi + 0x18]
test byte [esi + 0x14], 1
mov dword [esp + 0x38], esi
jne 0x43a521
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 0x43a3d2
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 0x43a3d2
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 0x43a3f4
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 0x43a607
test edi, edi
je 0x43a725
cmp byte [ebp + 8], 0
je 0x43a6eb
lea eax, [ebp + 0x4c]
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], ebp
jmp 0x43a432
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.00439240
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 0x43a47c
add dword [0x4d928c], ebx
test esi, esi
jne 0x43a430
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 0x43a4c8
mov eax, dword [ebp + 0x64]
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0x34]
mov dword [esp], eax
mov eax, ebp
call fcn.00439d30
add esp, 0x8c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [eax + 0x18]
test byte [eax + 0x14], 1
je 0x43a4a5
mov eax, dword [ebp + 0xf0]
mov eax, dword [eax - 0x10]
mov dword [esp + 0xa0], eax
jmp 0x43a4a8
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 0x43a557
mov edi, dword [esp + 0x34]
mov dword [esp], ebp
mov dword [esp + 4], edi
call eax
test al, al
je 0x43a557
mov eax, dword [esp + 0x34]
movzx eax, word [eax + 0x14]
shr ax, 6
jmp 0x43a36e
add byte [ebp + 0x10], 1
xor ebx, ebx
add dword [ebp + 0x10c], 1
mov byte [ebp + 0x11], 1
mov dword [esp], ebp
call fcn.0043bf60
movzx edx, byte [eax + 4]
cmp dl, 0x53
jne 0x43a586
test ebx, ebx
je 0x43a582
test byte [ebx + 6], 1
jne 0x43a532
mov edx, dword [eax + 8]
test edx, edx
cmove ebx, eax
jmp 0x43a532
mov eax, dword [ebp + 0x214]
test eax, eax
je 0x43a510
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 0x43a36e
mov ebx, eax
jmp 0x43a532
cmp dl, 0x14
je 0x43a789
cmp dl, 0x16
jne 0x43a59e
lea edx, [ebp + 0x170]
cmp eax, edx
jne 0x43a5ce
mov dword [esp + 4], 1
mov dword [esp], ebp
call fcn.0043a0c0
test ebx, ebx
je 0x43a5ce
mov dword [esp + 0xc], 1
mov dword [esp + 8], ebx
mov dword [esp + 4], 0
mov dword [esp], ebp
call fcn.00439cc0
sub dword [ebp + 0x10c], 1
xor edi, edi
sub byte [ebp + 0x10], 1
mov byte [ebp + 0x11], 0
cmp byte [ebp + 0x25a], 0
jne 0x43a751
test edi, edi
je 0x43a5fc
mov dword [esp + 4], edi
mov dword [esp], ebp
call fcn.0043f840
mov byte [ebp + 0x6c], 0
xor eax, eax
jmp 0x43a4bd
test al, 0x20
jne 0x43b8b8
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 0x43a733
mov esi, dword [esp + 0x24]
lea ecx, [esp + 0x7c]
mov eax, ebp
mov dword [esp + 0x7c], 0
mov edx, esi
call fcn.00439200
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.0042c410
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x43a6b7
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.00439360
cmp esi, ebp
jne 0x43a685
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.004392e0
mov eax, dword [esp + 0x24]
add dword [0x4d928c], eax
jmp 0x43a40d
mov dword [esp], ebp
call fcn.0043ee50
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.00439cc0
jmp 0x43a41f
mov byte [ebp + 0x6c], 0
mov eax, 1
jmp 0x43a4bd
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.00439cc0
jmp 0x43a6dc
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 0x18]
test byte [eax + 0x14], 4
jne 0x43a5ec
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.0043d150
jmp 0x43a5ec
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 0x43b569
imul eax, ebx, 0xe4
imul ebx, ebx, 0x1c
mov dword [esp + 4], eax
mov dword [esp], ebp
call fcn.0043f870
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 0x43ab0f
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 0x43a8fc
cmp byte [esp + 0x28], 0
je 0x43a86d
mov eax, dword [esp + 0x2c]
cmp dword [esp + 0x20], eax
ja 0x43a946
lea edx, [esp + 0x7c]
mov eax, ebp
call fcn.0043b9d0
mov edx, eax
movzx eax, byte [eax + 4]
cmp al, 0x53
je 0x43a920
cmp al, 0x14
je 0x43a928
cmp al, 0x15
je 0x43a930
cmp al, 0x13
je 0x43a970
cmp al, 0x16
je 0x43a998
cmp al, 0x25
je 0x43aa46
cmp al, 0x51
je 0x43aa55
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.00439180
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 0x43a858
mov dword [esp + 8], 0xfa0
mov dword [esp + 4], ecx
mov dword [esp], ebp
call fcn.0043f910
mov dword [esp + 0x24], eax
mov eax, dword [eax + 8]
mov dword [esi], eax
jmp 0x43a858
test ebx, ebx
jne 0x43a8b6
mov eax, dword [esi]
jmp 0x43a8e8
add dword [esp + 0x30], 1
jmp 0x43a8b6
mov ecx, dword [esp + 0x30]
mov eax, ecx
sub eax, 1
test ecx, ecx
je 0x43a998
mov dword [esp + 0x30], eax
jmp 0x43a8b6
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.00453530
mov dword [esi + 0x14], eax
jmp 0x43a86d
mov eax, dword [esp + 0x30]
test eax, eax
jne 0x43a8b6
mov eax, dword [esp + 0x3c]
test byte [eax + 0x14], 2
je 0x43a998
mov eax, dword [esp + 0x3c]
movzx eax, word [eax + 0x10]
cmp dword [esp + 0x44], eax
je 0x43a8b6
mov esi, edx
test ebx, ebx
je 0x43a9bf
mov eax, dword [esp + 0x48]
mov edx, dword [eax]
mov eax, dword [edx + ebx*4 - 4]
cmp byte [eax + 4], 0x53
je 0x43a9ba
jmp 0x43a9bf
mov eax, dword [edx + ebx*4 - 4]
cmp byte [eax + 4], 0x53
jne 0x43a9bf
sub ebx, 1
jne 0x43a9b0
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.00439180
mov eax, dword [esp + 0x3c]
movzx edx, word [eax + 0x10]
movzx eax, dx
cmp dword [esp + 0x44], eax
ja 0x43aa2a
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 0x43ab29
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 8]
jmp 0x43a810
test byte [edx + 6], 0x40
je 0x43a8b6
jmp 0x43a998
mov dword [esp], ebp
mov dword [esp + 0x4c], edx
call fcn.0043ee50
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 0x43aac9
mov edx, dword [edi + 8]
mov eax, dword [edi + 0xc]
sub eax, edx
cmp eax, 3
ja 0x43aaaa
sub edx, dword [edi + 4]
mov dword [esp], ebp
add edx, edx
mov dword [esp + 4], edx
call fcn.0043f870
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 0x43aaf0
lea edx, [esp + 0x7c]
mov eax, ebp
call fcn.0043b9d0
cmp byte [eax + 4], 0x16
mov ebx, eax
je 0x43aaf0
test edi, edi
jne 0x43aa85
mov dword [esp + 4], pe_nt_image_headers32
mov dword [esp], ebp
call fcn.0043f870
mov edx, dword [eax + 8]
mov edi, eax
mov dword [edx], ebx
add dword [edi + 8], 4
cmp byte [ebx + 4], 0x52
jne 0x43aab6
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 0x43a8e6
mov esi, ecx
jmp 0x43a99a
mov dword [esp], 0xc8
call fcn.004534b0
mov esi, dword [esp + 0x48]
mov dword [esi + 0x14], eax
mov eax, dword [esi]
jmp 0x43a826
mov esi, dword [esp + 0x44]
cmp al, 0x16
mov dword [esp + 0x5c], esi
je 0x43b6a5
cmp dword [esp + 0x44], 1
je 0x43b678
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.00439bd0
test al, al
je 0x43b6e5
test byte [esi + 0x14], 2
je 0x43ab8f
mov eax, dword [esp + 0x3c]
movzx eax, word [eax + 0x10]
cmp dword [esp + 0x44], eax
jb 0x43b664
cmp dword [esp + 0x44], 1
je 0x43b648
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 0x43ac35
mov eax, dword [esp + 0x58]
xor ebx, ebx
mov esi, dword [eax + 4]
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x43ac18
mov dword [esp + 0x20], edi
mov edi, esi
mov esi, dword [esp + 0x5c]
mov edx, dword [edi + 4]
test edx, edx
je 0x43abde
mov dword [esp], edx
call sub.msvcrt.dll_free
mov dword [edi + 4], 0
mov edx, dword [edi + 0x14]
test edx, edx
je 0x43abf4
mov dword [esp], edx
call sub.msvcrt.dll_free
mov dword [edi + 0x14], 0
mov edx, dword [edi + 0x18]
test edx, edx
je 0x43ac0a
mov dword [esp], edx
call sub.msvcrt.dll_free
mov dword [edi + 0x18], 0
add ebx, 1
add edi, 0x1c
cmp ebx, esi
jne 0x43abc8
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x58]
mov dword [esp], eax
call fcn.0043fa80
mov eax, dword [esp + 0x34]
movzx eax, word [eax + 0x14]
shr ax, 6
jmp 0x43a38d
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 0x43b878
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 0x43b698
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 0x43acad
add esi, 0x10
cmp esi, dword [esp + 0x2c]
jae 0x43af17
cmp byte [esi + 4], 0x50
jne 0x43aca0
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 0x43aed1
mov eax, dword [ebp + 8]
test eax, eax
jne 0x43aca0
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 0x43ad12
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.0043fa20
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 0x43ae7d
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 0x43b4d9
lea edx, [eax - 0x3e]
cmp dl, 4
jbe 0x43ad6f
lea edx, [eax - 0x38]
cmp dl, 4
jbe 0x43ad6f
mov dword [esp], eax
call fcn.004442a0
test al, al
je 0x43b84f
mov dword [esp], esi
call fcn.0043ef80
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 0x43b4fd
mov eax, dword [ecx + 8]
lea ecx, [ebx - 1]
cmp eax, ecx
je 0x43adb4
test edi, edi
cmove edi, esi
test byte [edi + 6], 1
je 0x43adb4
mov byte [ebx], 0x20
add ebx, 1
mov ecx, dword [esp + 0x44]
test ecx, ecx
je 0x43b4b6
mov eax, dword [esp + 0x24]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.0043f870
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.0043f020
mov ecx, dword [esp + 0x44]
mov edx, eax
cmp edi, edx
je 0x43ae1d
add edi, 1
movzx eax, byte [edi - 1]
cmp al, 0x22
je 0x43ae10
cmp al, 0x5c
jne 0x43aec7
mov byte [ebx], 0x5c
add ebx, 2
mov byte [ebx - 1], al
cmp edi, edx
jne 0x43adfd
mov eax, dword [esp + 0x24]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.0043f840
cmp byte [esi + 4], 0x3d
je 0x43b531
xor edi, edi
mov dword [esp + 0x3c], 0
add dword [esp + 0x30], 1
mov eax, dword [esp + 0x30]
cmp eax, dword [ebp + 0xc]
jb 0x43ad39
test byte [esp + 0x3c], 1
mov esi, dword [esp + 0x54]
je 0x43ae7d
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.0043d110
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.0043ee50
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 0x43aca0
mov byte [ebx], al
add ebx, 1
jmp 0x43adf9
test al, 8
jne 0x43af03
mov eax, dword [esp + 0x38]
cmp esi, dword [eax + 4]
jbe 0x43aee4
test byte [esi - 0xa], 8
jne 0x43af03
mov eax, dword [ebp + 4]
test eax, eax
je 0x43b709
mov edi, dword [esp + 0x20]
mov eax, dword [ebp + 0x10]
lea eax, [edi + eax - 1]
mov dword [esp + 0x20], eax
jmp 0x43aca0
mov edi, dword [esp + 0x20]
mov eax, dword [ebp + 0xc]
lea eax, [edi + eax - 1]
mov dword [esp + 0x20], eax
jmp 0x43aca0
mov edi, dword [esp + 0x4c]
mov ebp, dword [esp + 0x24]
movzx eax, byte [ebp + 0x26d]
test eax, eax
mov dword [esp + 0x50], eax
je 0x43b3d1
mov esi, dword [esp + 0x20]
lea ecx, [esp + 0x78]
mov eax, ebp
mov edx, esi
call fcn.00439200
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.0042c410
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 0x43b29b
mov dword [esp + 0x6c], edi
jmp 0x43aff7
cmp byte [ebp + 0x26d], 1
mov edx, dword [esp + 0x20]
jbe 0x43b120
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.00439360
add dword [esp + 0x20], 1
add esi, 0x10
cmp esi, dword [esp + 0x2c]
jae 0x43b297
cmp byte [esi + 4], 0x50
jne 0x43afb0
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 0x43b25a
cmp byte [ebp + 0x26d], 0
lea edi, [eax + 8]
setne byte [esp + 0x28]
jne 0x43b42b
mov dword [esp + 0x4c], 0
mov ebx, 1
mov dword [esp + 0x48], 1
mov dword [esp + 0x54], 0
cmp byte [ebp + 8], 0
je 0x43b054
cmp byte [ebp + 9], 0
je 0x43b067
mov eax, dword [esp + 0x38]
cmp esi, dword [eax + 4]
je 0x43b067
test byte [esi - 0xa], 8
je 0x43b382
test ebx, ebx
je 0x43b1b6
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 0x43b0d0
xor ecx, ecx
test edi, edi
mov ebp, dword [esi]
je 0x43b09a
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.00439360
mov eax, dword [esp + 0x48]
test eax, eax
je 0x43b100
cmp eax, 2
je 0x43b100
add ebx, 1
cmp ebx, dword [esp + 0x44]
je 0x43b131
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x4c]
cmp dword [esp + 0x50], 2
cmovge eax, ebx
cmp byte [ecx + 0x26d], 1
jbe 0x43b110
mov ecx, dword [esp + 0x3c]
cmp byte [esp + 0x28], 0
mov edx, dword [ecx]
jne 0x43b090
mov ecx, dword [edi]
mov ebp, dword [ecx]
jmp 0x43b09a
add edi, 4
cmp byte [esp + 0x28], 0
lea eax, [esi + 4]
cmovne esi, eax
jmp 0x43b0c7
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
sub eax, dword [ecx + 4]
sar eax, 4
jmp 0x43b0e9
mov eax, dword [esp + 0x38]
mov edx, esi
sub edx, dword [eax + 4]
sar edx, 4
jmp 0x43afc1
mov esi, dword [esp + 0x3c]
mov ebp, dword [esp + 0x4c]
test byte [esi + 6], 8
je 0x43b151
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 0x43b161
test byte [esi + 6], 8
je 0x43b453
mov edi, dword [esp + 0x54]
test edi, edi
je 0x43b1a9
mov dword [esp], ebp
call fcn.0043ee50
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 0x43b2f2
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 0x43afea
cmp byte [ebp + 0x26a], 0
je 0x43b1e7
cmp byte [ebp + 0x268], 0
jne 0x43b1e7
mov eax, dword [esp + 0x38]
test byte [eax + 0x14], 4
jne 0x43b1e7
mov eax, dword [ebp]
test eax, eax
je 0x43b5c1
cmp byte [eax + 0x3d], 0
je 0x43b5c1
cmp byte [ebp + 0x28a], 0
jle 0x43b24d
mov eax, dword [esp + 0x20]
cmp byte [ebp + 0x248], 0
mov dword [esp + 0x44], eax
jne 0x43b151
mov eax, dword [esp + 0x38]
test byte [eax + 0x14], 4
jne 0x43b151
mov eax, dword [ebp]
test eax, eax
je 0x43b224
cmp byte [eax + 0x3d], 0
jne 0x43b151
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.0043d150
mov eax, dword [esp + 0x20]
mov dword [esp + 0x44], eax
jmp 0x43b151
and edx, 8
je 0x43b2fe
cmp byte [ebp + 0x26d], 0
mov ebx, dword [eax + 0xc]
mov edi, dword [eax]
setne byte [esp + 0x28]
jne 0x43b549
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x54], 0
jmp 0x43b048
mov edi, dword [esp + 0x6c]
mov ebx, dword [esp + 0x50]
test ebx, ebx
jne 0x43b486
mov esi, dword [esp + 0x24]
lea eax, [ebp + 0x4c]
mov ebx, dword [esi + 8]
sub ebx, dword [esi + 4]
call fcn.00439240
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 0x43abad
and edx, 0xfffffff7
mov word [eax + 6], dx
jmp 0x43b1a3
mov edi, dword [esp + 0x38]
cmp esi, dword [edi + 4]
je 0x43b3f6
test byte [esi - 0xa], 8
je 0x43b3f6
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 0x43b33f
xor edx, edx
call fcn.004391d0
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 0x43b578
mov ecx, dword [eax - 4]
lea edx, [eax - 4]
mov dword [esp + 0x54], edx
cmp byte [ecx + 4], 0x13
je 0x43b7f0
xor eax, eax
test ebx, ebx
cmovne edx, eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x54], edx
jmp 0x43b048
mov dword [esp], ebp
call fcn.0043ee50
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 0x43b5b0
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.00439360
jmp 0x43b067
mov edx, dword [esp + 0x20]
xor ecx, ecx
mov eax, ebp
call fcn.00439200
mov dword [esp + 0x30], 0
mov dword [esp + 0x24], eax
mov eax, dword [eax + 4]
mov dword [esp + 0x64], eax
jmp 0x43af80
cmp byte [ebp + 0x26d], 0
mov ebx, dword [eax + 0x10]
mov edi, dword [eax + 4]
setne byte [esp + 0x28]
jne 0x43b58d
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 2
mov dword [esp + 0x54], 0
jmp 0x43b048
mov edx, 1
mov ebx, 1
call fcn.004391d0
mov dword [esp + 0x48], 1
mov dword [esp + 0x54], 0
mov dword [esp + 0x4c], eax
jmp 0x43b048
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.00439360
jmp 0x43b161
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.004392e0
jmp 0x43b2da
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.0043f020
mov ebx, eax
jmp 0x43ae2d
test edi, edi
je 0x43b847
test byte [edi + 6], 1
jne 0x43ae41
mov esi, dword [esi + 8]
mov eax, 0
test esi, esi
cmove edi, eax
jmp 0x43ae41
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.0043fa20
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x64]
mov eax, dword [eax + 0x28]
mov eax, dword [eax + 8]
add ebx, eax
jmp 0x43ad9c
mov eax, dword [esi + 0xc]
cmp byte [eax], 0x5c
jne 0x43ae37
add dword [esp + 0x3c], 1
xor edi, edi
jmp 0x43ae41
xor edx, edx
call fcn.004391d0
mov dword [esp + 0x48], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x4c], eax
jmp 0x43b048
mov ebx, 0x1c
mov eax, 0xe4
jmp 0x43a7ba
mov dword [esp + 0x48], 0
mov dword [esp + 0x54], 0
jmp 0x43b048
mov edx, 2
call fcn.004391d0
mov dword [esp + 0x48], 2
mov dword [esp + 0x54], 0
mov dword [esp + 0x4c], eax
jmp 0x43b048
mov ecx, dword [esp + 0x38]
mov edx, esi
sub edx, dword [ecx + 4]
sar edx, 4
jmp 0x43b3a8
cmp byte [ebp + 0x248], 0
jne 0x43b612
mov eax, dword [esp + 0x20]
cmp byte [ebp + 0x28a], 0
mov dword [esp + 0x44], eax
je 0x43b151
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.0043d190
jmp 0x43b151
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.0043d190
mov eax, dword [esp + 0x20]
mov dword [esp + 0x44], eax
jmp 0x43b151
mov esi, dword [esp + 0x54]
mov edx, dword [esi + 0xc]
test edx, edx
jne 0x43ab8f
cmp byte [ebp + 0x269], 0
jne 0x43ab8f
imul eax, eax, 0x1c
mov esi, dword [esp + 0x54]
mov dword [esi + eax - 0x1c], 0
jmp 0x43ab8f
test dx, dx
jne 0x43ab44
mov eax, dword [esp + 0x54]
mov ecx, dword [eax + 0xc]
xor eax, eax
test ecx, ecx
setne al
mov dword [esp + 0x44], eax
jmp 0x43ab44
mov eax, dword [esp + 0x20]
mov dword [esp + 0x28], eax
jmp 0x43af1f
mov eax, dword [ebp + 0x4c]
mov ebx, dword [eax + 4]
test ebx, ebx
je 0x43b92e
mov dword [esp + 4], 1
mov dword [esp], ebp
call fcn.0043a0c0
mov eax, dword [esp + 0x34]
mov eax, dword [eax]
mov dword [esp + 8], 0x4cd380
mov dword [esp + 4], 3
mov dword [esp], ebp
mov dword [esp + 0xc], eax
call fcn.0043d110
mov eax, dword [esp + 0x58]
mov dword [esp], ebp
mov dword [esp + 4], eax
call fcn.0043f840
mov byte [ebp + 0x11], 0
sub dword [ebp + 0x10c], 1
sub byte [ebp + 0x10], 1
jmp 0x43a5df
mov edi, dword [ebp + 0xc]
mov eax, dword [esp + 0x24]
test edi, edi
movzx ebx, byte [eax + 0x26d]
je 0x43aeef
cmp byte [eax + 0x25a], 0
mov edi, eax
mov byte [eax + 0x25a], 0
mov dword [esp], 0x400
setne byte [esp + 0x30]
call fcn.004534b0
mov dword [ebp + 4], eax
cmp byte [edi + 0x26d], 0
je 0x43b75b
mov dword [esp], 0x400
call fcn.004534b0
mov dword [ebp + 0x18], eax
test bl, bl
je 0x43b985
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.004392e0
mov eax, dword [ebp + 0x10]
mov ebx, 0x100
lea edx, [eax + 1]
cmp ebx, edx
jb 0x43b93d
mov edi, dword [esp + 0x24]
lea edx, [esp + 0x7c]
mov eax, edi
call fcn.0043b9d0
cmp byte [eax + 4], 0x16
je 0x43b912
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.00439180
mov eax, dword [ebp + 0x10]
add eax, 1
mov dword [ebp + 0x10], eax
jmp 0x43b78f
mov ecx, dword [esp + 0x38]
test byte [ecx + 0x14], 2
je 0x43b36e
movzx ecx, word [ecx + 0x10]
cmp dword [esi + 8], ecx
jne 0x43b36e
test edi, edi
je 0x43b821
mov ecx, dword [edi]
mov dword [esp + 0x48], 0
test ecx, ecx
jne 0x43b048
cmp dword [esp + 0x3c], eax
jae 0x43b578
mov eax, dword [esp + 0x24]
mov dword [esp + 0x48], 0
mov dword [esp + 0x54], 0
mov dword [eax + 8], edx
jmp 0x43b048
mov edi, dword [esi + 8]
jmp 0x43ae41
movzx eax, byte [esi + 4]
mov dword [esp], eax
call fcn.004442b0
test al, al
jne 0x43ad6f
mov dword [esp], esi
call fcn.0043ef80
mov dword [esp + 0x44], 0
jmp 0x43ad82
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x43b8e2
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 4]
cmp byte [eax + 4], 0x26
mov dword [esp + 0x2c], eax
je 0x43b8fd
add eax, 0x10
xor ebx, ebx
add ebx, 1
cmp ebx, ecx
je 0x43b8e2
mov edx, eax
add eax, 0x10
cmp byte [edx + 4], 0x26
jne 0x43b895
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x2c], edx
jmp 0x43ac70
mov ecx, dword [esi + 0xc]
test ecx, ecx
je 0x43b8e2
mov ebx, dword [esi + 4]
cmp byte [ebx + 4], 0x26
je 0x43b8f0
lea edx, [ebx + 0x10]
xor esi, esi
jmp 0x43b8db
movzx eax, byte [edx + 4]
add edx, 0x10
cmp al, 0x26
je 0x43b8e7
add esi, 1
cmp esi, ecx
jne 0x43b8d0
call fcn.00482ce0
mov dword [esp + 0x24], esi
jmp 0x43a61d
mov dword [esp + 0x24], 0
jmp 0x43a61d
mov dword [esp + 0x28], 0
mov dword [esp + 0x20], 0
jmp 0x43af1f
mov edi, dword [esp + 0x24]
mov dword [esp], edi
call fcn.00439f30
movzx eax, byte [esp + 0x30]
mov byte [edi + 0x25a], al
jmp 0x43aeef
cmp byte [ebp + 8], 0
je 0x43b6c3
jmp 0x43b6b3
mov eax, dword [ebp + 4]
lea edi, [edx*8]
mov dword [esp + 4], edi
lea ebx, [edx + edx]
mov dword [esp], eax
call fcn.00453530
mov dword [ebp + 4], eax
mov eax, dword [esp + 0x24]
cmp byte [eax + 0x26d], 0
je 0x43b79a
mov eax, dword [ebp + 0x18]
test eax, eax
je 0x43b9ba
mov dword [esp + 4], edi
mov dword [esp], eax
call fcn.00453530
mov dword [ebp + 0x18], eax
jmp 0x43b79a
mov eax, dword [ebp + 0xc]
mov edi, dword [ebp]
lea ebx, [eax + 1]
mov eax, dword [esp + 0x50]
call fcn.00439240
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 0x43b787
mov dword [esp], edi
call fcn.004534b0
mov dword [ebp + 0x18], eax
jmp 0x43b79a