Function at 0x40cb40
Capabilities:
Encode data using base64
Parse credit card information
Resolve function by parsing pe exports
Write file on windows

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0xdc
mov edi, dword [esp + 0xf4]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], edx
mov dword [esp + 0x34], ecx
mov ebp, dword [esp + 0xf0]
test edi, edi
je 0x40cb6e
mov dword [edi], 0
mov ebx, dword [ebp]
mov eax, dword [esp + 0x28]
mov dword [eax + 0xd8], 0
movzx edx, byte [ebx]
test byte [edx + edx + 0x4e2820], 4
mov eax, edx
jne 0x40cbf0
cmp dl, 0x2d
setne dl
cmp al, 0x28
setne al
test dl, al
je 0x40cbf0
mov dword [esp + 0xb0], 0xffffffff
mov dword [esp + 0xac], 0xffffffff
mov esi, ebx
movzx eax, byte [ebx]
xor edi, edi
mov dword [esp + 0x30], 0xffffffff
mov byte [esp + 0x38], al
lea eax, [esi + 1]
mov dword [esp + 0x3c], eax
mov dword [ebp], eax
movzx eax, byte [esp + 0x38]
sub eax, 0x23
cmp al, 0x55
ja case.0x40cbe3.1
movzx eax, al
jmp dword [eax*4 + 0x4b8ac8]
lea edx, [esp + 0xac]
mov eax, ebp
call fcn.0040a360
test eax, eax
je 0x40ce20
mov esi, dword [ebp]
cmp byte [esi], 0x3d
jne 0x40ce30
test edi, edi
je 0x40cc47
mov eax, dword [esp + 0xac]
test eax, eax
js 0x40cc47
mov eax, dword [esp + 0xb0]
test eax, eax
js 0x40cc47
mov eax, dword [esp + 0x28]
lea ecx, [esp + 0xac]
lea edx, [eax + 0x48]
add eax, 0x44
call fcn.0040a500
mov dword [edi], eax
mov esi, dword [ebp]
add esi, 1
xor edi, edi
mov dword [esp + 0x30], 0xffffffff
mov dword [ebp], esi
mov dword [esp + 0x38], ebx
movzx eax, byte [esi]
cmp al, 0x40
jne 0x40d8f1
movzx ecx, byte [esi + 1]
lea eax, [esi + 1]
test byte [ecx + ecx + 0x4e2820], 4
mov edx, ecx
jne 0x40d772
cmp cl, 0x28
sete bl
cmp cl, 0x2d
sete cl
or bl, cl
je 0x40cca0
jmp 0x40d772
test dl, dl
je 0x40ce53
add eax, 1
movzx edx, byte [eax]
cmp dl, 0x3b
jne 0x40cc92
add eax, 1
mov dword [ebp], eax
movzx edx, byte [esi + 1]
cmp dl, 0x53
je 0x40ce75
cmp dl, 0x73
jne 0x40cce2
add esi, 2
mov dword [esp], esi
call sub.msvcrt.dll_atoi
lea edx, [eax + 7]
test eax, eax
cmovs eax, edx
sar eax, 3
test eax, eax
mov dword [esp + 0x30], eax
mov eax, dword [ebp]
jle 0x40ce81
mov esi, eax
jmp 0x40cc5b
xor edx, edx
mov eax, ebp
call fcn.0040a2c0
mov edi, dword [ebp]
mov dword [esp + 0x80], eax
mov dword [esp + 0x6c], 0
cmp byte [edi], 0x21
mov dword [esp + 0x50], edi
je 0x40dd03
mov dword [esp], 0x28
xor edi, edi
call fcn.004a91f0
mov dword [esp + 0x88], 0
mov dword [esp + 0x40], eax
mov dword [esp + 0x3c], 0xa
mov esi, dword [ebp]
movzx eax, byte [esi]
cmp al, 0x3b
je 0x40e055
lea ebx, [edi + 1]
cmp dword [esp + 0x3c], ebx
jbe 0x40d8a5
cmp al, 0x24
je 0x40d83d
cmp al, 0x2e
je 0x40d83d
mov dword [esp + 4], 0x3a
mov dword [esp], esi
call sub.msvcrt.dll_strchr
test eax, eax
mov ecx, eax
je 0x40ee20
cmp byte [eax + 1], 0x3a
je 0x40e055
mov eax, dword [esp + 0x40]
mov edx, ecx
mov dword [esp + 0x48], ecx
xor esi, esi
lea eax, [eax + edi*4]
mov edi, dword [ebp]
mov dword [esp + 0x4c], eax
sub edx, edi
mov eax, edi
call fcn.0040a280
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x44], eax
lea eax, [ecx + 1]
mov dword [ebp], eax
cmp byte [ecx + 1], 0x2f
je 0x40d8fe
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
xor ecx, ecx
mov dword [esp + 4], 0
mov dword [esp], ebp
call fcn.0040cb40
test eax, eax
mov ecx, eax
je 0x40ce10
mov eax, dword [ebp]
movzx edx, byte [eax]
cmp dl, 0x3a
je 0x40d9e8
cmp dl, 0x2c
je 0x40d957
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 8], edi
mov dword [esp + 4], str.Bad_stab:__s_n
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov eax, dword [esp + 0x44]
mov dword [esp], eax
call fcn.004abfa8
lea esi, [esi]
xor ebx, ebx
add esp, 0xdc
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
lea ecx, [esp + 0xac]
call fcn.0040a620
add esp, 0xdc
mov ebx, eax
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
mov ebx, dword [esp + 0x38]
mov dword [esp + 8], ebx
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 4], str.Bad_stab:__s_n
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
jmp 0x40ce20
mov edi, 1
mov esi, eax
jmp 0x40cc5b
mov dword [esp + 0x30], 0xffffffff
mov esi, eax
jmp 0x40cc5b
mov edi, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
xor ecx, ecx
mov dword [esp + 4], 0
mov dword [esp], ebp
mov eax, edi
call fcn.0040cb40
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.00409760
mov ebx, eax
lea esi, [esi]
test ebx, ebx
je 0x40ce20
cmp dword [esp + 0xac], 0xffffffff
je 0x40cef2
mov eax, dword [esp + 0x28]
lea ecx, [esp + 0xac]
lea edx, [eax + 0x48]
add eax, 0x44
call fcn.0040a500
test eax, eax
je 0x40ce20
mov dword [eax], ebx
mov eax, dword [esp + 0x30]
cmp eax, 0xffffffff
je 0x40ce22
mov dword [esp + 8], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.00409bd0
test eax, eax
je 0x40ce20
add esp, 0xdc
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
xor edx, edx
mov eax, ebp
call fcn.0040a2c0
mov ebx, eax
mov eax, dword [ebp]
cmp byte [eax], 0x3b
jne 0x40d891
xor edx, edx
mov eax, ebp
call fcn.0040a2c0
mov edx, dword [ebp]
cmp byte [edx], 0x3b
jne 0x40d891
mov dword [esp + 4], eax
mov eax, dword [esp + 0x2c]
sub ebx, 3
cmp ebx, 2
mov dword [esp], eax
jbe 0x40dafd
call fcn.00409300
mov ebx, eax
jmp 0x40cec0
mov ebx, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
xor ecx, ecx
mov dword [esp + 4], 0
mov dword [esp], ebp
mov eax, ebx
call fcn.0040cb40
mov dword [esp], ebx
mov dword [esp + 8], edi
mov dword [esp + 4], eax
call fcn.00409630
mov ebx, eax
jmp 0x40cec0
cmp byte [esi + 1], 0x23
je 0x40da94
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
xor ecx, ecx
mov dword [esp + 4], 0
mov dword [esp], ebp
call fcn.0040cb40
test eax, eax
mov dword [esp + 0x38], eax
je 0x40ce20
mov eax, dword [ebp]
cmp byte [eax], 0x2c
jne case.0x40cbe3.1
add eax, 1
mov edx, dword [esp + 0x28]
xor ecx, ecx
mov dword [ebp], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 4], 0
mov dword [esp], ebp
call fcn.0040cb40
test eax, eax
mov dword [esp + 0x3c], eax
je 0x40ce20
xor edi, edi
mov dword [esp], 0x28
call fcn.004a91f0
mov esi, edi
mov dword [esp + 0x34], 0xa
mov edi, eax
mov dword [esp + 0x40], ebx
jmp 0x40d05b
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
xor ecx, ecx
lea esi, [edi + esi*4]
mov dword [esp + 4], 0
mov dword [esp], ebp
call fcn.0040cb40
test eax, eax
mov dword [esi], eax
je 0x40ce20
mov esi, ebx
mov eax, dword [ebp]
movzx edx, byte [eax]
cmp dl, 0x3b
je 0x40dd2b
cmp dl, 0x2c
jne 0x40dd8a
add eax, 1
lea ebx, [esi + 1]
cmp dword [esp + 0x34], ebx
mov dword [ebp], eax
ja 0x40d032
add dword [esp + 0x34], 0xa
mov dword [esp], edi
mov eax, dword [esp + 0x34]
shl eax, 2
mov dword [esp + 4], eax
call fcn.004a9270
mov edi, eax
jmp 0x40d032
mov edi, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
xor ecx, ecx
mov dword [esp + 4], 0
mov dword [esp], ebp
mov eax, edi
call fcn.0040cb40
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.00409530
mov ebx, eax
jmp 0x40cec0
lea edx, [esp + 0xb4]
mov dword [ebp], esi
mov eax, ebp
call fcn.0040a360
test eax, eax
je 0x40ce20
mov eax, dword [esp + 0xb4]
cmp dword [esp + 0xac], eax
jne 0x40d10a
mov eax, dword [esp + 0xb8]
cmp dword [esp + 0xb0], eax
je 0x40eb0b
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
xor ecx, ecx
mov dword [ebp], esi
mov dword [esp + 4], 0
mov dword [esp], ebp
call fcn.0040cb40
test eax, eax
mov ebx, eax
je 0x40ce20
cmp dword [esp + 0xac], 0xffffffff
je 0x40cec0
mov eax, dword [esp + 0x28]
lea ecx, [esp + 0xac]
lea edx, [eax + 0x48]
add eax, 0x44
call fcn.0040a500
test eax, eax
je 0x40ce20
mov dword [eax], ebx
jmp 0x40cec0
mov edi, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
xor ecx, ecx
mov dword [esp + 4], 0
mov dword [esp], ebp
mov eax, edi
call fcn.0040cb40
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.00409480
mov ebx, eax
jmp 0x40cec0
mov edi, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
xor ecx, ecx
mov dword [esp + 4], 0
mov dword [esp], ebp
mov eax, edi
call fcn.0040cb40
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.00409730
mov ebx, eax
jmp 0x40cec0
lea eax, [esp + 0xb4]
mov dword [esp + 0x4c], eax
mov edx, eax
mov eax, ebp
call fcn.0040a360
test eax, eax
je 0x40ce20
mov eax, dword [esp + 0xac]
cmp dword [esp + 0xb4], eax
mov dword [esp + 0x44], 0
je 0x40dc80
mov esi, dword [ebp]
mov dword [esp + 0x40], 0
movzx eax, byte [esi]
cmp al, 0x3d
je 0x40de42
cmp al, 0x3b
je 0x40dc9d
lea edx, [esp + 0xa4]
mov eax, ebp
call fcn.0040a2c0
mov ebx, eax
mov eax, dword [ebp]
cmp byte [eax], 0x3b
jne 0x40d891
add eax, 1
lea edx, [esp + 0xa8]
mov dword [esp + 0x48], eax
mov dword [ebp], eax
mov eax, ebp
call fcn.0040a2c0
mov dword [esp + 0x38], eax
mov eax, dword [ebp]
cmp byte [eax], 0x3b
jne 0x40d891
add eax, 1
mov dword [ebp], eax
mov eax, dword [esp + 0xa4]
test eax, eax
jne 0x40d278
mov ecx, dword [esp + 0xa8]
test ecx, ecx
je 0x40d2ac
mov edx, dword [esp + 0x40]
test edx, edx
je 0x40dd93
mov eax, dword [esp + 0x3c]
mov dword [esp + 8], str.numeric_overflow
mov dword [esp + 4], str.Warning:__s:__s_n
mov dword [esp + 0xc], eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov ebp, dword [esp + 0x40]
test ebp, ebp
je 0x40de7a
mov esi, dword [esp + 0x44]
test esi, esi
jne 0x40d891
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
call fcn.0040a620
test eax, eax
je 0x40ee9c
mov ecx, dword [esp + 0x38]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ecx
mov dword [esp], eax
call fcn.00409560
mov ebx, eax
jmp 0x40cec0
cmp byte [esi + 1], 0x72
jne case.0x40cbe3.1
add esi, 2
lea edx, [esp + 0xb4]
lea eax, [esp + 0xa8]
mov dword [ebp], esi
mov dword [esp + 0xa8], esi
call fcn.0040a360
test eax, eax
je 0x40ce20
mov eax, dword [esp + 0xb4]
test eax, eax
jne 0x40d8cd
mov eax, dword [esp + 0xb8]
test eax, eax
jne 0x40d8cd
mov eax, dword [ebp]
cmp byte [eax], 0x3d
je 0x40d8cd
mov eax, dword [esp + 0x2c]
mov dword [esp + 4], 0x4b80c9
mov dword [esp], eax
call fcn.00409c20
test eax, eax
mov ebx, eax
je 0x40f641
mov eax, dword [esp + 0xa8]
mov dword [ebp], eax
cmp byte [eax], 0x3b
jne 0x40db09
lea edx, [eax + 1]
mov dword [ebp], edx
movzx ecx, byte [eax + 1]
test byte [ecx + ecx + 0x4e2820], 4
jne 0x40dd6a
cmp cl, 0x2d
je 0x40dd6a
add eax, 2
mov dword [esp + 0x34], 1
mov dword [ebp], eax
xor edx, edx
mov eax, ebp
call fcn.0040a2c0
mov dword [esp + 0x38], eax
mov eax, dword [ebp]
cmp byte [eax], 0x3b
jne 0x40db09
lea edx, [eax + 1]
mov dword [ebp], edx
movzx ecx, byte [eax + 1]
test byte [ecx + ecx + 0x4e2820], 4
jne 0x40d3fc
cmp cl, 0x2d
je 0x40d3fc
add eax, 2
mov dword [esp + 0x34], 1
mov dword [ebp], eax
xor edx, edx
mov eax, ebp
call fcn.0040a2c0
mov dword [esp + 0x3c], eax
mov eax, dword [ebp]
cmp byte [eax], 0x3b
jne 0x40db09
add eax, 1
mov edx, dword [esp + 0x28]
xor ecx, ecx
mov dword [ebp], eax
mov dword [esp], ebp
mov ebp, dword [esp + 0x2c]
mov dword [esp + 4], 0
mov eax, ebp
call fcn.0040cb40
test eax, eax
je 0x40ce20
mov esi, dword [esp + 0x34]
mov ecx, 0
mov edx, 0xffffffff
mov dword [esp + 8], ebx
mov dword [esp + 0x14], edi
mov dword [esp + 4], eax
mov dword [esp], ebp
test esi, esi
cmove ecx, dword [esp + 0x38]
cmove edx, dword [esp + 0x3c]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], edx
call fcn.004095c0
mov ebx, eax
jmp 0x40cec0
movzx eax, byte [esi + 1]
cmp al, 0x73
je 0x40da74
cmp al, 0x75
jne 0x40d891
mov ebx, 1
lea eax, [esi + 2]
mov dword [ebp], eax
movzx eax, byte [esi + 2]
lea edx, [eax - 0x62]
cmp dl, 1
jbe 0x40da69
cmp al, 0x76
je 0x40da69
xor edx, edx
mov eax, ebp
call fcn.0040a2c0
mov eax, dword [ebp]
cmp byte [eax], 0x3b
jne 0x40d891
add eax, 1
xor edx, edx
mov dword [ebp], eax
mov eax, ebp
call fcn.0040a2c0
mov eax, dword [ebp]
cmp byte [eax], 0x3b
jne 0x40d891
add eax, 1
xor edx, edx
mov dword [ebp], eax
mov eax, ebp
call fcn.0040a2c0
mov edx, dword [ebp]
cmp byte [edx], 0x3b
je 0x40de37
test eax, eax
je 0x40dd77
mov dword [esp + 8], ebx
shr eax, 3
mov dword [esp + 4], eax
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call fcn.004092e0
mov ebx, eax
jmp 0x40cec0
movzx eax, byte [esi + 1]
mov dword [esp + 0x38], 7
cmp al, 0x73
je 0x40d57f
cmp al, 0x75
mov dword [esp + 0x38], 8
je 0x40d57f
cmp al, 0x65
mov dword [esp + 0x38], 0xb
je 0x40d57f
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 0xc], ebx
mov dword [esp + 8], str.unrecognized_cross_reference_type
mov dword [esp + 4], str.Warning:__s:__s_n
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov eax, dword [ebp]
mov dword [esp + 0x38], 7
mov dword [esp + 0x3c], eax
mov edi, dword [esp + 0x3c]
add edi, 1
mov dword [ebp], edi
mov dword [esp + 4], 0x3c
mov dword [esp], edi
call sub.msvcrt.dll_strchr
mov dword [esp + 4], 0x3a
mov dword [esp], edi
mov dword [esp + 0x3c], eax
call sub.msvcrt.dll_strchr
test eax, eax
mov esi, eax
mov ecx, dword [esp + 0x3c]
je case.0x40cbe3.1
test ecx, ecx
je 0x40d5cd
cmp ecx, eax
jae 0x40d5cd
cmp byte [eax + 1], 0x3a
je 0x40ddee
mov eax, dword [esp + 0x34]
mov ebx, esi
sub ebx, edi
test eax, eax
je 0x40d609
mov eax, dword [esp + 0x34]
mov dword [esp + 8], ebx
mov dword [esp + 4], edi
mov dword [esp], eax
call sub.msvcrt.dll_strncmp
test eax, eax
jne 0x40d609
mov eax, dword [esp + 0x34]
cmp byte [eax + ebx], 0
jne 0x40d609
mov eax, dword [esp + 0x28]
mov dword [eax + 0xd8], 1
mov eax, dword [esp + 0x28]
mov dword [esp], ebx
mov ecx, edi
add esi, 1
lea edx, [eax + 0xd4]
mov eax, dword [esp + 0x38]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x2c]
call fcn.0040aae0
mov dword [ebp], esi
mov ebx, eax
jmp 0x40cec0
cmp byte [esi + 1], 0x2d
je 0x40da7b
mov dword [esp], 0x28
call fcn.004a91f0
mov dword [esp], 0x28
mov dword [esp + 0x38], eax
call fcn.004a91f0
mov dword [esp + 0x40], eax
mov eax, dword [ebp]
movzx edx, byte [eax]
test dl, dl
setne bl
cmp dl, 0x3b
setne cl
test bl, cl
je 0x40ee51
cmp dl, 0x2c
je 0x40ee51
mov dword [esp + 0x34], 0xa
xor ebx, ebx
lea esi, [esi]
cmp dl, 0x3a
je 0x40d89e
test dl, dl
mov esi, eax
jne 0x40d6a8
jmp 0x40d89e
test dl, dl
je 0x40d6b3
add esi, 1
movzx edx, byte [esi]
cmp dl, 0x3a
jne 0x40d6a4
test dl, dl
je 0x40dce1
mov edx, esi
add esi, 1
sub edx, eax
call fcn.0040a280
xor edx, edx
mov edi, eax
mov dword [ebp], esi
mov eax, ebp
call fcn.0040a2c0
mov edx, eax
mov eax, dword [ebp]
cmp byte [eax], 0x2c
jne 0x40dca8
add eax, 1
lea esi, [ebx + 1]
cmp esi, dword [esp + 0x34]
mov dword [ebp], eax
jae 0x40d7f0
mov eax, dword [esp + 0x38]
add ebx, 0x40000000
mov dword [eax + ebx*4], edi
mov eax, dword [esp + 0x40]
mov dword [eax + ebx*4], edx
mov eax, dword [ebp]
movzx edx, byte [eax]
test dl, dl
setne bl
cmp dl, 0x3b
setne cl
test bl, cl
je 0x40db12
cmp dl, 0x2c
je 0x40db12
mov ebx, esi
jmp 0x40d690
mov edi, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
xor ecx, ecx
mov dword [esp + 4], 0
mov dword [esp], ebp
mov eax, edi
call fcn.0040cb40
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov dword [esp], edi
call fcn.004094d0
mov ebx, eax
jmp 0x40cec0
mov ebx, dword [esp + 0x38]
mov dword [ebp], eax
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
xor ecx, ecx
mov dword [esp + 4], 0
mov dword [esp], ebp
call fcn.0040cb40
test eax, eax
mov esi, eax
je 0x40ce20
mov eax, dword [ebp]
cmp byte [eax], 0x2c
jne case.0x40cbe3.1
mov edi, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
add eax, 1
mov dword [ebp], eax
xor ecx, ecx
mov dword [esp + 4], 0
mov dword [esp], ebp
mov eax, edi
call fcn.0040cb40
test eax, eax
je 0x40ce20
mov dword [esp + 8], eax
mov dword [esp + 4], esi
mov dword [esp], edi
call fcn.00409680
mov ebx, eax
jmp 0x40cec0
add dword [esp + 0x34], 0xa
mov dword [esp + 0x48], edx
mov eax, dword [esp + 0x34]
lea ecx, [eax*4]
mov eax, dword [esp + 0x38]
mov dword [esp + 4], ecx
mov dword [esp + 0x44], ecx
mov dword [esp], eax
call fcn.004a9270
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.004a9270
mov edx, dword [esp + 0x48]
mov dword [esp + 0x40], eax
jmp 0x40d6f6
cmp byte [esi + 1], 0x5f
je 0x40cd61
mov eax, dword [esp + 0x40]
add dword [ebp], 1
lea esi, [eax + edi*4]
mov dword [esi], 0
mov edi, dword [ebp]
cmp byte [edi], 0x76
je 0x40db5a
mov dword [esp + 8], edi
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 4], str.Bad_stab:__s_n
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call fcn.004abfa8
jmp 0x40ce20
mov eax, dword [esp + 0x3c]
mov dword [esp + 8], eax
jmp 0x40ce5b
mov esi, eax
jmp 0x40d6b3
add dword [esp + 0x3c], 0xa
mov eax, dword [esp + 0x3c]
shl eax, 2
mov dword [esp + 4], eax
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call fcn.004a9270
mov dword [esp + 0x40], eax
movzx eax, byte [esi]
jmp 0x40cd51
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
xor ecx, ecx
mov dword [esp + 4], 0
mov dword [esp], ebp
call fcn.0040cb40
mov ebx, eax
mov eax, dword [ebp]
jmp 0x40d384
mov ebx, dword [esp + 0x38]
mov byte [esp + 0x38], al
jmp 0x40cbc6
lea eax, [ecx + 2]
mov esi, 1
mov dword [ebp], eax
movzx edx, byte [ecx + 2]
cmp dl, 0x31
je 0x40d94c
xor esi, esi
cmp dl, 0x32
je 0x40d94c
cmp dl, 0x30
mov esi, 2
je 0x40d94c
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 0xc], edi
xor esi, esi
mov dword [esp + 8], str.unknown_visibility_character_for_field
mov dword [esp + 4], str.Warning:__s:__s_n
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov eax, dword [ebp]
add eax, 1
mov dword [ebp], eax
jmp 0x40cdbc
add eax, 1
xor edx, edx
mov dword [esp + 0x54], ecx
mov dword [ebp], eax
mov eax, ebp
call fcn.0040a2c0
mov dword [esp + 0x48], eax
mov eax, dword [ebp]
mov ecx, dword [esp + 0x54]
cmp byte [eax], 0x2c
jne 0x40cdf4
add eax, 1
xor edx, edx
mov dword [esp + 0x54], ecx
mov dword [ebp], eax
mov eax, ebp
call fcn.0040a2c0
mov edx, dword [ebp]
mov ecx, dword [esp + 0x54]
cmp byte [edx], 0x3b
jne 0x40cdf4
add edx, 1
mov dword [ebp], edx
mov edx, dword [esp + 0x48]
mov dword [esp + 0x10], eax
mov dword [esp + 8], ecx
mov edi, edx
mov dword [esp + 0xc], edx
or edi, eax
mov eax, dword [esp + 0x44]
mov edi, 3
cmove esi, edi
mov edi, ebx
mov dword [esp + 0x14], esi
mov dword [esp + 4], eax
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call fcn.004097c0
mov ecx, dword [esp + 0x4c]
mov dword [ecx], eax
jmp 0x40cd36
add eax, 1
mov dword [esp + 0x54], ecx
mov dword [ebp], eax
mov dword [esp + 4], 0x3b
mov dword [esp], eax
mov dword [esp + 0x48], eax
call sub.msvcrt.dll_strchr
test eax, eax
mov ecx, dword [esp + 0x54]
je 0x40cdf4
mov edi, eax
mov edx, eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x54], ecx
sub edx, eax
call fcn.0040a280
mov edx, edi
mov ecx, dword [esp + 0x54]
mov edi, ebx
add edx, 1
mov dword [ebp], edx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 8], ecx
mov dword [esp + 0x10], esi
mov dword [esp + 4], eax
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call fcn.00409830
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x88], 1
mov dword [ecx], eax
jmp 0x40cd36
add esi, 3
mov dword [ebp], esi
jmp 0x40d4b3
xor ebx, ebx
jmp 0x40d495
add esi, 2
nop
mov dword [ebp], esi
add esi, 1
cmp byte [esi - 1], 0x3a
jne 0x40da80
mov dword [ebp], esi
jmp 0x40d640
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
add esi, 2
mov dword [ebp], esi
xor ecx, ecx
mov dword [esp + 4], 0
mov dword [esp], ebp
call fcn.0040cb40
test eax, eax
je 0x40ce20
mov edx, dword [ebp]
cmp byte [edx], 0x3b
jne case.0x40cbe3.1
add edx, 1
mov dword [ebp], edx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call fcn.004096d0
mov ebx, eax
jmp 0x40cec0
call fcn.00409320
mov ebx, eax
jmp 0x40cec0
mov dword [esp + 8], esi
jmp 0x40ce5b
shl esi, 2
mov eax, dword [esp + 0x38]
mov dword [eax + esi], 0
mov eax, dword [esp + 0x40]
mov dword [eax + esi], 0
mov eax, dword [ebp]
cmp byte [eax], 0x3b
je 0x40de2c
mov eax, dword [esp + 0x40]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call fcn.00409440
mov ebx, eax
jmp 0x40cec0
lea eax, [edi + 1]
mov edx, dword [esp + 0x28]
xor ecx, ecx
mov dword [ebp], eax
movzx eax, byte [edi + 1]
mov byte [esp + 0x44], al
lea eax, [edi + 2]
mov dword [ebp], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 4], 0
mov dword [esp], ebp
call fcn.0040cb40
test eax, eax
je 0x40d880
movzx ecx, byte [esp + 0x44]
cmp cl, 0x62
je 0x40ead2
cmp cl, 0x66
mov dword [esp + 0x44], str._vptr_
je 0x40dbd7
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 0xc], edi
mov dword [esp + 8], str.unrecognized_C_abbreviation
mov dword [esp + 4], str.Warning:__s:__s_n
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov dword [esp + 0x44], str.INVALID_CPLUSPLUS_ABBREV
mov eax, dword [ebp]
cmp byte [eax], 0x3a
jne 0x40d864
add eax, 1
mov edx, dword [esp + 0x28]
xor ecx, ecx
mov dword [ebp], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 4], 0
mov dword [esp], ebp
call fcn.0040cb40
mov ecx, eax
mov eax, dword [ebp]
cmp byte [eax], 0x2c
jne 0x40d864
add eax, 1
xor edx, edx
mov dword [esp + 0x48], ecx
mov dword [ebp], eax
mov eax, ebp
call fcn.0040a2c0
mov edx, dword [ebp]
mov ecx, dword [esp + 0x48]
cmp byte [edx], 0x3b
jne 0x40d864
add edx, 1
mov dword [ebp], edx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x14], 2
mov dword [esp + 0x10], 0
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call fcn.004097c0
test eax, eax
mov dword [esi], eax
je 0x40d880
mov edi, ebx
jmp 0x40cd36
mov eax, dword [esp + 0xb0]
cmp dword [esp + 0xb8], eax
sete al
movzx eax, al
mov dword [esp + 0x44], eax
jmp 0x40d1fa
add esi, 1
mov dword [ebp], esi
jmp 0x40d218
mov eax, dword [esp + 0x3c]
mov dword [esp + 4], str.Bad_stab:__s_n
mov dword [esp + 8], eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov dword [esp], edi
call fcn.004abfa8
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call fcn.004abfa8
jmp 0x40d880
mov eax, dword [esp + 0x3c]
mov dword [esp + 4], str.Bad_stab:__s_n
mov dword [esp + 8], eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
jmp 0x40dcd0
lea eax, [edi + 1]
xor edx, edx
mov dword [ebp], eax
mov eax, ebp
call fcn.0040a2c0
mov dword [esp + 0x3c], eax
mov eax, dword [ebp]
cmp byte [eax], 0x2c
je 0x40ded4
mov dword [esp + 8], edi
jmp 0x40ce5b
mov dword [esp + 0x34], edi
mov edi, esi
add eax, 1
xor esi, esi
test edi, edi
mov dword [ebp], eax
mov ebx, 1
jne 0x40eb84
mov eax, dword [esp + 0x34]
mov dword [eax + esi], 0
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x10], ebx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x3c]
jmp 0x40dae6
mov dword [esp + 0x34], 0
jmp 0x40d3bc
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call fcn.004092d0
mov ebx, eax
jmp 0x40cec0
mov ebx, dword [esp + 0x40]
jmp case.0x40cbe3.1
mov edi, str.01000000000000000000000_
mov ecx, 0x18
repe cmpsb byte [esi], byte es:[edi]
je 0x40e032
test ebx, ebx
jne 0x40d284
test eax, eax
jne 0x40d284
mov esi, dword [esp + 0x48]
mov edi, str.01777777777777777777777_
mov ecx, 0x18
repe cmpsb byte [esi], byte es:[edi]
jne 0x40d284
mov dword [esp + 8], 1
mov eax, dword [esp + 0x2c]
mov dword [esp + 4], 8
mov dword [esp], eax
call fcn.004092e0
mov ebx, eax
jmp 0x40cec0
movzx eax, byte [ecx]
test al, al
je case.0x40cbe3.1
xor edx, edx
jmp 0x40de1e
cmp al, 0x3e
je 0x40de27
cmp al, 0x3a
jne 0x40de10
test edx, edx
je 0x40eda0
add ecx, 1
movzx eax, byte [ecx]
test al, al
je case.0x40cbe3.1
cmp al, 0x3c
jne 0x40de00
add edx, 1
jmp 0x40de10
sub edx, 1
jmp 0x40de10
add eax, 1
mov dword [ebp], eax
jmp 0x40db37
add edx, 1
mov dword [ebp], edx
jmp 0x40d4fe
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x28]
xor ecx, ecx
mov dword [ebp], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 4], 0
mov dword [esp], ebp
call fcn.0040cb40
test eax, eax
mov dword [esp + 0x40], eax
je 0x40ce20
mov esi, dword [ebp]
movzx eax, byte [esi]
jmp 0x40d210
movzx eax, byte [esp + 0x44]
mov edi, dword [esp + 0x38]
and eax, 1
test ebx, ebx
sete cl
test edi, edi
sete dl
mov ebp, edx
mov edx, eax
and dl, cl
mov edi, edx
je 0x40dea4
mov edx, ebp
test dl, dl
jne 0x40dd77
test ebx, ebx
setg dl
test al, dl
mov esi, edx
mov edx, ebp
je 0x40ee58
test dl, dl
je 0x40eb1e
mov eax, dword [esp + 0x2c]
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.00409320
mov ebx, eax
jmp 0x40cec0
mov ebx, dword [esp + 0x3c]
add eax, 1
mov dword [ebp], eax
lea eax, [ebx*4 + 4]
mov dword [esp], eax
call fcn.004a91f0
test ebx, ebx
mov dword [esp + 0x6c], eax
je 0x40ee81
mov eax, dword [ebp]
xor esi, esi
mov dword [esp + 0x44], edi
jmp 0x40df7a
add eax, 1
mov edx, dword [esp + 0x28]
xor ecx, ecx
mov dword [ebp], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 4], 0
mov dword [esp], ebp
call fcn.0040cb40
test eax, eax
je 0x40ce20
mov ecx, dword [esp + 0x40]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], edi
mov dword [esp + 8], ecx
mov dword [esp], eax
call fcn.00409790
mov ecx, dword [esp + 0x6c]
test eax, eax
mov dword [ecx + esi*4], eax
je 0x40ce20
mov eax, dword [ebp]
cmp byte [eax], 0x3b
jne 0x40ce20
add eax, 1
add esi, 1
cmp dword [esp + 0x3c], esi
mov dword [ebp], eax
je 0x40ee81
movzx edx, byte [eax]
xor edi, edi
cmp dl, 0x30
je 0x40dfbb
cmp dl, 0x31
mov edi, 1
je 0x40dfbb
mov eax, dword [esp + 0x44]
mov dword [esp + 8], str.unknown_virtual_character_for_baseclass
xor edi, edi
mov dword [esp + 4], str.Warning:__s:__s_n
mov dword [esp + 0xc], eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov eax, dword [ebp]
lea edx, [eax + 1]
mov ebx, 1
mov dword [ebp], edx
movzx eax, byte [eax + 1]
cmp al, 0x31
je 0x40e00a
xor ebx, ebx
cmp al, 0x32
je 0x40e00a
cmp al, 0x30
mov ebx, 2
je 0x40e00a
mov eax, dword [esp + 0x44]
mov dword [esp + 8], str.unknown_visibility_character_for_baseclass
xor ebx, ebx
mov dword [esp + 4], str.Warning:__s:__s_n
mov dword [esp + 0xc], eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov edx, dword [ebp]
add edx, 1
mov eax, ebp
mov dword [ebp], edx
xor edx, edx
call fcn.0040a2c0
mov dword [esp + 0x40], eax
mov eax, dword [ebp]
cmp byte [eax], 0x2c
je 0x40df04
mov edi, dword [esp + 0x44]
jmp 0x40dd22
mov esi, dword [esp + 0x48]
mov edi, str.0777777777777777777777_
mov ecx, 0x17
repe cmpsb byte [esi], byte es:[edi]
jne 0x40dda5
mov dword [esp + 8], 0
jmp 0x40ddd3
mov eax, dword [esp + 0x40]
mov dword [eax + edi*4], 0
mov ebx, dword [ebp]
movzx edx, byte [ebx]
mov dword [esp + 0x70], ebx
cmp dl, 0x3b
je 0x40f485
mov dword [esp + 0x50], 0
mov dword [esp + 0x44], 0
mov edi, edx
mov dword [esp + 0x3c], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x8c], 0
mov dword [esp + 4], 0x3a
mov dword [esp], ebx
call sub.msvcrt.dll_strchr
test eax, eax
mov esi, eax
je 0x40f46e
cmp byte [eax + 1], 0x3a
jne 0x40f46e
mov eax, edi
cmp al, 0x6f
jne 0x40e0df
cmp byte [ebx + 1], 0x70
je 0x40f3f0
mov edx, esi
mov eax, ebx
add esi, 2
sub edx, ebx
call fcn.0040a280
mov dword [ebp], esi
mov dword [esp + 0x44], eax
mov dword [esp], 0x28
call fcn.004a91f0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], eax
mov dword [esp + 0x48], 0
mov dword [esp + 0x78], 0xa
mov ecx, dword [esp + 0x48]
test ecx, ecx
je 0x40ea7d
mov eax, dword [ebp]
mov edi, dword [esp + 0x48]
add eax, 1
mov dword [ebp], eax
mov dword [esp + 4], 0x3b
mov dword [esp], eax
call sub.msvcrt.dll_strchr
test eax, eax
mov ebx, eax
je 0x40eaad
mov eax, dword [esp + 0x2c]
mov dword [esp + 4], edi
xor esi, esi
mov dword [esp], eax
call fcn.00409db0
cmp eax, 0x13
je 0x40e8c0
mov eax, dword [ebp]
mov edx, ebx
sub edx, eax
call fcn.0040a280
mov dword [esp + 0x3c], eax
lea eax, [ebx + 1]
mov dword [esp + 0x64], 2
mov dword [ebp], eax
movzx eax, byte [ebx + 1]
cmp al, 0x30
je 0x40e19c
cmp al, 0x31
sete al
movzx eax, al
mov dword [esp + 0x64], eax
lea eax, [ebx + 2]
mov dword [ebp], eax
movzx edx, byte [ebx + 2]
lea ecx, [edx - 0x2a]
cmp cl, 0x1a
ja case.0x40e1b5.1
movzx ecx, cl
jmp dword [ecx*4 + 0x4b8c20]
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 0
cmp dl, 0x2e
je 0x40e82a
cmp dl, 0x3f
je 0x40e7d7
cmp dl, 0x2a
je 0x40e780
mov eax, dword [esp + 0x70]
mov dword [esp + 8], str.member_function_type_missing
mov dword [esp + 4], str.Warning:__s:__s_n
mov dword [esp + 0xc], eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov dword [esp + 0x68], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x48], 0
test esi, esi
mov ebx, dword [esp + 0x3c]
jne 0x40e47a
mov eax, dword [esp + 0x4c]
lea esi, [eax + 1]
cmp dword [esp + 0x78], esi
jbe 0x40e435
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x4c]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x54]
mov dword [esp + 0x4c], edx
test eax, eax
jne 0x40e3fe
mov eax, dword [esp + 0x68]
mov dword [esp + 8], edi
mov dword [esp + 4], ebx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call fcn.004098c0
mov edx, dword [esp + 0x4c]
mov dword [edx], eax
test eax, eax
je 0x40e747
mov eax, dword [ebp]
mov dword [esp + 0x4c], esi
movzx eax, byte [eax]
cmp al, 0x3b
je 0x40e2c7
test al, al
jne 0x40e11c
mov eax, dword [esp + 0x50]
mov dword [eax + esi*4], 0
mov eax, dword [ebp]
cmp byte [eax], 0
je 0x40e2e0
add eax, 1
mov dword [ebp], eax
mov eax, dword [esp + 0x8c]
lea esi, [eax + 1]
cmp esi, dword [esp + 0x84]
jae 0x40f49c
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x8c]
lea ebx, [eax + ecx*4]
mov eax, dword [esp + 0x50]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call fcn.004098a0
mov dword [ebx], eax
mov ebx, dword [ebp]
movzx edi, byte [ebx]
mov eax, edi
cmp al, 0x3b
je 0x40f278
mov dword [esp + 0x8c], esi
jmp 0x40e0ab
lea eax, [ebx + 3]
mov dword [esp + 0x5c], 1
mov dword [esp + 0x58], 1
mov dword [ebp], eax
movzx edx, byte [ebx + 3]
jmp 0x40e1cc
lea eax, [ebx + 3]
mov dword [esp + 0x5c], 1
mov dword [esp + 0x58], 0
mov dword [ebp], eax
movzx edx, byte [ebx + 3]
jmp 0x40e1cc
lea eax, [ebx + 3]
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 1
mov dword [ebp], eax
movzx edx, byte [ebx + 3]
jmp 0x40e1cc
lea eax, [ebx + 3]
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 0
mov dword [ebp], eax
movzx edx, byte [ebx + 3]
jmp 0x40e1cc
mov eax, dword [esp + 0x70]
mov dword [esp + 8], str.const_volatile_indicator_missing
mov dword [esp + 4], str.Warning:__s:__s_n
mov dword [esp + 0xc], eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov eax, dword [ebp]
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 0
movzx edx, byte [eax]
jmp 0x40e1cc
mov eax, dword [esp + 0x5c]
mov dword [esp + 8], edi
mov dword [esp + 4], ebx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call fcn.00409940
mov edx, dword [esp + 0x4c]
mov dword [edx], eax
jmp 0x40e2a9
add dword [esp + 0x78], 0xa
mov eax, dword [esp + 0x78]
shl eax, 2
mov dword [esp + 4], eax
mov eax, dword [esp + 0x50]
mov dword [esp], eax
call fcn.004a9270
mov dword [esp + 0x50], eax
jmp 0x40e24c
mov dword [esp + 0x48], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x54], 1
mov ebx, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
lea ecx, [esp + 0xac]
mov eax, ebx
call fcn.0040a620
test eax, eax
mov dword [esp + 0x94], eax
je 0x40e747
mov dword [esp + 4], edi
mov dword [esp], ebx
call fcn.00409e70
test eax, eax
mov dword [esp + 0x98], eax
je 0x40eaad
mov eax, dword [esp + 0x3c]
movzx edx, byte [eax]
cmp dl, 0x5f
je 0x40e8ea
mov esi, dword [esp + 0x3c]
mov ecx, 4
mov edi, 0x4b8ac1
mov eax, 1
mov dword [esp + 0x74], 1
repe cmpsb byte [esi], byte es:[edi]
seta bl
setb cl
cmp bl, cl
jne 0x40e9f4
mov esi, dword [esp + 0x3c]
mov edi, 0x4b8a46
mov ecx, 4
repe cmpsb byte [esi], byte es:[edi]
je 0x40e863
cmp dl, 0x5f
je 0x40e980
test eax, eax
jne 0x40ecd0
mov eax, dword [esp + 0x34]
test eax, eax
je 0x40ed11
mov dword [esp], eax
call sub.msvcrt.dll_strlen
mov ebx, eax
mov esi, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
mov eax, 0x4b88d3
mov edi, 0x4b88d1
test esi, esi
mov esi, 0x4b88d4
cmove edi, eax
test edx, edx
cmove esi, eax
test ebx, ebx
je 0x40ebb9
mov eax, dword [esp + 0x34]
test eax, eax
je 0x40ecdb
mov dword [esp + 4], 0x3c
mov dword [esp], eax
call sub.msvcrt.dll_strchr
test eax, eax
je 0x40ecdb
mov dword [esp + 0xc], esi
lea esi, [esp + 0xb4]
mov dword [esp + 8], edi
mov dword [esp + 4], str.___s_s
mov edi, 1
mov dword [esp], esi
call sub.msvcrt.dll_sprintf
mov dword [esp + 0x90], 0
mov ecx, dword [esp + 0x74]
test ecx, ecx
jne 0x40ea10
mov eax, dword [esp + 0x44]
mov ebx, esi
mov dword [esp], eax
call sub.msvcrt.dll_strlen
mov dword [esp + 0x9c], eax
mov edx, dword [ebx]
add ebx, 4
lea eax, [edx - 0x1010101]
not edx
and eax, edx
and eax, 0x80808080
je 0x40e5cf
mov ecx, eax
shr ecx, 0x10
test eax, 0x8080
cmove eax, ecx
lea ecx, [ebx + 2]
cmove ebx, ecx
mov ecx, eax
add cl, al
mov eax, dword [esp + 0x3c]
sbb ebx, 3
sub ebx, esi
mov dword [esp], eax
call sub.msvcrt.dll_strlen
add ebx, dword [esp + 0x9c]
add ebx, edi
add ebx, eax
mov eax, dword [esp + 0x44]
cmp byte [eax], 0x6f
je 0x40ec39
mov dword [esp], ebx
call fcn.004a91f0
mov ebx, eax
mov eax, dword [esp + 0x44]
mov dword [esp], ebx
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcpy
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov edi, eax
lea eax, [ebx + eax]
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.004a96b0
mov ecx, dword [esp + 0x90]
test ecx, ecx
je 0x40e66f
mov dword [esp + 4], ecx
mov dword [esp], eax
call sub.msvcrt.dll_strcpy
mov esi, dword [esp + 0x3c]
mov dword [esp], ebx
mov dword [esp + 4], esi
call sub.msvcrt.dll_strcat
movzx edx, byte [esi]
test dl, dl
je 0x40e867
mov dword [esp + 0xa8], ebx
cmp byte [ebx], 0x5f
jne 0x40e6a0
cmp byte [ebx + 1], 0x5a
je 0x40f52d
mov eax, dword [esp + 0x2c]
mov dword [esp], 0x50
mov dword [esp + 0xbc], 0
mov dword [esp + 0xc0], 0
mov dword [esp + 0xcc], 0xa
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0xb8], eax
call fcn.004a91f0
test edi, edi
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], 0
mov esi, dword [esp + 0xa8]
je 0x40ebed
add edi, esi
cmp edi, esi
je 0x40f0f8
cmp byte [edi + 2], 0
jne 0x40eee5
mov dword [esp + 8], esi
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 4], str.bad_mangled_name___s_n
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov eax, dword [esp + 0xc4]
test eax, eax
je 0x40e747
mov dword [esp], eax
call fcn.004abfa8
mov eax, dword [esp + 0x44]
test eax, eax
je 0x40e763
mov eax, dword [esp + 0x44]
mov dword [esp], eax
call fcn.004abfa8
mov eax, dword [esp + 0x50]
test eax, eax
je 0x40e76f
mov eax, dword [esp + 0x50]
mov dword [esp], eax
call fcn.004abfa8
mov eax, dword [esp + 0x3c]
test eax, eax
jne 0x40dcd4
jmp 0x40d880
add eax, 1
xor edx, edx
mov dword [ebp], eax
mov eax, ebp
call fcn.0040a2c0
mov edx, dword [ebp]
cmp byte [edx], 0x3b
jne 0x40eaad
lea ecx, [edx + 1]
and eax, 0x7fffffff
mov dword [esp + 0x7c], eax
mov dword [ebp], ecx
movzx eax, byte [edx + 1]
cmp al, 0x3b
je 0x40e7ba
test al, al
jne 0x40e9a3
mov dword [esp + 0x68], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x48], 0
jmp 0x40e22f
mov ebx, dword [esp + 0x44]
add eax, 1
mov dword [ebp], eax
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov dword [esp + 8], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 4], ebx
mov dword [esp], eax
call sub.msvcrt.dll_strncmp
test eax, eax
jne 0x40e45a
mov dword [esp + 0x68], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x54], 1
mov dword [esp + 0x48], 0
jmp 0x40e22f
add eax, 1
mov dword [esp + 0x68], 0
mov dword [esp + 0x7c], 0
mov dword [ebp], eax
mov dword [esp + 0x54], 0
mov dword [esp + 0x48], 0
jmp 0x40e22f
mov ecx, dword [esp + 0x3c]
cmp byte [ecx + 2], 0x5f
jne 0x40e96a
mov ebx, dword [esp + 0x3c]
mov dword [esp], 4
call fcn.004a91f0
mov dword [eax], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call fcn.004096d0
test eax, eax
mov edi, eax
jne 0x40e23b
jmp 0x40e747
lea eax, [esp + 0xa0]
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call fcn.00409eb0
test eax, eax
sete al
movzx eax, al
mov esi, eax
jmp 0x40e16a
cmp byte [eax + 1], 0x5f
je 0x40ec80
mov esi, dword [esp + 0x3c]
mov edi, 0x4b8ac1
mov ecx, 4
repe cmpsb byte [esi], byte es:[edi]
je 0x40f6a4
mov eax, dword [esp + 0x34]
test eax, eax
je 0x40f695
mov eax, dword [esp + 0x34]
mov byte [esp + 0x90], dl
mov dword [esp + 4], eax
mov eax, dword [esp + 0x44]
mov dword [esp], eax
call sub.msvcrt.dll_strcmp
movzx edx, byte [esp + 0x90]
test eax, eax
sete al
movzx eax, al
mov dword [esp + 0x74], eax
xor eax, eax
cmp dl, 0x5f
jne 0x40e4f5
mov ecx, dword [esp + 0x3c]
movzx edx, byte [ecx + 1]
cmp dl, 0x24
je 0x40e855
cmp dl, 0x2e
je 0x40e855
mov esi, dword [esp + 0x3c]
mov edi, 0x4b8a46
mov ecx, 4
repe cmpsb byte [esi], byte es:[edi]
je 0x40e863
mov ecx, dword [esp + 0x3c]
xor edi, edi
cmp byte [ecx + 1], 0x5a
mov ebx, ecx
je 0x40e68a
test eax, eax
je 0x40e51c
mov ebx, dword [esp + 0x3c]
jmp 0x40e68a
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
xor ecx, ecx
mov dword [esp + 4], 0
mov dword [esp], ebp
call fcn.0040cb40
mov dword [esp + 0x68], eax
mov eax, dword [ebp]
movzx edx, byte [eax]
cmp dl, 0x3a
je 0x40ed1f
cmp dl, 0x3b
jne 0x40eaad
add eax, 1
mov dword [esp + 0x54], 0
mov dword [esp + 0x48], 0
mov dword [ebp], eax
jmp 0x40e22f
mov esi, dword [esp + 0x34]
test esi, esi
jne 0x40e916
xor eax, eax
mov dword [esp + 0x74], 0
jmp 0x40e4f5
mov ebx, esi
mov edx, dword [ebx]
add ebx, 4
lea eax, [edx - 0x1010101]
not edx
and eax, edx
and eax, 0x80808080
je 0x40ea12
mov edx, eax
shr edx, 0x10
test eax, 0x8080
cmove eax, edx
lea edx, [ebx + 2]
mov ecx, eax
cmove ebx, edx
add cl, al
mov eax, dword [esp + 0x3c]
sbb ebx, 3
sub ebx, esi
mov dword [esp], eax
call sub.msvcrt.dll_strlen
add ebx, eax
mov eax, dword [esp + 0x44]
add ebx, edi
cmp byte [eax], 0x6f
jne 0x40ea6b
mov eax, dword [esp + 0x44]
cmp byte [eax + 1], 0x70
je 0x40ec47
mov dword [esp], ebx
call fcn.004a91f0
mov ebx, eax
mov byte [ebx], 0
jmp 0x40e63f
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
xor ecx, ecx
mov dword [esp + 4], 0
mov dword [esp], ebp
call fcn.0040cb40
test eax, eax
mov edi, eax
je 0x40e747
mov eax, dword [ebp]
cmp byte [eax], 0x3a
je 0x40e12f
mov eax, dword [esp + 0x70]
mov dword [esp + 4], str.Bad_stab:__s_n
mov dword [esp + 8], eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
jmp 0x40e747
mov dword [esp + 4], eax
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call fcn.00409de0
test eax, eax
je 0x40f440
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov dword [esp], str._vb_
call fcn.004a3350
mov dword [esp + 0x44], eax
jmp 0x40dbd7
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call fcn.004092d0
mov ebx, eax
jmp 0x40d131
cmp dword [esp + 0x38], 0xffffffff
jne 0x40ed3c
test cl, cl
je 0x40ed3c
mov esi, dword [esp + 0x34]
test esi, esi
je 0x40eb61
mov edi, 0x4b84c4
mov ecx, 0xe
repe cmpsb byte [esi], byte es:[edi]
je 0x40e048
mov esi, dword [esp + 0x34]
mov edi, 0x4b84ad
mov ecx, 0x17
repe cmpsb byte [esi], byte es:[edi]
je 0x40ddcb
mov dword [esp + 8], 1
mov eax, dword [esp + 0x2c]
mov dword [esp + 4], 4
mov dword [esp], eax
call fcn.004092e0
mov ebx, eax
jmp 0x40cec0
mov eax, dword [esp + 0x34]
add edi, 0x3fffffff
lea esi, [edi*4]
mov eax, dword [eax + edi*4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call fcn.00409db0
cmp eax, 2
je 0x40ed18
add esi, 4
jmp 0x40dd46
mov dword [esp + 0xc], esi
lea esi, [esp + 0xb4]
mov dword [esp + 8], edi
mov dword [esp + 4], str.___s_s
mov edi, 1
mov dword [esp], esi
call sub.msvcrt.dll_sprintf
mov eax, dword [esp + 0x34]
mov dword [esp + 0x90], eax
jmp 0x40e5ae
mov eax, esi
mov dword [esp + 4], 0x5f
mov dword [esp], eax
call sub.msvcrt.dll_strchr
test eax, eax
mov edi, eax
je 0x40e718
cmp byte [edi + 1], 0x5f
lea eax, [eax + 1]
jne 0x40ebef
test eax, eax
je 0x40e718
mov dword [esp], edi
mov dword [esp + 4], 0x4b8a96
call sub.msvcrt.dll_strspn
lea edx, [edi + eax - 2]
cmp eax, 3
cmovae edi, edx
jmp 0x40e706
mov eax, dword [esp + 0x44]
cmp byte [eax + 1], 0x70
jne 0x40e625
mov eax, dword [esp + 0x44]
movzx eax, byte [eax + 2]
cmp al, 0x24
je 0x40f597
cmp al, 0x2e
je 0x40f597
mov dword [esp], ebx
call fcn.004a91f0
mov edx, dword [esp + 0x74]
mov ebx, eax
test edx, edx
jne 0x40ea75
jmp 0x40e62f
movzx ecx, byte [eax + 2]
test byte [ecx + ecx + 0x4e2820], 4
mov eax, ecx
jne 0x40ecb5
cmp cl, 0x74
sete cl
cmp al, 0x51
sete al
or cl, al
jne 0x40ecb5
mov esi, dword [esp + 0x3c]
mov edi, 0x4b8ac1
mov ecx, 4
repe cmpsb byte [esi], byte es:[edi]
jne 0x40e90a
mov eax, 1
mov dword [esp + 0x74], 1
jmp 0x40e96a
mov ebx, dword [esp + 0x3c]
xor edi, edi
jmp 0x40e682
mov dword [esp + 0xc], esi
lea esi, [esp + 0xb4]
mov dword [esp + 8], edi
mov dword [esp + 0x10], ebx
mov dword [esp + 4], str.___s_s_d
lea edi, [ebx + 1]
mov dword [esp], esi
call sub.msvcrt.dll_sprintf
mov eax, dword [esp + 0x34]
mov dword [esp + 0x90], eax
jmp 0x40e5ae
xor ebx, ebx
jmp 0x40e532
xor ebx, ebx
jmp 0x40dd46
mov eax, dword [esp + 0x68]
mov dword [esp + 0x54], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x48], eax
jmp 0x40e22f
mov ecx, edi
test cl, cl
je 0x40eda7
cmp dword [esp + 0x38], 0x7f
je 0x40f234
cmp dword [esp + 0x38], 0
js 0x40f679
cmp dword [esp + 0x38], 0xff
je 0x40f3e3
cmp dword [esp + 0x38], 0xffff
jne 0x40d2b8
mov dword [esp + 8], 1
mov eax, dword [esp + 0x2c]
mov dword [esp + 4], 2
mov dword [esp], eax
call fcn.004092e0
mov ebx, eax
jmp 0x40cec0
mov esi, ecx
jmp 0x40d5cd
test ebx, ebx
je 0x40ed4d
mov ecx, ebx
shr ecx, 0x1f
test cl, cl
je 0x40edcb
mov ecx, ebp
test cl, cl
je 0x40edcb
cmp ebx, 0xfffffff8
je 0x40f257
test al, al
jne 0x40f257
mov ecx, dword [esp + 0x38]
mov eax, ecx
not eax
cmp ebx, eax
je 0x40ede4
mov eax, ecx
add eax, 1
cmp ebx, eax
jne 0x40d2b8
mov eax, dword [esp + 0x38]
cmp eax, 0x7f
je 0x40f234
cmp eax, 0x7fff
je 0x40f66c
cmp dword [esp + 0x38], 0x7fffffff
jne 0x40d2b8
mov dword [esp + 8], 0
jmp 0x40eb69
mov eax, dword [esp + 0x50]
mov dword [esp + 4], str.Bad_stab:__s_n
mov dword [esp + 8], eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call fcn.004abfa8
jmp 0x40ce20
xor esi, esi
jmp 0x40db15
test dl, dl
je 0x40eb1e
mov edx, esi
test dl, dl
je 0x40eb1e
mov eax, dword [esp + 0x2c]
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.00409300
mov ebx, eax
jmp 0x40cec0
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x3c]
mov dword [eax + ecx*4], 0
mov eax, dword [ebp]
mov dword [esp + 0x50], eax
jmp 0x40cd11
mov eax, dword [esp + 0x3c]
mov dword [esp + 8], str.missing_index_type
mov dword [esp + 4], str.Warning:__s:__s_n
mov dword [esp + 0xc], eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov eax, dword [esp + 0x2c]
mov dword [esp + 8], 0
mov dword [esp + 4], 4
mov dword [esp], eax
call fcn.004092e0
jmp 0x40d2dd
lea esi, [esp + 0xb4]
lea edx, [esp + 0xa8]
mov ecx, edi
mov eax, esi
call fcn.0040cab0
test eax, eax
je 0x40e734
mov eax, dword [esp + 0xa8]
mov esi, eax
mov dword [esp + 0x90], eax
movzx eax, byte [eax]
test al, al
je 0x40ef89
mov dword [esp + 0x74], 0
xor edx, edx
xor edi, edi
mov dword [esp + 0x9c], ebx
mov dword [esp + 0xf0], ebp
sub eax, 0x30
cmp al, 0x44
ja case.0x40ef43.10
movzx eax, al
jmp dword [eax*4 + 0x4b8c8c]
test edi, edi
cmove edi, esi
add esi, 1
mov dword [esp + 0xa8], esi
mov eax, dword [esp + 0x74]
test eax, eax
jne 0x40f1f6
mov esi, dword [esp + 0xa8]
movzx eax, byte [esi]
test al, al
jne 0x40ef35
test edx, edx
mov ebx, dword [esp + 0x9c]
mov ebp, dword [esp + 0xf0]
je 0x40f1c3
mov eax, dword [esp + 0xc4]
mov dword [esp], eax
call fcn.004abfa8
mov eax, dword [esp + 0xbc]
mov dword [esp + 0xc4], 0
test eax, eax
je 0x40f18f
mov edx, dword [esp + 0xc0]
mov dword [esp + 0xa4], edx
test eax, eax
je 0x40e747
mov edx, dword [esp + 0xa4]
mov dword [esp + 0x10], edx
jmp 0x40e881
lea ebp, [esp + 0xa8]
test edi, edi
cmovne esi, edi
xor edx, edx
mov eax, ebp
call fcn.0040b4a0
test eax, eax
je 0x40e734
mov ecx, dword [esp + 0xa8]
lea ebx, [esp + 0xb4]
sub ecx, esi
mov edx, esi
mov eax, ebx
call fcn.0040a220
test eax, eax
je 0x40e734
xor edi, edi
lea eax, [esp + 0xc0]
lea ecx, [esp + 0xbc]
mov edx, ebp
mov dword [esp], eax
mov eax, ebx
call fcn.0040c8d0
test eax, eax
je 0x40e734
mov edx, 1
mov dword [esp + 0x74], 1
jmp 0x40ef65
mov eax, dword [esp + 0x90]
mov dword [esp + 8], eax
jmp 0x40e71c
lea ebp, [esp + 0xa8]
lea ebx, [esp + 0xb4]
test edi, edi
cmovne esi, edi
xor ecx, ecx
mov edx, ebp
mov eax, ebx
call fcn.0040bf80
test eax, eax
je 0x40e734
mov ecx, dword [esp + 0xa8]
sub ecx, esi
jmp 0x40f005
lea ebp, [esp + 0xa8]
lea ebx, [esp + 0xb4]
xor ecx, ecx
mov edx, ebp
mov eax, ebx
call fcn.0040c4a0
test eax, eax
jne 0x40f082
jmp 0x40e734
lea eax, [esp + 0xc0]
lea ebx, [esp + 0xb4]
lea ebp, [esp + 0xa8]
lea ecx, [esp + 0xbc]
add esi, 1
mov dword [esp], eax
mov edx, ebp
mov eax, ebx
mov dword [esp + 0xa8], esi
call fcn.0040c8d0
test eax, eax
je 0x40e734
xor edi, edi
mov edx, 1
jmp 0x40ef59
movzx edx, byte [edi + 2]
test byte [edx + edx + 0x4e2820], 4
mov eax, edx
jne 0x40f209
cmp dl, 0x74
sete dl
cmp al, 0x51
sete al
or dl, al
jne 0x40f209
cmp byte [edi], 0x5f
mov eax, edi
jne 0x40f12e
add eax, 1
cmp byte [eax], 0x5f
je 0x40f126
mov dword [esp + 4], 0x4b8a98
mov dword [esp], eax
call sub.msvcrt.dll_strstr
test eax, eax
je 0x40f14c
cmp byte [eax + 2], 0
jne 0x40f218
mov dword [esp + 8], edi
jmp 0x40e71c
lea eax, [esp + 0xc0]
lea ebx, [esp + 0xb4]
lea ebp, [esp + 0xa8]
lea ecx, [esp + 0xbc]
mov dword [esp], eax
mov edx, ebp
mov eax, ebx
call fcn.0040c8d0
test eax, eax
je 0x40e734
mov edx, 1
jmp 0x40ef59
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 8], 0x24
mov dword [esp + 4], 1
mov dword [esp], str.no_argument_types_in_mangled_string_n
add eax, 0x40
mov dword [esp + 0xc], eax
call sub.msvcrt.dll_fwrite
mov eax, dword [esp + 0xbc]
jmp 0x40efb2
lea eax, [esp + 0xc0]
lea esi, [esp + 0xb4]
lea edx, [esp + 0xa8]
lea ecx, [esp + 0xbc]
mov dword [esp], eax
mov eax, esi
call fcn.0040c8d0
test eax, eax
jne 0x40ef89
jmp 0x40e734
lea ebx, [esp + 0xb4]
lea ebp, [esp + 0xa8]
jmp 0x40f018
add edi, 2
mov dword [esp + 0xa8], edi
jmp 0x40ef04
lea esi, [esp + 0xb4]
lea edx, [esp + 0xa8]
mov ecx, eax
mov eax, esi
call fcn.0040cab0
jmp 0x40eefc
mov dword [esp + 8], 0
mov eax, dword [esp + 0x2c]
mov dword [esp + 4], 1
mov dword [esp], eax
call fcn.004092e0
mov ebx, eax
jmp 0x40cec0
mov eax, dword [esp + 0x2c]
neg ebx
mov dword [esp + 8], 1
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.004092e0
mov ebx, eax
jmp 0x40cec0
cmp dword [esp + 0x60], 0
je 0x40f48d
mov eax, dword [esp + 0x60]
mov dword [eax + esi*4], 0
mov ebx, dword [ebp]
movzx edx, byte [ebx]
mov eax, ebx
cmp dl, 0x3b
je 0x40f48d
xor ecx, ecx
cmp byte [esp + 0x38], 0x73
sete cl
cmp dl, 0x7e
mov esi, ecx
je 0x40f325
mov ecx, 1
xor eax, eax
mov edx, dword [esp + 0x6c]
test edx, edx
mov edx, dword [esp + 0x88]
sete bl
xor edx, 1
and edx, ebx
mov ebx, dword [esp + 0x60]
test ebx, ebx
sete bl
test dl, bl
je 0x40f2e1
test cl, cl
jne 0x40f4c7
xor edx, edx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x1c], edx
mov dword [esp + 4], esi
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call fcn.004093a0
mov ebx, eax
jmp 0x40cec0
lea edx, [eax + 1]
mov dword [ebp], edx
movzx edx, byte [eax + 1]
mov ecx, edx
and ecx, 0xffffffef
cmp cl, 0x2d
je 0x40f3bf
cmp dl, 0x2b
je 0x40f3bf
mov edi, dword [ebp]
cmp byte [edi], 0x25
jne 0x40f2b0
add edi, 1
lea edx, [esp + 0xb4]
mov eax, ebp
mov dword [ebp], edi
call fcn.0040a360
test eax, eax
je 0x40d880
mov eax, dword [esp + 0xac]
cmp dword [esp + 0xb4], eax
jne 0x40f38e
mov eax, dword [esp + 0xb0]
cmp dword [esp + 0xb8], eax
je 0x40f521
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
xor ecx, ecx
mov dword [ebp], edi
mov dword [esp + 4], 0
mov dword [esp], ebp
call fcn.0040cb40
mov edx, dword [ebp]
movzx ecx, byte [edx]
cmp cl, 0x3b
je 0x40f3ca
test cl, cl
je 0x40f3ca
add edx, 1
jmp 0x40f3ae
add eax, 2
mov dword [ebp], eax
jmp 0x40f342
cmp cl, 0x3b
jne 0x40f68c
add edx, 1
test eax, eax
mov dword [ebp], edx
sete cl
jmp 0x40f2b7
mov dword [esp + 8], 1
jmp 0x40f23c
cmp byte [ebx + 2], 0x24
jne 0x40e0df
lea eax, [esi + 2]
mov dword [ebp], eax
movzx edx, byte [esi + 2]
mov ebx, eax
cmp dl, 0x2e
jne 0x40f41b
jmp 0x40f41f
add ebx, 1
movzx edx, byte [ebx]
cmp dl, 0x2e
je 0x40f41f
test dl, dl
jne 0x40f410
cmp dl, 0x2e
jne 0x40f4f1
mov edx, ebx
add ebx, 1
sub edx, eax
call fcn.0040a280
mov dword [ebp], ebx
mov dword [esp + 0x44], eax
jmp 0x40e0f4
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 0xc], edi
mov dword [esp + 8], str.unnamed__vb_type
mov dword [esp + 4], str.Warning:__s:__s_n
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov eax, 0x4b88ad
jmp 0x40eaea
cmp dword [esp + 0x60], 0
je 0x40f291
mov esi, dword [esp + 0x8c]
jmp 0x40f283
mov dword [esp + 0x60], 0
lea eax, [ebx + 1]
mov dword [ebp], eax
movzx edx, byte [ebx + 1]
jmp 0x40f29f
add dword [esp + 0x84], 0xa
mov eax, dword [esp + 0x84]
shl eax, 2
mov dword [esp + 4], eax
mov eax, dword [esp + 0x60]
mov dword [esp], eax
call fcn.004a9270
mov dword [esp + 0x60], eax
jmp 0x40e2f7
mov eax, dword [esp + 0x40]
mov dword [esp + 4], esi
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call fcn.00409330
mov ebx, eax
jmp 0x40cec0
mov eax, dword [esp + 0x70]
mov dword [esp + 4], str.Bad_stab:__s_n
mov dword [esp + 8], eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
cmp dword [esp + 0x44], 0
jne 0x40e74f
jmp 0x40e75b
xor eax, eax
mov edx, 1
jmp 0x40f2e3
lea esi, [esp + 0xb4]
mov dword [esp + 4], 3
mov dword [esp], ebx
mov dword [esp + 8], esi
call fcn.004a3640
test eax, eax
je 0x40f6b6
cmp dword [eax], 3
jne 0x40f605
mov eax, dword [eax + 0xc]
cmp dword [eax], 0x29
jne 0x40f605
mov ecx, dword [eax + 0xc]
lea eax, [esp + 0xa4]
mov edx, dword [esp + 0x28]
mov dword [esp], eax
mov eax, dword [esp + 0x2c]
call fcn.0040b360
mov esi, eax
mov eax, dword [esp + 0xb4]
mov dword [esp], eax
call fcn.004abfa8
mov eax, esi
jmp 0x40efc0
mov eax, dword [esp + 0x44]
mov dword [esp + 4], 0
add eax, 3
mov dword [esp], eax
call fcn.00493540
test eax, eax
mov edx, eax
je 0x40f6d7
mov edi, edx
mov dword [esp + 0x74], edx
xor eax, eax
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
lea eax, [ebx + ecx - 1]
mov dword [esp], eax
call fcn.004a91f0
mov ebx, eax
mov eax, dword [esp + 0x44]
mov dword [esp + 8], 3
mov dword [esp], ebx
mov dword [esp + 4], eax
call sub.msvcrt.dll_strncpy
mov edx, dword [esp + 0x74]
lea eax, [ebx + 3]
mov dword [esp], eax
mov dword [esp + 4], edx
call sub.msvcrt.dll_strcpy
jmp 0x40e63f
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 8], 0x21
mov dword [esp + 4], 1
mov dword [esp], str.Demangled_name_is_not_a_function_n
add eax, 0x40
mov dword [esp + 0xc], eax
call sub.msvcrt.dll_fwrite
mov eax, dword [esp + 0xb4]
mov dword [esp], eax
call fcn.004abfa8
jmp 0x40e747
mov eax, dword [esp + 0x2c]
mov dword [esp + 8], 0
mov dword [esp + 4], 4
mov dword [esp], eax
call fcn.004092e0
test eax, eax
mov ebx, eax
jne 0x40d37a
jmp 0x40ce20
mov dword [esp + 8], 0
jmp 0x40ed7c
mov eax, dword [esp + 0x38]
mov dword [esp + 8], 1
neg eax
jmp 0x40d50d
mov dword [esp + 8], ebx
jmp 0x40d868
xor eax, eax
mov dword [esp + 0x74], 0
jmp 0x40e950
mov eax, 1
mov dword [esp + 0x74], 1
jmp 0x40e950
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 8], ebx
mov dword [esp + 4], str.bad_mangled_name___s_n
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
jmp 0x40e747
mov eax, dword [esp + 0x44]
mov dword [esp + 4], str.No_mangling_for___s__n
mov dword [esp + 8], eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
jmp 0x40e747