Function at 0x41eed0
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 0x41f083
test al, 4
jne 0x41f038
mov esi, dword [esp + 0x34]
xor edi, edi
mov esi, dword [esi + 0x18]
test byte [esi + 0x14], 1
mov dword [esp + 0x38], esi
jne 0x41f0c1
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 0x41ef72
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 0x41ef72
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 0x41ef94
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 0x41f1a7
test edi, edi
je 0x41f2c5
cmp byte [ebp + 8], 0
je 0x41f28b
lea eax, [ebp + 0x4c]
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], ebp
jmp 0x41efd2
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.0041dde0
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 0x41f01c
add dword [0x48332c], ebx
test esi, esi
jne 0x41efd0
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 0x41f068
mov eax, dword [ebp + 0x64]
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0x34]
mov dword [esp], eax
mov eax, ebp
call fcn.0041e8d0
add esp, 0x8c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [eax + 0x18]
test byte [eax + 0x14], 1
je 0x41f045
mov eax, dword [ebp + 0xf0]
mov eax, dword [eax - 0x10]
mov dword [esp + 0xa0], eax
jmp 0x41f048
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 0x41f0f7
mov edi, dword [esp + 0x34]
mov dword [esp], ebp
mov dword [esp + 4], edi
call eax
test al, al
je 0x41f0f7
mov eax, dword [esp + 0x34]
movzx eax, word [eax + 0x14]
shr ax, 6
jmp 0x41ef0e
add byte [ebp + 0x10], 1
xor ebx, ebx
add dword [ebp + 0x10c], 1
mov byte [ebp + 0x11], 1
mov dword [esp], ebp
call fcn.00420b00
movzx edx, byte [eax + 4]
cmp dl, 0x53
jne 0x41f126
test ebx, ebx
je 0x41f122
test byte [ebx + 6], 1
jne 0x41f0d2
mov edx, dword [eax + 8]
test edx, edx
cmove ebx, eax
jmp 0x41f0d2
mov eax, dword [ebp + 0x214]
test eax, eax
je 0x41f0b0
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 0x41ef0e
mov ebx, eax
jmp 0x41f0d2
cmp dl, 0x14
je 0x41f329
cmp dl, 0x16
jne 0x41f13e
lea edx, [ebp + 0x170]
cmp eax, edx
jne 0x41f16e
mov dword [esp + 4], 1
mov dword [esp], ebp
call fcn.0041ec60
test ebx, ebx
je 0x41f16e
mov dword [esp + 0xc], 1
mov dword [esp + 8], ebx
mov dword [esp + 4], 0
mov dword [esp], ebp
call fcn.0041e860
sub dword [ebp + 0x10c], 1
xor edi, edi
sub byte [ebp + 0x10], 1
mov byte [ebp + 0x11], 0
cmp byte [ebp + 0x25a], 0
jne 0x41f2f1
test edi, edi
je 0x41f19c
mov dword [esp + 4], edi
mov dword [esp], ebp
call fcn.004243e0
mov byte [ebp + 0x6c], 0
xor eax, eax
jmp 0x41f05d
test al, 0x20
jne 0x420458
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 0x41f2d3
mov esi, dword [esp + 0x24]
lea ecx, [esp + 0x7c]
mov eax, ebp
mov dword [esp + 0x7c], 0
mov edx, esi
call fcn.0041dda0
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.00410fb0
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x41f257
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.0041df00
cmp esi, ebp
jne 0x41f225
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.0041de80
mov eax, dword [esp + 0x24]
add dword [0x48332c], eax
jmp 0x41efad
mov dword [esp], ebp
call fcn.004239f0
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.0041e860
jmp 0x41efbf
mov byte [ebp + 0x6c], 0
mov eax, 1
jmp 0x41f05d
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.0041e860
jmp 0x41f27c
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 0x18]
test byte [eax + 0x14], 4
jne 0x41f18c
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.00421cf0
jmp 0x41f18c
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 0x420109
imul eax, ebx, 0xe4
imul ebx, ebx, 0x1c
mov dword [esp + 4], eax
mov dword [esp], ebp
call fcn.00424410
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 0x41f6af
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 0x41f49c
cmp byte [esp + 0x28], 0
je 0x41f40d
mov eax, dword [esp + 0x2c]
cmp dword [esp + 0x20], eax
ja 0x41f4e6
lea edx, [esp + 0x7c]
mov eax, ebp
call fcn.00420570
mov edx, eax
movzx eax, byte [eax + 4]
cmp al, 0x53
je 0x41f4c0
cmp al, 0x14
je 0x41f4c8
cmp al, 0x15
je 0x41f4d0
cmp al, 0x13
je 0x41f510
cmp al, 0x16
je 0x41f538
cmp al, 0x25
je 0x41f5e6
cmp al, 0x51
je 0x41f5f5
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.0041dd20
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 0x41f3f8
mov dword [esp + 8], 0xfa0
mov dword [esp + 4], ecx
mov dword [esp], ebp
call fcn.004244b0
mov dword [esp + 0x24], eax
mov eax, dword [eax + 8]
mov dword [esi], eax
jmp 0x41f3f8
test ebx, ebx
jne 0x41f456
mov eax, dword [esi]
jmp 0x41f488
add dword [esp + 0x30], 1
jmp 0x41f456
mov ecx, dword [esp + 0x30]
mov eax, ecx
sub eax, 1
test ecx, ecx
je 0x41f538
mov dword [esp + 0x30], eax
jmp 0x41f456
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.0043e330
mov dword [esi + 0x14], eax
jmp 0x41f40d
mov eax, dword [esp + 0x30]
test eax, eax
jne 0x41f456
mov eax, dword [esp + 0x3c]
test byte [eax + 0x14], 2
je 0x41f538
mov eax, dword [esp + 0x3c]
movzx eax, word [eax + 0x10]
cmp dword [esp + 0x44], eax
je 0x41f456
mov esi, edx
test ebx, ebx
je 0x41f55f
mov eax, dword [esp + 0x48]
mov edx, dword [eax]
mov eax, dword [edx + ebx*4 - 4]
cmp byte [eax + 4], 0x53
je 0x41f55a
jmp 0x41f55f
mov eax, dword [edx + ebx*4 - 4]
cmp byte [eax + 4], 0x53
jne 0x41f55f
sub ebx, 1
jne 0x41f550
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.0041dd20
mov eax, dword [esp + 0x3c]
movzx edx, word [eax + 0x10]
movzx eax, dx
cmp dword [esp + 0x44], eax
ja 0x41f5ca
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 0x41f6c9
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 8]
jmp 0x41f3b0
test byte [edx + 6], 0x40
je 0x41f456
jmp 0x41f538
mov dword [esp], ebp
mov dword [esp + 0x4c], edx
call fcn.004239f0
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 0x41f669
mov edx, dword [edi + 8]
mov eax, dword [edi + 0xc]
sub eax, edx
cmp eax, 3
ja 0x41f64a
sub edx, dword [edi + 4]
mov dword [esp], ebp
add edx, edx
mov dword [esp + 4], edx
call fcn.00424410
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 0x41f690
lea edx, [esp + 0x7c]
mov eax, ebp
call fcn.00420570
cmp byte [eax + 4], 0x16
mov ebx, eax
je 0x41f690
test edi, edi
jne 0x41f625
mov dword [esp + 4], pe_nt_image_headers32
mov dword [esp], ebp
call fcn.00424410
mov edx, dword [eax + 8]
mov edi, eax
mov dword [edx], ebx
add dword [edi + 8], 4
cmp byte [ebx + 4], 0x52
jne 0x41f656
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 0x41f486
mov esi, ecx
jmp 0x41f53a
mov dword [esp], 0xc8
call fcn.0043e2b0
mov esi, dword [esp + 0x48]
mov dword [esi + 0x14], eax
mov eax, dword [esi]
jmp 0x41f3c6
mov esi, dword [esp + 0x44]
cmp al, 0x16
mov dword [esp + 0x5c], esi
je 0x420245
cmp dword [esp + 0x44], 1
je 0x420218
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.0041e770
test al, al
je 0x420285
test byte [esi + 0x14], 2
je 0x41f72f
mov eax, dword [esp + 0x3c]
movzx eax, word [eax + 0x10]
cmp dword [esp + 0x44], eax
jb 0x420204
cmp dword [esp + 0x44], 1
je 0x4201e8
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 0x41f7d5
mov eax, dword [esp + 0x58]
xor ebx, ebx
mov esi, dword [eax + 4]
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x41f7b8
mov dword [esp + 0x20], edi
mov edi, esi
mov esi, dword [esp + 0x5c]
mov edx, dword [edi + 4]
test edx, edx
je 0x41f77e
mov dword [esp], edx
call sub.msvcrt.dll_free
mov dword [edi + 4], 0
mov edx, dword [edi + 0x14]
test edx, edx
je 0x41f794
mov dword [esp], edx
call sub.msvcrt.dll_free
mov dword [edi + 0x14], 0
mov edx, dword [edi + 0x18]
test edx, edx
je 0x41f7aa
mov dword [esp], edx
call sub.msvcrt.dll_free
mov dword [edi + 0x18], 0
add ebx, 1
add edi, 0x1c
cmp ebx, esi
jne 0x41f768
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x58]
mov dword [esp], eax
call fcn.00424620
mov eax, dword [esp + 0x34]
movzx eax, word [eax + 0x14]
shr ax, 6
jmp 0x41ef2d
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 0x420418
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 0x420238
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 0x41f84d
add esi, 0x10
cmp esi, dword [esp + 0x2c]
jae 0x41fab7
cmp byte [esi + 4], 0x50
jne 0x41f840
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 0x41fa71
mov eax, dword [ebp + 8]
test eax, eax
jne 0x41f840
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 0x41f8b2
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.004245c0
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 0x41fa1d
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 0x420079
lea edx, [eax - 0x3e]
cmp dl, 4
jbe 0x41f90f
lea edx, [eax - 0x38]
cmp dl, 4
jbe 0x41f90f
mov dword [esp], eax
call fcn.00428e40
test al, al
je 0x4203ef
mov dword [esp], esi
call fcn.00423b20
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 0x42009d
mov eax, dword [ecx + 8]
lea ecx, [ebx - 1]
cmp eax, ecx
je 0x41f954
test edi, edi
cmove edi, esi
test byte [edi + 6], 1
je 0x41f954
mov byte [ebx], 0x20
add ebx, 1
mov ecx, dword [esp + 0x44]
test ecx, ecx
je 0x420056
mov eax, dword [esp + 0x24]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.00424410
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.00423bc0
mov ecx, dword [esp + 0x44]
mov edx, eax
cmp edi, edx
je 0x41f9bd
add edi, 1
movzx eax, byte [edi - 1]
cmp al, 0x22
je 0x41f9b0
cmp al, 0x5c
jne 0x41fa67
mov byte [ebx], 0x5c
add ebx, 2
mov byte [ebx - 1], al
cmp edi, edx
jne 0x41f99d
mov eax, dword [esp + 0x24]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.004243e0
cmp byte [esi + 4], 0x3d
je 0x4200d1
xor edi, edi
mov dword [esp + 0x3c], 0
add dword [esp + 0x30], 1
mov eax, dword [esp + 0x30]
cmp eax, dword [ebp + 0xc]
jb 0x41f8d9
test byte [esp + 0x3c], 1
mov esi, dword [esp + 0x54]
je 0x41fa1d
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.00421cb0
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.004239f0
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 0x41f840
mov byte [ebx], al
add ebx, 1
jmp 0x41f999
test al, 8
jne 0x41faa3
mov eax, dword [esp + 0x38]
cmp esi, dword [eax + 4]
jbe 0x41fa84
test byte [esi - 0xa], 8
jne 0x41faa3
mov eax, dword [ebp + 4]
test eax, eax
je 0x4202a9
mov edi, dword [esp + 0x20]
mov eax, dword [ebp + 0x10]
lea eax, [edi + eax - 1]
mov dword [esp + 0x20], eax
jmp 0x41f840
mov edi, dword [esp + 0x20]
mov eax, dword [ebp + 0xc]
lea eax, [edi + eax - 1]
mov dword [esp + 0x20], eax
jmp 0x41f840
mov edi, dword [esp + 0x4c]
mov ebp, dword [esp + 0x24]
movzx eax, byte [ebp + 0x26d]
test eax, eax
mov dword [esp + 0x50], eax
je 0x41ff71
mov esi, dword [esp + 0x20]
lea ecx, [esp + 0x78]
mov eax, ebp
mov edx, esi
call fcn.0041dda0
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.00410fb0
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 0x41fe3b
mov dword [esp + 0x6c], edi
jmp 0x41fb97
cmp byte [ebp + 0x26d], 1
mov edx, dword [esp + 0x20]
jbe 0x41fcc0
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.0041df00
add dword [esp + 0x20], 1
add esi, 0x10
cmp esi, dword [esp + 0x2c]
jae 0x41fe37
cmp byte [esi + 4], 0x50
jne 0x41fb50
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 0x41fdfa
cmp byte [ebp + 0x26d], 0
lea edi, [eax + 8]
setne byte [esp + 0x28]
jne 0x41ffcb
mov dword [esp + 0x4c], 0
mov ebx, 1
mov dword [esp + 0x48], 1
mov dword [esp + 0x54], 0
cmp byte [ebp + 8], 0
je 0x41fbf4
cmp byte [ebp + 9], 0
je 0x41fc07
mov eax, dword [esp + 0x38]
cmp esi, dword [eax + 4]
je 0x41fc07
test byte [esi - 0xa], 8
je 0x41ff22
test ebx, ebx
je 0x41fd56
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 0x41fc70
xor ecx, ecx
test edi, edi
mov ebp, dword [esi]
je 0x41fc3a
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.0041df00
mov eax, dword [esp + 0x48]
test eax, eax
je 0x41fca0
cmp eax, 2
je 0x41fca0
add ebx, 1
cmp ebx, dword [esp + 0x44]
je 0x41fcd1
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x4c]
cmp dword [esp + 0x50], 2
cmovge eax, ebx
cmp byte [ecx + 0x26d], 1
jbe 0x41fcb0
mov ecx, dword [esp + 0x3c]
cmp byte [esp + 0x28], 0
mov edx, dword [ecx]
jne 0x41fc30
mov ecx, dword [edi]
mov ebp, dword [ecx]
jmp 0x41fc3a
add edi, 4
cmp byte [esp + 0x28], 0
lea eax, [esi + 4]
cmovne esi, eax
jmp 0x41fc67
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
sub eax, dword [ecx + 4]
sar eax, 4
jmp 0x41fc89
mov eax, dword [esp + 0x38]
mov edx, esi
sub edx, dword [eax + 4]
sar edx, 4
jmp 0x41fb61
mov esi, dword [esp + 0x3c]
mov ebp, dword [esp + 0x4c]
test byte [esi + 6], 8
je 0x41fcf1
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 0x41fd01
test byte [esi + 6], 8
je 0x41fff3
mov edi, dword [esp + 0x54]
test edi, edi
je 0x41fd49
mov dword [esp], ebp
call fcn.004239f0
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 0x41fe92
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 0x41fb8a
cmp byte [ebp + 0x26a], 0
je 0x41fd87
cmp byte [ebp + 0x268], 0
jne 0x41fd87
mov eax, dword [esp + 0x38]
test byte [eax + 0x14], 4
jne 0x41fd87
mov eax, dword [ebp]
test eax, eax
je 0x420161
cmp byte [eax + 0x3d], 0
je 0x420161
cmp byte [ebp + 0x28a], 0
jle 0x41fded
mov eax, dword [esp + 0x20]
cmp byte [ebp + 0x248], 0
mov dword [esp + 0x44], eax
jne 0x41fcf1
mov eax, dword [esp + 0x38]
test byte [eax + 0x14], 4
jne 0x41fcf1
mov eax, dword [ebp]
test eax, eax
je 0x41fdc4
cmp byte [eax + 0x3d], 0
jne 0x41fcf1
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.00421cf0
mov eax, dword [esp + 0x20]
mov dword [esp + 0x44], eax
jmp 0x41fcf1
and edx, 8
je 0x41fe9e
cmp byte [ebp + 0x26d], 0
mov ebx, dword [eax + 0xc]
mov edi, dword [eax]
setne byte [esp + 0x28]
jne 0x4200e9
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x54], 0
jmp 0x41fbe8
mov edi, dword [esp + 0x6c]
mov ebx, dword [esp + 0x50]
test ebx, ebx
jne 0x420026
mov esi, dword [esp + 0x24]
lea eax, [ebp + 0x4c]
mov ebx, dword [esi + 8]
sub ebx, dword [esi + 4]
call fcn.0041dde0
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 [0x48332c], eax
jmp 0x41f74d
and edx, 0xfffffff7
mov word [eax + 6], dx
jmp 0x41fd43
mov edi, dword [esp + 0x38]
cmp esi, dword [edi + 4]
je 0x41ff96
test byte [esi - 0xa], 8
je 0x41ff96
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 0x41fedf
xor edx, edx
call fcn.0041dd70
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 0x420118
mov ecx, dword [eax - 4]
lea edx, [eax - 4]
mov dword [esp + 0x54], edx
cmp byte [ecx + 4], 0x13
je 0x420390
xor eax, eax
test ebx, ebx
cmovne edx, eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x54], edx
jmp 0x41fbe8
mov dword [esp], ebp
call fcn.004239f0
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 0x420150
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.0041df00
jmp 0x41fc07
mov edx, dword [esp + 0x20]
xor ecx, ecx
mov eax, ebp
call fcn.0041dda0
mov dword [esp + 0x30], 0
mov dword [esp + 0x24], eax
mov eax, dword [eax + 4]
mov dword [esp + 0x64], eax
jmp 0x41fb20
cmp byte [ebp + 0x26d], 0
mov ebx, dword [eax + 0x10]
mov edi, dword [eax + 4]
setne byte [esp + 0x28]
jne 0x42012d
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 2
mov dword [esp + 0x54], 0
jmp 0x41fbe8
mov edx, 1
mov ebx, 1
call fcn.0041dd70
mov dword [esp + 0x48], 1
mov dword [esp + 0x54], 0
mov dword [esp + 0x4c], eax
jmp 0x41fbe8
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.0041df00
jmp 0x41fd01
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.0041de80
jmp 0x41fe7a
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.00423bc0
mov ebx, eax
jmp 0x41f9cd
test edi, edi
je 0x4203e7
test byte [edi + 6], 1
jne 0x41f9e1
mov esi, dword [esi + 8]
mov eax, 0
test esi, esi
cmove edi, eax
jmp 0x41f9e1
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.004245c0
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x64]
mov eax, dword [eax + 0x28]
mov eax, dword [eax + 8]
add ebx, eax
jmp 0x41f93c
mov eax, dword [esi + 0xc]
cmp byte [eax], 0x5c
jne 0x41f9d7
add dword [esp + 0x3c], 1
xor edi, edi
jmp 0x41f9e1
xor edx, edx
call fcn.0041dd70
mov dword [esp + 0x48], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x4c], eax
jmp 0x41fbe8
mov ebx, 0x1c
mov eax, 0xe4
jmp 0x41f35a
mov dword [esp + 0x48], 0
mov dword [esp + 0x54], 0
jmp 0x41fbe8
mov edx, 2
call fcn.0041dd70
mov dword [esp + 0x48], 2
mov dword [esp + 0x54], 0
mov dword [esp + 0x4c], eax
jmp 0x41fbe8
mov ecx, dword [esp + 0x38]
mov edx, esi
sub edx, dword [ecx + 4]
sar edx, 4
jmp 0x41ff48
cmp byte [ebp + 0x248], 0
jne 0x4201b2
mov eax, dword [esp + 0x20]
cmp byte [ebp + 0x28a], 0
mov dword [esp + 0x44], eax
je 0x41fcf1
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.00421d30
jmp 0x41fcf1
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.00421d30
mov eax, dword [esp + 0x20]
mov dword [esp + 0x44], eax
jmp 0x41fcf1
mov esi, dword [esp + 0x54]
mov edx, dword [esi + 0xc]
test edx, edx
jne 0x41f72f
cmp byte [ebp + 0x269], 0
jne 0x41f72f
imul eax, eax, 0x1c
mov esi, dword [esp + 0x54]
mov dword [esi + eax - 0x1c], 0
jmp 0x41f72f
test dx, dx
jne 0x41f6e4
mov eax, dword [esp + 0x54]
mov ecx, dword [eax + 0xc]
xor eax, eax
test ecx, ecx
setne al
mov dword [esp + 0x44], eax
jmp 0x41f6e4
mov eax, dword [esp + 0x20]
mov dword [esp + 0x28], eax
jmp 0x41fabf
mov eax, dword [ebp + 0x4c]
mov ebx, dword [eax + 4]
test ebx, ebx
je 0x4204ce
mov dword [esp + 4], 1
mov dword [esp], ebp
call fcn.0041ec60
mov eax, dword [esp + 0x34]
mov eax, dword [eax]
mov dword [esp + 8], 0x478300
mov dword [esp + 4], 3
mov dword [esp], ebp
mov dword [esp + 0xc], eax
call fcn.00421cb0
mov eax, dword [esp + 0x58]
mov dword [esp], ebp
mov dword [esp + 4], eax
call fcn.004243e0
mov byte [ebp + 0x11], 0
sub dword [ebp + 0x10c], 1
sub byte [ebp + 0x10], 1
jmp 0x41f17f
mov edi, dword [ebp + 0xc]
mov eax, dword [esp + 0x24]
test edi, edi
movzx ebx, byte [eax + 0x26d]
je 0x41fa8f
cmp byte [eax + 0x25a], 0
mov edi, eax
mov byte [eax + 0x25a], 0
mov dword [esp], 0x400
setne byte [esp + 0x30]
call fcn.0043e2b0
mov dword [ebp + 4], eax
cmp byte [edi + 0x26d], 0
je 0x4202fb
mov dword [esp], 0x400
call fcn.0043e2b0
mov dword [ebp + 0x18], eax
test bl, bl
je 0x420525
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.0041de80
mov eax, dword [ebp + 0x10]
mov ebx, 0x100
lea edx, [eax + 1]
cmp ebx, edx
jb 0x4204dd
mov edi, dword [esp + 0x24]
lea edx, [esp + 0x7c]
mov eax, edi
call fcn.00420570
cmp byte [eax + 4], 0x16
je 0x4204b2
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.0041dd20
mov eax, dword [ebp + 0x10]
add eax, 1
mov dword [ebp + 0x10], eax
jmp 0x42032f
mov ecx, dword [esp + 0x38]
test byte [ecx + 0x14], 2
je 0x41ff0e
movzx ecx, word [ecx + 0x10]
cmp dword [esi + 8], ecx
jne 0x41ff0e
test edi, edi
je 0x4203c1
mov ecx, dword [edi]
mov dword [esp + 0x48], 0
test ecx, ecx
jne 0x41fbe8
cmp dword [esp + 0x3c], eax
jae 0x420118
mov eax, dword [esp + 0x24]
mov dword [esp + 0x48], 0
mov dword [esp + 0x54], 0
mov dword [eax + 8], edx
jmp 0x41fbe8
mov edi, dword [esi + 8]
jmp 0x41f9e1
movzx eax, byte [esi + 4]
mov dword [esp], eax
call fcn.00428e50
test al, al
jne 0x41f90f
mov dword [esp], esi
call fcn.00423b20
mov dword [esp + 0x44], 0
jmp 0x41f922
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x420482
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 4]
cmp byte [eax + 4], 0x26
mov dword [esp + 0x2c], eax
je 0x42049d
add eax, 0x10
xor ebx, ebx
add ebx, 1
cmp ebx, ecx
je 0x420482
mov edx, eax
add eax, 0x10
cmp byte [edx + 4], 0x26
jne 0x420435
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x2c], edx
jmp 0x41f810
mov ecx, dword [esi + 0xc]
test ecx, ecx
je 0x420482
mov ebx, dword [esi + 4]
cmp byte [ebx + 4], 0x26
je 0x420490
lea edx, [ebx + 0x10]
xor esi, esi
jmp 0x42047b
movzx eax, byte [edx + 4]
add edx, 0x10
cmp al, 0x26
je 0x420487
add esi, 1
cmp esi, ecx
jne 0x420470
call fcn.0046a410
mov dword [esp + 0x24], esi
jmp 0x41f1bd
mov dword [esp + 0x24], 0
jmp 0x41f1bd
mov dword [esp + 0x28], 0
mov dword [esp + 0x20], 0
jmp 0x41fabf
mov edi, dword [esp + 0x24]
mov dword [esp], edi
call fcn.0041ead0
movzx eax, byte [esp + 0x30]
mov byte [edi + 0x25a], al
jmp 0x41fa8f
cmp byte [ebp + 8], 0
je 0x420263
jmp 0x420253
mov eax, dword [ebp + 4]
lea edi, [edx*8]
mov dword [esp + 4], edi
lea ebx, [edx + edx]
mov dword [esp], eax
call fcn.0043e330
mov dword [ebp + 4], eax
mov eax, dword [esp + 0x24]
cmp byte [eax + 0x26d], 0
je 0x42033a
mov eax, dword [ebp + 0x18]
test eax, eax
je 0x42055a
mov dword [esp + 4], edi
mov dword [esp], eax
call fcn.0043e330
mov dword [ebp + 0x18], eax
jmp 0x42033a
mov eax, dword [ebp + 0xc]
mov edi, dword [ebp]
lea ebx, [eax + 1]
mov eax, dword [esp + 0x50]
call fcn.0041dde0
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 0x420327
mov dword [esp], edi
call fcn.0043e2b0
mov dword [ebp + 0x18], eax
jmp 0x42033a