Function at 0x41f1e0
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 0x41f393
test al, 4
jne 0x41f348
mov esi, dword [esp + 0x34]
xor edi, edi
mov esi, dword [esi + 0x18]
test byte [esi + 0x14], 1
mov dword [esp + 0x38], esi
jne 0x41f3d1
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 0x41f282
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 0x41f282
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 0x41f2a4
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 0x41f4b7
test edi, edi
je 0x41f5d5
cmp byte [ebp + 8], 0
je 0x41f59b
lea eax, [ebp + 0x4c]
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], ebp
jmp 0x41f2e2
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.0041e0f0
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 0x41f32c
add dword [0x478264], ebx
test esi, esi
jne 0x41f2e0
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 0x41f378
mov eax, dword [ebp + 0x64]
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0x34]
mov dword [esp], eax
mov eax, ebp
call fcn.0041ebe0
add esp, 0x8c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [eax + 0x18]
test byte [eax + 0x14], 1
je 0x41f355
mov eax, dword [ebp + 0xf0]
mov eax, dword [eax - 0x10]
mov dword [esp + 0xa0], eax
jmp 0x41f358
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 0x41f407
mov edi, dword [esp + 0x34]
mov dword [esp], ebp
mov dword [esp + 4], edi
call eax
test al, al
je 0x41f407
mov eax, dword [esp + 0x34]
movzx eax, word [eax + 0x14]
shr ax, 6
jmp 0x41f21e
add byte [ebp + 0x10], 1
xor ebx, ebx
add dword [ebp + 0x10c], 1
mov byte [ebp + 0x11], 1
mov dword [esp], ebp
call fcn.00420e10
movzx edx, byte [eax + 4]
cmp dl, 0x53
jne 0x41f436
test ebx, ebx
je 0x41f432
test byte [ebx + 6], 1
jne 0x41f3e2
mov edx, dword [eax + 8]
test edx, edx
cmove ebx, eax
jmp 0x41f3e2
mov eax, dword [ebp + 0x214]
test eax, eax
je 0x41f3c0
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 0x41f21e
mov ebx, eax
jmp 0x41f3e2
cmp dl, 0x14
je 0x41f639
cmp dl, 0x16
jne 0x41f44e
lea edx, [ebp + 0x170]
cmp eax, edx
jne 0x41f47e
mov dword [esp + 4], 1
mov dword [esp], ebp
call fcn.0041ef70
test ebx, ebx
je 0x41f47e
mov dword [esp + 0xc], 1
mov dword [esp + 8], ebx
mov dword [esp + 4], 0
mov dword [esp], ebp
call fcn.0041eb70
sub dword [ebp + 0x10c], 1
xor edi, edi
sub byte [ebp + 0x10], 1
mov byte [ebp + 0x11], 0
cmp byte [ebp + 0x25a], 0
jne 0x41f601
test edi, edi
je 0x41f4ac
mov dword [esp + 4], edi
mov dword [esp], ebp
call fcn.004246f0
mov byte [ebp + 0x6c], 0
xor eax, eax
jmp 0x41f36d
test al, 0x20
jne 0x420768
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 0x41f5e3
mov esi, dword [esp + 0x24]
lea ecx, [esp + 0x7c]
mov eax, ebp
mov dword [esp + 0x7c], 0
mov edx, esi
call fcn.0041e0b0
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.004112c0
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x41f567
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.0041e210
cmp esi, ebp
jne 0x41f535
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.0041e190
mov eax, dword [esp + 0x24]
add dword [0x478264], eax
jmp 0x41f2bd
mov dword [esp], ebp
call fcn.00423d00
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.0041eb70
jmp 0x41f2cf
mov byte [ebp + 0x6c], 0
mov eax, 1
jmp 0x41f36d
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.0041eb70
jmp 0x41f58c
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 0x18]
test byte [eax + 0x14], 4
jne 0x41f49c
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.00422000
jmp 0x41f49c
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 0x420419
imul eax, ebx, 0xe4
imul ebx, ebx, 0x1c
mov dword [esp + 4], eax
mov dword [esp], ebp
call fcn.00424720
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 0x41f9bf
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 0x41f7ac
cmp byte [esp + 0x28], 0
je 0x41f71d
mov eax, dword [esp + 0x2c]
cmp dword [esp + 0x20], eax
ja 0x41f7f6
lea edx, [esp + 0x7c]
mov eax, ebp
call fcn.00420880
mov edx, eax
movzx eax, byte [eax + 4]
cmp al, 0x53
je 0x41f7d0
cmp al, 0x14
je 0x41f7d8
cmp al, 0x15
je 0x41f7e0
cmp al, 0x13
je 0x41f820
cmp al, 0x16
je 0x41f848
cmp al, 0x25
je 0x41f8f6
cmp al, 0x51
je 0x41f905
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.0041e030
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 0x41f708
mov dword [esp + 8], 0xfa0
mov dword [esp + 4], ecx
mov dword [esp], ebp
call fcn.004247c0
mov dword [esp + 0x24], eax
mov eax, dword [eax + 8]
mov dword [esi], eax
jmp 0x41f708
test ebx, ebx
jne 0x41f766
mov eax, dword [esi]
jmp 0x41f798
add dword [esp + 0x30], 1
jmp 0x41f766
mov ecx, dword [esp + 0x30]
mov eax, ecx
sub eax, 1
test ecx, ecx
je 0x41f848
mov dword [esp + 0x30], eax
jmp 0x41f766
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.00439240
mov dword [esi + 0x14], eax
jmp 0x41f71d
mov eax, dword [esp + 0x30]
test eax, eax
jne 0x41f766
mov eax, dword [esp + 0x3c]
test byte [eax + 0x14], 2
je 0x41f848
mov eax, dword [esp + 0x3c]
movzx eax, word [eax + 0x10]
cmp dword [esp + 0x44], eax
je 0x41f766
mov esi, edx
test ebx, ebx
je 0x41f86f
mov eax, dword [esp + 0x48]
mov edx, dword [eax]
mov eax, dword [edx + ebx*4 - 4]
cmp byte [eax + 4], 0x53
je 0x41f86a
jmp 0x41f86f
mov eax, dword [edx + ebx*4 - 4]
cmp byte [eax + 4], 0x53
jne 0x41f86f
sub ebx, 1
jne 0x41f860
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.0041e030
mov eax, dword [esp + 0x3c]
movzx edx, word [eax + 0x10]
movzx eax, dx
cmp dword [esp + 0x44], eax
ja 0x41f8da
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 0x41f9d9
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 8]
jmp 0x41f6c0
test byte [edx + 6], 0x40
je 0x41f766
jmp 0x41f848
mov dword [esp], ebp
mov dword [esp + 0x4c], edx
call fcn.00423d00
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 0x41f979
mov edx, dword [edi + 8]
mov eax, dword [edi + 0xc]
sub eax, edx
cmp eax, 3
ja 0x41f95a
sub edx, dword [edi + 4]
mov dword [esp], ebp
add edx, edx
mov dword [esp + 4], edx
call fcn.00424720
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 0x41f9a0
lea edx, [esp + 0x7c]
mov eax, ebp
call fcn.00420880
cmp byte [eax + 4], 0x16
mov ebx, eax
je 0x41f9a0
test edi, edi
jne 0x41f935
mov dword [esp + 4], pe_nt_image_headers32
mov dword [esp], ebp
call fcn.00424720
mov edx, dword [eax + 8]
mov edi, eax
mov dword [edx], ebx
add dword [edi + 8], 4
cmp byte [ebx + 4], 0x52
jne 0x41f966
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 0x41f796
mov esi, ecx
jmp 0x41f84a
mov dword [esp], 0xc8
call fcn.004391c0
mov esi, dword [esp + 0x48]
mov dword [esi + 0x14], eax
mov eax, dword [esi]
jmp 0x41f6d6
mov esi, dword [esp + 0x44]
cmp al, 0x16
mov dword [esp + 0x5c], esi
je 0x420555
cmp dword [esp + 0x44], 1
je 0x420528
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.0041ea80
test al, al
je 0x420595
test byte [esi + 0x14], 2
je 0x41fa3f
mov eax, dword [esp + 0x3c]
movzx eax, word [eax + 0x10]
cmp dword [esp + 0x44], eax
jb 0x420514
cmp dword [esp + 0x44], 1
je 0x4204f8
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 0x41fae5
mov eax, dword [esp + 0x58]
xor ebx, ebx
mov esi, dword [eax + 4]
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x41fac8
mov dword [esp + 0x20], edi
mov edi, esi
mov esi, dword [esp + 0x5c]
mov edx, dword [edi + 4]
test edx, edx
je 0x41fa8e
mov dword [esp], edx
call sub.msvcrt.dll_free
mov dword [edi + 4], 0
mov edx, dword [edi + 0x14]
test edx, edx
je 0x41faa4
mov dword [esp], edx
call sub.msvcrt.dll_free
mov dword [edi + 0x14], 0
mov edx, dword [edi + 0x18]
test edx, edx
je 0x41faba
mov dword [esp], edx
call sub.msvcrt.dll_free
mov dword [edi + 0x18], 0
add ebx, 1
add edi, 0x1c
cmp ebx, esi
jne 0x41fa78
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x58]
mov dword [esp], eax
call fcn.00424930
mov eax, dword [esp + 0x34]
movzx eax, word [eax + 0x14]
shr ax, 6
jmp 0x41f23d
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 0x420728
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 0x420548
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 0x41fb5d
add esi, 0x10
cmp esi, dword [esp + 0x2c]
jae 0x41fdc7
cmp byte [esi + 4], 0x50
jne 0x41fb50
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 0x41fd81
mov eax, dword [ebp + 8]
test eax, eax
jne 0x41fb50
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 0x41fbc2
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.004248d0
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 0x41fd2d
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 0x420389
lea edx, [eax - 0x3e]
cmp dl, 4
jbe 0x41fc1f
lea edx, [eax - 0x38]
cmp dl, 4
jbe 0x41fc1f
mov dword [esp], eax
call fcn.00429150
test al, al
je 0x4206ff
mov dword [esp], esi
call fcn.00423e30
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 0x4203ad
mov eax, dword [ecx + 8]
lea ecx, [ebx - 1]
cmp eax, ecx
je 0x41fc64
test edi, edi
cmove edi, esi
test byte [edi + 6], 1
je 0x41fc64
mov byte [ebx], 0x20
add ebx, 1
mov ecx, dword [esp + 0x44]
test ecx, ecx
je 0x420366
mov eax, dword [esp + 0x24]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.00424720
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.00423ed0
mov ecx, dword [esp + 0x44]
mov edx, eax
cmp edi, edx
je 0x41fccd
add edi, 1
movzx eax, byte [edi - 1]
cmp al, 0x22
je 0x41fcc0
cmp al, 0x5c
jne 0x41fd77
mov byte [ebx], 0x5c
add ebx, 2
mov byte [ebx - 1], al
cmp edi, edx
jne 0x41fcad
mov eax, dword [esp + 0x24]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.004246f0
cmp byte [esi + 4], 0x3d
je 0x4203e1
xor edi, edi
mov dword [esp + 0x3c], 0
add dword [esp + 0x30], 1
mov eax, dword [esp + 0x30]
cmp eax, dword [ebp + 0xc]
jb 0x41fbe9
test byte [esp + 0x3c], 1
mov esi, dword [esp + 0x54]
je 0x41fd2d
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.00421fc0
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.00423d00
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 0x41fb50
mov byte [ebx], al
add ebx, 1
jmp 0x41fca9
test al, 8
jne 0x41fdb3
mov eax, dword [esp + 0x38]
cmp esi, dword [eax + 4]
jbe 0x41fd94
test byte [esi - 0xa], 8
jne 0x41fdb3
mov eax, dword [ebp + 4]
test eax, eax
je 0x4205b9
mov edi, dword [esp + 0x20]
mov eax, dword [ebp + 0x10]
lea eax, [edi + eax - 1]
mov dword [esp + 0x20], eax
jmp 0x41fb50
mov edi, dword [esp + 0x20]
mov eax, dword [ebp + 0xc]
lea eax, [edi + eax - 1]
mov dword [esp + 0x20], eax
jmp 0x41fb50
mov edi, dword [esp + 0x4c]
mov ebp, dword [esp + 0x24]
movzx eax, byte [ebp + 0x26d]
test eax, eax
mov dword [esp + 0x50], eax
je 0x420281
mov esi, dword [esp + 0x20]
lea ecx, [esp + 0x78]
mov eax, ebp
mov edx, esi
call fcn.0041e0b0
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.004112c0
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 0x42014b
mov dword [esp + 0x6c], edi
jmp 0x41fea7
cmp byte [ebp + 0x26d], 1
mov edx, dword [esp + 0x20]
jbe 0x41ffd0
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.0041e210
add dword [esp + 0x20], 1
add esi, 0x10
cmp esi, dword [esp + 0x2c]
jae 0x420147
cmp byte [esi + 4], 0x50
jne 0x41fe60
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 0x42010a
cmp byte [ebp + 0x26d], 0
lea edi, [eax + 8]
setne byte [esp + 0x28]
jne 0x4202db
mov dword [esp + 0x4c], 0
mov ebx, 1
mov dword [esp + 0x48], 1
mov dword [esp + 0x54], 0
cmp byte [ebp + 8], 0
je 0x41ff04
cmp byte [ebp + 9], 0
je 0x41ff17
mov eax, dword [esp + 0x38]
cmp esi, dword [eax + 4]
je 0x41ff17
test byte [esi - 0xa], 8
je 0x420232
test ebx, ebx
je 0x420066
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 0x41ff80
xor ecx, ecx
test edi, edi
mov ebp, dword [esi]
je 0x41ff4a
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.0041e210
mov eax, dword [esp + 0x48]
test eax, eax
je 0x41ffb0
cmp eax, 2
je 0x41ffb0
add ebx, 1
cmp ebx, dword [esp + 0x44]
je 0x41ffe1
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x4c]
cmp dword [esp + 0x50], 2
cmovge eax, ebx
cmp byte [ecx + 0x26d], 1
jbe 0x41ffc0
mov ecx, dword [esp + 0x3c]
cmp byte [esp + 0x28], 0
mov edx, dword [ecx]
jne 0x41ff40
mov ecx, dword [edi]
mov ebp, dword [ecx]
jmp 0x41ff4a
add edi, 4
cmp byte [esp + 0x28], 0
lea eax, [esi + 4]
cmovne esi, eax
jmp 0x41ff77
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
sub eax, dword [ecx + 4]
sar eax, 4
jmp 0x41ff99
mov eax, dword [esp + 0x38]
mov edx, esi
sub edx, dword [eax + 4]
sar edx, 4
jmp 0x41fe71
mov esi, dword [esp + 0x3c]
mov ebp, dword [esp + 0x4c]
test byte [esi + 6], 8
je 0x420001
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 0x420011
test byte [esi + 6], 8
je 0x420303
mov edi, dword [esp + 0x54]
test edi, edi
je 0x420059
mov dword [esp], ebp
call fcn.00423d00
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 0x4201a2
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 0x41fe9a
cmp byte [ebp + 0x26a], 0
je 0x420097
cmp byte [ebp + 0x268], 0
jne 0x420097
mov eax, dword [esp + 0x38]
test byte [eax + 0x14], 4
jne 0x420097
mov eax, dword [ebp]
test eax, eax
je 0x420471
cmp byte [eax + 0x3d], 0
je 0x420471
cmp byte [ebp + 0x28a], 0
jle 0x4200fd
mov eax, dword [esp + 0x20]
cmp byte [ebp + 0x248], 0
mov dword [esp + 0x44], eax
jne 0x420001
mov eax, dword [esp + 0x38]
test byte [eax + 0x14], 4
jne 0x420001
mov eax, dword [ebp]
test eax, eax
je 0x4200d4
cmp byte [eax + 0x3d], 0
jne 0x420001
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.00422000
mov eax, dword [esp + 0x20]
mov dword [esp + 0x44], eax
jmp 0x420001
and edx, 8
je 0x4201ae
cmp byte [ebp + 0x26d], 0
mov ebx, dword [eax + 0xc]
mov edi, dword [eax]
setne byte [esp + 0x28]
jne 0x4203f9
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x54], 0
jmp 0x41fef8
mov edi, dword [esp + 0x6c]
mov ebx, dword [esp + 0x50]
test ebx, ebx
jne 0x420336
mov esi, dword [esp + 0x24]
lea eax, [ebp + 0x4c]
mov ebx, dword [esi + 8]
sub ebx, dword [esi + 4]
call fcn.0041e0f0
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 [0x478264], eax
jmp 0x41fa5d
and edx, 0xfffffff7
mov word [eax + 6], dx
jmp 0x420053
mov edi, dword [esp + 0x38]
cmp esi, dword [edi + 4]
je 0x4202a6
test byte [esi - 0xa], 8
je 0x4202a6
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 0x4201ef
xor edx, edx
call fcn.0041e080
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 0x420428
mov ecx, dword [eax - 4]
lea edx, [eax - 4]
mov dword [esp + 0x54], edx
cmp byte [ecx + 4], 0x13
je 0x4206a0
xor eax, eax
test ebx, ebx
cmovne edx, eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x54], edx
jmp 0x41fef8
mov dword [esp], ebp
call fcn.00423d00
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 0x420460
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.0041e210
jmp 0x41ff17
mov edx, dword [esp + 0x20]
xor ecx, ecx
mov eax, ebp
call fcn.0041e0b0
mov dword [esp + 0x30], 0
mov dword [esp + 0x24], eax
mov eax, dword [eax + 4]
mov dword [esp + 0x64], eax
jmp 0x41fe30
cmp byte [ebp + 0x26d], 0
mov ebx, dword [eax + 0x10]
mov edi, dword [eax + 4]
setne byte [esp + 0x28]
jne 0x42043d
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 2
mov dword [esp + 0x54], 0
jmp 0x41fef8
mov edx, 1
mov ebx, 1
call fcn.0041e080
mov dword [esp + 0x48], 1
mov dword [esp + 0x54], 0
mov dword [esp + 0x4c], eax
jmp 0x41fef8
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.0041e210
jmp 0x420011
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.0041e190
jmp 0x42018a
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.00423ed0
mov ebx, eax
jmp 0x41fcdd
test edi, edi
je 0x4206f7
test byte [edi + 6], 1
jne 0x41fcf1
mov esi, dword [esi + 8]
mov eax, 0
test esi, esi
cmove edi, eax
jmp 0x41fcf1
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.004248d0
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x64]
mov eax, dword [eax + 0x28]
mov eax, dword [eax + 8]
add ebx, eax
jmp 0x41fc4c
mov eax, dword [esi + 0xc]
cmp byte [eax], 0x5c
jne 0x41fce7
add dword [esp + 0x3c], 1
xor edi, edi
jmp 0x41fcf1
xor edx, edx
call fcn.0041e080
mov dword [esp + 0x48], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x4c], eax
jmp 0x41fef8
mov ebx, 0x1c
mov eax, 0xe4
jmp 0x41f66a
mov dword [esp + 0x48], 0
mov dword [esp + 0x54], 0
jmp 0x41fef8
mov edx, 2
call fcn.0041e080
mov dword [esp + 0x48], 2
mov dword [esp + 0x54], 0
mov dword [esp + 0x4c], eax
jmp 0x41fef8
mov ecx, dword [esp + 0x38]
mov edx, esi
sub edx, dword [ecx + 4]
sar edx, 4
jmp 0x420258
cmp byte [ebp + 0x248], 0
jne 0x4204c2
mov eax, dword [esp + 0x20]
cmp byte [ebp + 0x28a], 0
mov dword [esp + 0x44], eax
je 0x420001
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.00422040
jmp 0x420001
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.00422040
mov eax, dword [esp + 0x20]
mov dword [esp + 0x44], eax
jmp 0x420001
mov esi, dword [esp + 0x54]
mov edx, dword [esi + 0xc]
test edx, edx
jne 0x41fa3f
cmp byte [ebp + 0x269], 0
jne 0x41fa3f
imul eax, eax, 0x1c
mov esi, dword [esp + 0x54]
mov dword [esi + eax - 0x1c], 0
jmp 0x41fa3f
test dx, dx
jne 0x41f9f4
mov eax, dword [esp + 0x54]
mov ecx, dword [eax + 0xc]
xor eax, eax
test ecx, ecx
setne al
mov dword [esp + 0x44], eax
jmp 0x41f9f4
mov eax, dword [esp + 0x20]
mov dword [esp + 0x28], eax
jmp 0x41fdcf
mov eax, dword [ebp + 0x4c]
mov ebx, dword [eax + 4]
test ebx, ebx
je 0x4207de
mov dword [esp + 4], 1
mov dword [esp], ebp
call fcn.0041ef70
mov eax, dword [esp + 0x34]
mov eax, dword [eax]
mov dword [esp + 8], 0x46e140
mov dword [esp + 4], 3
mov dword [esp], ebp
mov dword [esp + 0xc], eax
call fcn.00421fc0
mov eax, dword [esp + 0x58]
mov dword [esp], ebp
mov dword [esp + 4], eax
call fcn.004246f0
mov byte [ebp + 0x11], 0
sub dword [ebp + 0x10c], 1
sub byte [ebp + 0x10], 1
jmp 0x41f48f
mov edi, dword [ebp + 0xc]
mov eax, dword [esp + 0x24]
test edi, edi
movzx ebx, byte [eax + 0x26d]
je 0x41fd9f
cmp byte [eax + 0x25a], 0
mov edi, eax
mov byte [eax + 0x25a], 0
mov dword [esp], 0x400
setne byte [esp + 0x30]
call fcn.004391c0
mov dword [ebp + 4], eax
cmp byte [edi + 0x26d], 0
je 0x42060b
mov dword [esp], 0x400
call fcn.004391c0
mov dword [ebp + 0x18], eax
test bl, bl
je 0x420835
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.0041e190
mov eax, dword [ebp + 0x10]
mov ebx, 0x100
lea edx, [eax + 1]
cmp ebx, edx
jb 0x4207ed
mov edi, dword [esp + 0x24]
lea edx, [esp + 0x7c]
mov eax, edi
call fcn.00420880
cmp byte [eax + 4], 0x16
je 0x4207c2
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.0041e030
mov eax, dword [ebp + 0x10]
add eax, 1
mov dword [ebp + 0x10], eax
jmp 0x42063f
mov ecx, dword [esp + 0x38]
test byte [ecx + 0x14], 2
je 0x42021e
movzx ecx, word [ecx + 0x10]
cmp dword [esi + 8], ecx
jne 0x42021e
test edi, edi
je 0x4206d1
mov ecx, dword [edi]
mov dword [esp + 0x48], 0
test ecx, ecx
jne 0x41fef8
cmp dword [esp + 0x3c], eax
jae 0x420428
mov eax, dword [esp + 0x24]
mov dword [esp + 0x48], 0
mov dword [esp + 0x54], 0
mov dword [eax + 8], edx
jmp 0x41fef8
mov edi, dword [esi + 8]
jmp 0x41fcf1
movzx eax, byte [esi + 4]
mov dword [esp], eax
call fcn.00429160
test al, al
jne 0x41fc1f
mov dword [esp], esi
call fcn.00423e30
mov dword [esp + 0x44], 0
jmp 0x41fc32
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x420792
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 4]
cmp byte [eax + 4], 0x26
mov dword [esp + 0x2c], eax
je 0x4207ad
add eax, 0x10
xor ebx, ebx
add ebx, 1
cmp ebx, ecx
je 0x420792
mov edx, eax
add eax, 0x10
cmp byte [edx + 4], 0x26
jne 0x420745
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x2c], edx
jmp 0x41fb20
mov ecx, dword [esi + 0xc]
test ecx, ecx
je 0x420792
mov ebx, dword [esi + 4]
cmp byte [ebx + 4], 0x26
je 0x4207a0
lea edx, [ebx + 0x10]
xor esi, esi
jmp 0x42078b
movzx eax, byte [edx + 4]
add edx, 0x10
cmp al, 0x26
je 0x420797
add esi, 1
cmp esi, ecx
jne 0x420780
call fcn.00460000
mov dword [esp + 0x24], esi
jmp 0x41f4cd
mov dword [esp + 0x24], 0
jmp 0x41f4cd
mov dword [esp + 0x28], 0
mov dword [esp + 0x20], 0
jmp 0x41fdcf
mov edi, dword [esp + 0x24]
mov dword [esp], edi
call fcn.0041ede0
movzx eax, byte [esp + 0x30]
mov byte [edi + 0x25a], al
jmp 0x41fd9f
cmp byte [ebp + 8], 0
je 0x420573
jmp 0x420563
mov eax, dword [ebp + 4]
lea edi, [edx*8]
mov dword [esp + 4], edi
lea ebx, [edx + edx]
mov dword [esp], eax
call fcn.00439240
mov dword [ebp + 4], eax
mov eax, dword [esp + 0x24]
cmp byte [eax + 0x26d], 0
je 0x42064a
mov eax, dword [ebp + 0x18]
test eax, eax
je 0x42086a
mov dword [esp + 4], edi
mov dword [esp], eax
call fcn.00439240
mov dword [ebp + 0x18], eax
jmp 0x42064a
mov eax, dword [ebp + 0xc]
mov edi, dword [ebp]
lea ebx, [eax + 1]
mov eax, dword [esp + 0x50]
call fcn.0041e0f0
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 0x420637
mov dword [esp], edi
call fcn.004391c0
mov dword [ebp + 0x18], eax
jmp 0x42064a