Function at 0x40d6e0
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, 0xcc
mov edi, dword [esp + 0xe4]
mov ebp, dword [esp + 0xe0]
test edi, edi
je 0x40d702
mov dword [edi], 0
mov esi, dword [ebp]
cmp esi, dword [esp + 0xe8]
jae 0x40d880
mov byte [edx + 0xd8], 0
mov dword [esp + 0x20], eax
movzx eax, byte [esi]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x24], edx
mov ecx, eax
movzx eax, word [eax + eax + 0x4e3480]
shr ax, 2
xor eax, 1
cmp cl, 0x28
setne dl
cmp cl, 0x2d
setne cl
and edx, ecx
and dl, al
mov byte [esp + 0x28], dl
je 0x40d890
mov dword [esp + 0xa0], 0xffffffff
mov dword [esp + 0x9c], 0xffffffff
mov ebx, esi
movzx eax, byte [esi]
mov byte [esp + 0x28], 0
mov dword [esp + 0x30], 0xffffffff
mov byte [esp + 0x2c], al
lea eax, [ebx + 1]
mov dword [esp + 0x38], eax
mov dword [ebp], eax
movzx eax, byte [esp + 0x2c]
sub eax, 0x23
cmp al, 0x55
ja case.0x40d79c.1
movzx eax, al
jmp dword [eax*4 + 0x4b6fcc]
mov ecx, dword [esp + 0xe8]
xor edx, edx
mov eax, ebp
call fcn.0040ad60
mov dword [esp + 0x68], eax
mov eax, dword [ebp]
cmp dword [esp + 0xe8], eax
mov dword [esp + 0x3c], eax
jbe 0x40e849
cmp byte [eax], 0x21
mov dword [esp + 0x5c], 0
je 0x40ec1a
mov dword [esp], 0x28
xor ebx, ebx
call fcn.004a70b0
mov edi, ebx
mov dword [esp + 0x28], eax
mov byte [esp + 0x8e], 0
mov dword [esp + 0x38], 0xa
mov esi, dword [ebp]
movzx eax, byte [esi]
cmp al, 0x3b
je 0x40eee1
lea ebx, [edi + 1]
cmp dword [esp + 0x38], ebx
jbe 0x40e5e8
cmp al, 0x24
je 0x40e4ed
cmp al, 0x2e
je 0x40e4ed
mov dword [esp + 4], 0x3a
mov dword [esp], esi
call sub.msvcrt.dll_strchr
test eax, eax
je 0x40fcfd
cmp byte [eax + 1], 0x3a
je 0x40fcef
mov esi, dword [ebp]
cmp dword [esp + 0xe8], esi
ja 0x40e610
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call fcn.004a9de0
mov dword [esp + 0x28], 0
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call fcn.004a9de0
lea esi, [esi]
xor esi, esi
add esp, 0xcc
mov eax, esi
pop ebx
pop esi
pop edi
pop ebp
ret
mov ecx, dword [esp + 0xe8]
lea edx, [esp + 0x9c]
mov eax, ebp
call fcn.0040adf0
test al, al
mov byte [esp + 0x38], al
je 0x40d880
mov ebx, dword [ebp]
cmp byte [ebx], 0x3d
jne 0x40d990
test edi, edi
je 0x40d8ee
mov eax, dword [esp + 0x9c]
test eax, eax
js 0x40d8ee
mov eax, dword [esp + 0xa0]
test eax, eax
js 0x40d8ee
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0x9c]
lea edx, [eax + 0x48]
add eax, 0x44
call fcn.0040af90
mov ebx, dword [ebp]
mov dword [edi], eax
add ebx, 1
mov dword [esp + 0x30], 0xffffffff
mov dword [ebp], ebx
movzx eax, byte [ebx]
cmp al, 0x40
jne 0x40e885
movzx ecx, byte [ebx + 1]
lea eax, [ebx + 1]
mov dword [esp + 0x2c], eax
test byte [ecx + ecx + 0x4e3480], 4
mov edx, ecx
jne 0x40e40c
cmp cl, 0x2d
sete cl
cmp dl, 0x28
mov edi, ecx
sete cl
mov eax, edi
or al, cl
jne 0x40e40c
cmp dl, 0x3b
je 0x40d963
test dl, dl
je case.0x40d79c.1
mov eax, dword [esp + 0x2c]
jmp 0x40d954
test dl, dl
je case.0x40d79c.1
add eax, 1
movzx edx, byte [eax]
cmp dl, 0x3b
jne 0x40d950
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2c]
add eax, 1
mov dword [ebp], eax
movzx edx, byte [ebx + 1]
cmp dl, 0x53
je 0x40d9e1
cmp dl, 0x73
je 0x40d9f1
test dl, dl
je case.0x40d79c.1
mov ebx, eax
jmp 0x40d8fc
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
lea ecx, [esp + 0x9c]
call fcn.0040b0b0
add esp, 0xcc
mov esi, eax
pop ebx
mov eax, esi
pop esi
pop edi
pop ebp
ret
mov esi, dword [esp + 0x38]
mov esi, esi
lea edi, [edi]
mov dword [esp + 8], esi
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 0x40d880
movzx ebx, byte [esp + 0x38]
mov byte [esp + 0x28], bl
mov ebx, eax
jmp 0x40d8fc
add ebx, 2
mov dword [esp], ebx
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]
jg 0x40d97f
mov dword [esp + 0x30], 0xffffffff
mov ebx, eax
jmp 0x40d8fc
movzx eax, byte [ebx + 1]
cmp al, 0x65
je 0x40ea0b
jle 0x40e943
cmp al, 0x73
mov dword [esp + 0x28], 7
je 0x40da53
cmp al, 0x75
mov dword [esp + 0x28], 8
jne 0x40e94b
mov edi, dword [esp + 0x38]
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 + 0x2c], eax
call sub.msvcrt.dll_strchr
test eax, eax
mov ebx, eax
mov edx, dword [esp + 0x2c]
je case.0x40d79c.1
test edx, edx
je 0x40daa1
cmp edx, eax
jae 0x40daa1
cmp byte [eax + 1], 0x3a
je 0x40ed0d
mov ecx, dword [esp + 0x34]
mov esi, ebx
sub esi, edi
test ecx, ecx
je 0x40dada
mov eax, dword [esp + 0x34]
mov dword [esp + 8], esi
mov dword [esp + 4], edi
mov dword [esp], eax
call sub.msvcrt.dll_strncmp
test eax, eax
jne 0x40dada
mov eax, dword [esp + 0x34]
cmp byte [eax + esi], 0
jne 0x40dada
mov eax, dword [esp + 0x24]
mov byte [eax + 0xd8], 1
mov eax, dword [esp + 0x24]
mov dword [esp], esi
mov ecx, edi
add ebx, 1
lea edx, [eax + 0xd4]
mov eax, dword [esp + 0x28]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x20]
call fcn.0040b640
mov dword [ebp], ebx
mov esi, eax
test esi, esi
je 0x40d880
cmp dword [esp + 0x9c], 0xffffffff
je 0x40db34
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0x9c]
lea edx, [eax + 0x48]
add eax, 0x44
call fcn.0040af90
test eax, eax
je 0x40d880
mov dword [eax], esi
mov eax, dword [esp + 0x30]
cmp eax, 0xffffffff
je 0x40d882
mov dword [esp + 8], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.0040a660
test al, al
je 0x40d880
add esp, 0xcc
mov eax, esi
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0xe8]
mov edi, dword [esp + 0x20]
xor ecx, ecx
mov edx, dword [esp + 0x24]
mov dword [esp + 4], 0
mov dword [esp], ebp
mov dword [esp + 8], eax
mov eax, edi
call fcn.0040d6e0
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.0040a1d0
mov esi, eax
jmp 0x40db02
mov eax, dword [esp + 0x38]
cmp dword [esp + 0xe8], eax
jbe 0x40d880
mov ecx, dword [esp + 0xe8]
xor edx, edx
mov eax, ebp
call fcn.0040ad60
mov ebx, eax
mov eax, dword [ebp]
cmp byte [eax], 0x3b
jne 0x40e6ef
mov ecx, dword [esp + 0xe8]
xor edx, edx
mov eax, ebp
call fcn.0040ad60
mov edx, dword [ebp]
cmp byte [edx], 0x3b
jne 0x40e6ef
mov dword [esp + 4], eax
mov eax, dword [esp + 0x20]
sub ebx, 3
cmp ebx, 2
mov dword [esp], eax
jbe 0x40eab9
call fcn.00409d50
mov esi, eax
jmp 0x40db02
mov eax, dword [esp + 0xe8]
mov edi, dword [esp + 0x20]
xor ecx, ecx
mov edx, dword [esp + 0x24]
mov dword [esp + 4], 0
mov dword [esp], ebp
mov dword [esp + 8], eax
mov eax, edi
call fcn.0040d6e0
movzx edx, byte [esp + 0x28]
mov dword [esp + 4], eax
mov dword [esp], edi
mov dword [esp + 8], edx
call fcn.0040a080
mov esi, eax
jmp 0x40db02
cmp byte [ebx + 1], 0x72
jne case.0x40d79c.1
add ebx, 2
cmp dword [esp + 0xe8], ebx
mov dword [ebp], ebx
jbe 0x40d880
mov ecx, dword [esp + 0xe8]
lea edx, [esp + 0xa4]
lea eax, [esp + 0x98]
mov dword [esp + 0x98], ebx
call fcn.0040adf0
test al, al
je 0x40d880
mov eax, dword [esp + 0xa4]
test eax, eax
jne 0x40e856
mov edi, dword [esp + 0xa8]
test edi, edi
jne 0x40e856
mov eax, dword [ebp]
cmp byte [eax], 0x3d
je 0x40e856
mov eax, dword [esp + 0x20]
mov dword [esp + 4], 0x4b65e5
mov dword [esp], eax
call fcn.0040a6b0
test eax, eax
mov esi, eax
je 0x410314
mov eax, dword [esp + 0x98]
mov dword [ebp], eax
cmp byte [eax], 0x3b
jne 0x40ea02
lea edx, [eax + 1]
mov dword [ebp], edx
movzx edx, byte [eax + 1]
movzx edi, word [edx + edx + 0x4e3480]
mov ecx, edx
shr di, 2
xor edi, 1
test dl, dl
setne dl
cmp cl, 0x2d
setne cl
and edx, ecx
mov ecx, edi
and cl, dl
mov edi, ecx
je 0x40dd2c
add eax, 2
mov dword [ebp], eax
mov ecx, dword [esp + 0xe8]
xor edx, edx
mov eax, ebp
call fcn.0040ad60
mov dword [esp + 0x2c], eax
mov eax, dword [ebp]
cmp byte [eax], 0x3b
jne 0x40ea02
lea edx, [eax + 1]
mov dword [ebp], edx
movzx edx, byte [eax + 1]
mov ecx, edx
movzx edx, word [edx + edx + 0x4e3480]
shr dx, 2
xor edx, 1
test cl, cl
mov word [esp + 0x34], dx
setne dl
cmp cl, 0x2d
setne cl
and edx, ecx
and dl, byte [esp + 0x34]
je 0x40dd87
add eax, 2
mov edi, edx
mov dword [ebp], eax
mov ecx, dword [esp + 0xe8]
xor edx, edx
mov eax, ebp
call fcn.0040ad60
mov dword [esp + 0x34], eax
mov eax, dword [ebp]
cmp byte [eax], 0x3b
jne 0x40ea02
add eax, 1
mov edx, dword [esp + 0x24]
xor ecx, ecx
mov dword [ebp], eax
mov eax, dword [esp + 0xe8]
mov dword [esp + 4], 0
mov dword [esp], ebp
mov dword [esp + 8], eax
mov eax, dword [esp + 0x20]
call fcn.0040d6e0
test eax, eax
je 0x40d880
mov ebp, dword [esp + 0x2c]
mov ebx, edi
mov edx, 0
test bl, bl
movzx ecx, byte [esp + 0x28]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 8], esi
cmovne ebp, edx
mov edx, 0xffffffff
cmove edx, dword [esp + 0x34]
mov dword [esp + 0xc], ebp
mov dword [esp + 0x14], ecx
mov dword [esp], eax
mov dword [esp + 0x10], edx
call fcn.0040a000
mov esi, eax
jmp 0x40db02
mov eax, dword [esp + 0xe8]
mov edi, dword [esp + 0x20]
xor ecx, ecx
mov edx, dword [esp + 0x24]
mov dword [esp + 4], 0
mov dword [esp], ebp
mov dword [esp + 8], eax
mov eax, edi
call fcn.0040d6e0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov dword [esp], edi
call fcn.00409f10
mov esi, eax
jmp 0x40db02
cmp byte [ebx + 1], 0x23
je 0x40e98e
mov eax, dword [esp + 0xe8]
mov edx, dword [esp + 0x24]
xor ecx, ecx
mov dword [esp + 4], 0
mov dword [esp], ebp
mov dword [esp + 8], eax
mov eax, dword [esp + 0x20]
call fcn.0040d6e0
test eax, eax
mov dword [esp + 0x2c], eax
je 0x40d880
mov eax, dword [ebp]
cmp byte [eax], 0x2c
jne case.0x40d79c.1
add eax, 1
mov edx, dword [esp + 0x24]
xor ecx, ecx
mov dword [ebp], eax
mov eax, dword [esp + 0xe8]
mov dword [esp + 4], 0
mov dword [esp], ebp
mov dword [esp + 8], eax
mov eax, dword [esp + 0x20]
call fcn.0040d6e0
test eax, eax
mov dword [esp + 0x34], eax
je 0x40d880
xor edi, edi
mov dword [esp], 0x28
call fcn.004a70b0
mov dword [esp + 0x38], esi
mov dword [esp + 0x28], 0xa
mov esi, edi
mov edi, eax
jmp 0x40df44
mov eax, dword [esp + 0xe8]
mov edx, dword [esp + 0x24]
lea esi, [edi + esi*4]
xor ecx, ecx
mov dword [esp + 4], 0
mov dword [esp], ebp
mov dword [esp + 8], eax
mov eax, dword [esp + 0x20]
call fcn.0040d6e0
test eax, eax
mov dword [esi], eax
mov esi, ebx
je 0x40d880
mov eax, dword [ebp]
movzx edx, byte [eax]
cmp dl, 0x3b
je 0x40ebca
cmp dl, 0x2c
jne 0x40d9b3
add eax, 1
lea ebx, [esi + 1]
cmp dword [esp + 0x28], ebx
mov dword [ebp], eax
ja 0x40df10
add dword [esp + 0x28], 0xa
mov dword [esp], edi
mov eax, dword [esp + 0x28]
shl eax, 2
mov dword [esp + 4], eax
call fcn.004a7130
mov edi, eax
jmp 0x40df10
mov eax, dword [esp + 0xe8]
mov edi, dword [esp + 0x20]
xor ecx, ecx
mov edx, dword [esp + 0x24]
mov dword [esp + 4], 0
mov dword [esp], ebp
mov dword [esp + 8], eax
mov eax, edi
call fcn.0040d6e0
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.00409f70
mov esi, eax
jmp 0x40db02
mov ecx, dword [esp + 0xe8]
lea edx, [esp + 0xa4]
mov dword [ebp], ebx
mov eax, ebp
call fcn.0040adf0
test al, al
je 0x40d880
mov eax, dword [esp + 0xa4]
cmp dword [esp + 0x9c], eax
jne 0x40e005
mov eax, dword [esp + 0xa8]
cmp dword [esp + 0xa0], eax
je 0x40ee2a
mov eax, dword [esp + 0xe8]
mov dword [ebp], ebx
xor ecx, ecx
mov edx, dword [esp + 0x24]
mov dword [esp + 4], 0
mov dword [esp], ebp
mov dword [esp + 8], eax
mov eax, dword [esp + 0x20]
call fcn.0040d6e0
test eax, eax
mov esi, eax
je 0x40d880
cmp dword [esp + 0x9c], 0xffffffff
je 0x40db02
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0x9c]
lea edx, [eax + 0x48]
add eax, 0x44
call fcn.0040af90
test eax, eax
je 0x40d880
mov dword [eax], esi
jmp 0x40db02
mov eax, dword [esp + 0xe8]
mov edi, dword [esp + 0x20]
xor ecx, ecx
mov edx, dword [esp + 0x24]
mov dword [esp + 4], 0
mov dword [esp], ebp
mov dword [esp + 8], eax
mov eax, edi
call fcn.0040d6e0
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.00409ec0
mov esi, eax
jmp 0x40db02
mov eax, dword [esp + 0xe8]
mov edi, dword [esp + 0x20]
xor ecx, ecx
mov edx, dword [esp + 0x24]
mov dword [esp + 4], 0
mov dword [esp], ebp
mov dword [esp + 8], eax
mov eax, edi
call fcn.0040d6e0
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.0040a1a0
mov esi, eax
jmp 0x40db02
mov eax, dword [esp + 0x38]
cmp dword [esp + 0xe8], eax
jbe 0x40d880
lea eax, [esp + 0xa4]
mov ecx, dword [esp + 0xe8]
mov dword [esp + 0x48], eax
mov edx, eax
mov eax, ebp
call fcn.0040adf0
test al, al
mov byte [esp + 0x2c], al
je 0x40d880
mov eax, dword [esp + 0x9c]
cmp dword [esp + 0xa4], eax
je 0x40ea18
mov byte [esp + 0x2c], 0
mov dword [esp + 0x40], 0
mov esi, dword [ebp]
mov dword [esp + 0x3c], 0
movzx eax, byte [esi]
cmp al, 0x3d
je 0x40ed64
cmp al, 0x3b
je 0x40ea47
mov ecx, dword [esp + 0xe8]
lea edx, [esp + 0x97]
mov eax, ebp
call fcn.0040ad60
mov ebx, eax
mov eax, dword [ebp]
cmp byte [eax], 0x3b
jne 0x40e6ef
mov ecx, dword [esp + 0xe8]
add eax, 1
lea edx, [esp + 0x98]
mov dword [esp + 0x44], eax
mov dword [ebp], eax
mov eax, ebp
call fcn.0040ad60
mov dword [esp + 0x28], eax
mov eax, dword [ebp]
cmp byte [eax], 0x3b
jne 0x40e6ef
add eax, 1
mov dword [ebp], eax
movzx eax, byte [esp + 0x97]
test al, al
jne 0x40e1c3
cmp byte [esp + 0x98], 0
je 0x40e1f7
mov edx, dword [esp + 0x3c]
test edx, edx
je 0x40ec76
mov eax, dword [esp + 0x38]
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 eax, dword [esp + 0x3c]
test eax, eax
je 0x40eddb
mov eax, dword [esp + 0x40]
test eax, eax
jne 0x40e6ef
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
call fcn.0040b0b0
test eax, eax
je 0x40fda9
mov edi, dword [esp + 0x28]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], edi
mov dword [esp], eax
call fcn.00409fa0
mov esi, eax
jmp 0x40db02
mov edi, dword [esp + 0x38]
cmp dword [esp + 0xe8], edi
jbe 0x40d880
movzx eax, byte [ebx + 1]
cmp al, 0x73
je 0x40e93c
cmp al, 0x75
je 0x40e88e
mov eax, edi
mov dword [esp + 8], eax
jmp 0x40d9c4
mov eax, dword [esp + 0x38]
cmp dword [esp + 0xe8], eax
jbe 0x40d880
cmp byte [ebx + 1], 0x2d
je 0x40e3ea
mov dword [esp], 0x28
call fcn.004a70b0
mov dword [esp], 0x28
mov dword [esp + 0x34], eax
call fcn.004a70b0
mov dword [esp + 0x3c], eax
mov eax, dword [ebp]
movzx edx, byte [eax]
cmp dl, 0x3b
setne bl
test dl, dl
setne cl
test bl, cl
je 0x4102c9
cmp dl, 0x2c
je 0x4102c9
mov dword [esp + 0x2c], 0xa
xor esi, esi
cmp dl, 0x3a
je 0x40e5e1
test dl, dl
mov ebx, eax
jne 0x40e304
jmp 0x40e5e1
test dl, dl
je 0x40e30f
add ebx, 1
movzx edx, byte [ebx]
cmp dl, 0x3a
jne 0x40e300
test dl, dl
je 0x40ea97
mov edx, ebx
add ebx, 1
sub edx, eax
call fcn.0040ad20
mov ecx, dword [esp + 0xe8]
xor edx, edx
mov edi, eax
mov dword [ebp], ebx
mov eax, ebp
call fcn.0040ad60
mov edx, eax
mov eax, dword [ebp]
cmp byte [eax], 0x2c
jne 0x40ea52
add eax, 1
mov ebx, dword [esp + 0x2c]
mov dword [ebp], eax
lea eax, [esi + 1]
cmp eax, ebx
mov dword [esp + 0x28], eax
jae 0x40e4a0
mov eax, dword [esp + 0x34]
add esi, 0x40000000
mov dword [eax + esi*4], edi
mov eax, dword [esp + 0x3c]
mov dword [eax + esi*4], edx
mov eax, dword [ebp]
mov esi, dword [esp + 0x28]
movzx edx, byte [eax]
test dl, dl
setne cl
cmp dl, 0x3b
mov edi, ecx
setne cl
mov ebx, edi
test bl, cl
je 0x40ec6d
cmp dl, 0x2c
jne 0x40e2e2
mov ebx, esi
mov eax, dword [esp + 0x34]
mov dword [eax + ebx*4], 0
mov eax, dword [esp + 0x3c]
mov dword [eax + ebx*4], 0
mov eax, dword [ebp]
cmp byte [eax], 0x3b
je 0x40ecf1
mov eax, dword [esp + 0x3c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.00409e80
mov esi, eax
jmp 0x40db02
test dl, dl
je 0x40e3f9
mov eax, ecx
lea ecx, [eax + 1]
mov dword [ebp], ecx
movzx edx, byte [eax + 1]
cmp dl, 0x3a
jne 0x40e3e4
test dl, dl
je 0x40e6ef
add eax, 2
mov dword [ebp], eax
jmp 0x40e296
mov eax, dword [esp + 0x2c]
mov dword [ebp], eax
mov eax, dword [esp + 0xe8]
mov edx, dword [esp + 0x24]
xor ecx, ecx
mov dword [esp + 4], 0
mov dword [esp], ebp
mov dword [esp + 8], eax
mov eax, dword [esp + 0x20]
call fcn.0040d6e0
test eax, eax
mov ebx, eax
je 0x40d880
mov eax, dword [ebp]
cmp byte [eax], 0x2c
jne case.0x40d79c.1
add eax, 1
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov dword [ebp], eax
mov eax, dword [esp + 0xe8]
xor ecx, ecx
mov dword [esp + 4], 0
mov dword [esp], ebp
mov dword [esp + 8], eax
mov eax, edi
call fcn.0040d6e0
test eax, eax
je 0x40d880
mov dword [esp + 8], eax
mov dword [esp + 4], ebx
mov dword [esp], edi
call fcn.0040a0e0
mov esi, eax
jmp 0x40db02
add dword [esp + 0x2c], 0xa
mov dword [esp + 0x44], edx
mov eax, dword [esp + 0x2c]
lea ecx, [eax*4]
mov eax, dword [esp + 0x34]
mov dword [esp + 4], ecx
mov dword [esp + 0x40], ecx
mov dword [esp], eax
call fcn.004a7130
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.004a7130
mov edx, dword [esp + 0x44]
mov dword [esp + 0x3c], eax
jmp 0x40e35f
cmp byte [esi + 1], 0x5f
je 0x40d82b
mov eax, dword [ebp]
mov ecx, dword [esp + 0x28]
lea esi, [eax + 1]
cmp dword [esp + 0xe8], esi
lea edi, [ecx + edi*4]
mov dword [ebp], esi
mov dword [edi], 0
jbe 0x40d85d
cmp byte [eax + 1], 0x76
jne 0x40e5c0
lea edx, [eax + 2]
mov dword [ebp], edx
movzx ecx, byte [eax + 2]
test cl, cl
mov byte [esp + 0x40], cl
je 0x40e5c0
add eax, 3
mov edx, dword [esp + 0x24]
xor ecx, ecx
mov dword [ebp], eax
mov eax, dword [esp + 0xe8]
mov dword [esp + 4], 0
mov dword [esp], ebp
mov dword [esp + 8], eax
mov eax, dword [esp + 0x20]
call fcn.0040d6e0
test eax, eax
je 0x40d85d
movzx ecx, byte [esp + 0x40]
cmp cl, 0x62
je 0x40fd3f
cmp cl, 0x66
mov dword [esp + 0x40], str._vptr_
je 0x40e5b4
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 0xc], esi
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 + 0x40], str.INVALID_CPLUSPLUS_ABBREV
mov eax, dword [ebp]
cmp byte [eax], 0x3a
je 0x40ee3d
mov dword [esp + 8], esi
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 0x40d85d
mov ebx, eax
jmp 0x40e30f
add dword [esp + 0x38], 0xa
mov eax, dword [esp + 0x38]
shl eax, 2
mov dword [esp + 4], eax
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call fcn.004a7130
mov dword [esp + 0x28], eax
movzx eax, byte [esi]
jmp 0x40d81b
mov edx, eax
mov dword [esp + 0x44], eax
mov eax, esi
sub edx, esi
call fcn.0040ad20
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], 0
lea eax, [ecx + 1]
mov dword [ebp], eax
cmp byte [ecx + 1], 0x2f
jne 0x40e678
lea eax, [ecx + 2]
mov dword [ebp], eax
movzx edx, byte [ecx + 2]
cmp dl, 0x30
je 0x40ed57
jle 0x40ecfc
cmp dl, 0x31
mov dword [esp + 0x44], 1
je 0x40e672
cmp dl, 0x32
mov dword [esp + 0x44], 0
jne 0x40eda7
add eax, 1
mov dword [ebp], eax
mov eax, dword [esp + 0xe8]
mov edx, dword [esp + 0x24]
xor ecx, ecx
mov dword [esp + 4], 0
mov dword [esp], ebp
mov dword [esp + 8], eax
mov eax, dword [esp + 0x20]
call fcn.0040d6e0
test eax, eax
mov dword [esp + 0x48], eax
je 0x40e6de
mov eax, dword [esp + 0x28]
mov ecx, dword [ebp]
lea edi, [eax + edi*4]
movzx eax, byte [ecx]
cmp al, 0x3a
je 0x40eb56
cmp al, 0x2c
je 0x40eac5
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 8], esi
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.004a9de0
jmp 0x40d85d
mov eax, dword [esp + 0x38]
jmp 0x40e272
mov edi, dword [esp + 0x28]
add eax, 1
mov dword [ebp], eax
lea eax, [edi*4 + 4]
mov dword [esp], eax
call fcn.004a70b0
test edi, edi
mov dword [esp + 0x5c], eax
je 0x4104da
mov eax, dword [ebp]
xor edi, edi
movzx eax, byte [eax]
cmp al, 0x30
je 0x40e761
cmp al, 0x31
je 0x40fe30
test al, al
je 0x40fd36
mov eax, dword [esp + 0x3c]
mov dword [esp + 8], str.unknown_virtual_character_for_baseclass
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
xor ebx, ebx
mov eax, dword [ebp]
lea edx, [eax + 1]
mov dword [ebp], edx
movzx eax, byte [eax + 1]
cmp al, 0x30
je 0x410245
jle 0x40fdf9
cmp al, 0x31
mov esi, 1
je 0x40e791
xor esi, esi
cmp al, 0x32
jne 0x40fe01
add dword [ebp], 1
mov ecx, dword [esp + 0xe8]
xor edx, edx
mov eax, ebp
call fcn.0040ad60
mov dword [esp + 0x38], eax
mov eax, dword [ebp]
cmp byte [eax], 0x2c
jne 0x40fd36
add eax, 1
mov edx, dword [esp + 0x24]
xor ecx, ecx
mov dword [ebp], eax
mov eax, dword [esp + 0xe8]
mov dword [esp + 4], 0
mov dword [esp], ebp
mov dword [esp + 8], eax
mov eax, dword [esp + 0x20]
call fcn.0040d6e0
test eax, eax
je 0x40e849
mov dword [esp + 0x10], esi
mov dword [esp + 4], eax
mov esi, dword [esp + 0x38]
mov eax, dword [esp + 0x20]
mov dword [esp + 0xc], ebx
mov dword [esp + 8], esi
mov dword [esp], eax
call fcn.0040a200
mov esi, dword [esp + 0x5c]
test eax, eax
mov dword [esi + edi*4], eax
je 0x40e849
mov eax, dword [ebp]
cmp byte [eax], 0x3b
jne 0x40e849
add eax, 1
add edi, 1
cmp dword [esp + 0x28], edi
mov dword [ebp], eax
jne 0x40e722
mov eax, dword [esp + 0x5c]
mov dword [eax + edi*4], 0
mov eax, dword [ebp]
cmp dword [esp + 0xe8], eax
mov dword [esp + 0x3c], eax
ja 0x40d7dc
mov dword [esp + 0x28], 0
jmp 0x40d871
mov eax, dword [esp + 0xe8]
mov edx, dword [esp + 0x24]
xor ecx, ecx
mov dword [esp + 4], 0
mov dword [esp], ebp
mov dword [esp + 8], eax
mov eax, dword [esp + 0x20]
call fcn.0040d6e0
mov esi, eax
mov eax, dword [ebp]
jmp 0x40dced
mov byte [esp + 0x2c], al
jmp 0x40d77f
mov esi, 1
lea eax, [ebx + 2]
mov dword [ebp], eax
movzx eax, byte [ebx + 2]
lea edx, [eax - 0x62]
cmp dl, 1
jbe 0x40e983
cmp al, 0x76
je 0x40e983
mov ecx, dword [esp + 0xe8]
xor edx, edx
mov eax, ebp
call fcn.0040ad60
mov eax, dword [ebp]
cmp byte [eax], 0x3b
jne 0x40e6ef
mov ecx, dword [esp + 0xe8]
add eax, 1
xor edx, edx
mov dword [ebp], eax
mov eax, ebp
call fcn.0040ad60
mov eax, dword [ebp]
cmp byte [eax], 0x3b
jne 0x40e6ef
mov ecx, dword [esp + 0xe8]
add eax, 1
xor edx, edx
mov dword [ebp], eax
mov eax, ebp
call fcn.0040ad60
mov edx, dword [ebp]
cmp byte [edx], 0x3b
je 0x40ed4c
test eax, eax
je 0x40ec07
mov ebx, esi
shr eax, 3
movzx esi, bl
mov dword [esp + 8], esi
mov dword [esp + 4], eax
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.00409d20
mov esi, eax
jmp 0x40db02
xor esi, esi
jmp 0x40e893
test al, al
je case.0x40d79c.1
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 0xc], esi
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 + 0x28], 7
mov dword [esp + 0x38], eax
jmp 0x40da53
add ebx, 3
mov dword [ebp], ebx
jmp 0x40e8b1
mov eax, dword [esp + 0xe8]
add ebx, 2
mov edx, dword [esp + 0x24]
mov dword [ebp], ebx
xor ecx, ecx
mov dword [esp + 4], 0
mov dword [esp], ebp
mov dword [esp + 8], eax
mov eax, dword [esp + 0x20]
call fcn.0040d6e0
test eax, eax
je 0x40d880
mov edx, dword [ebp]
cmp byte [edx], 0x3b
jne case.0x40d79c.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 + 0x20]
mov dword [esp], eax
call fcn.0040a130
mov esi, eax
jmp 0x40db02
mov dword [esp + 8], ebx
jmp 0x40d9c4
mov dword [esp + 0x28], 0xb
jmp 0x40da53
mov eax, dword [esp + 0xa8]
xor ebx, ebx
movzx edi, byte [esp + 0x2c]
cmp eax, dword [esp + 0xa0]
mov eax, 0
cmovne edi, eax
sete bl
mov eax, edi
mov dword [esp + 0x40], ebx
mov byte [esp + 0x2c], al
jmp 0x40e137
add esi, 1
mov dword [ebp], esi
jmp 0x40e155
mov eax, dword [esp + 0x38]
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.004a9de0
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call fcn.004a9de0
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
call fcn.004a9de0
jmp 0x40d880
mov eax, dword [esp + 0x38]
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 0x40ea7a
call fcn.00409d70
mov esi, eax
jmp 0x40db02
add ecx, 1
xor edx, edx
mov eax, ebp
mov dword [ebp], ecx
mov ecx, dword [esp + 0xe8]
call fcn.0040ad60
mov dword [esp + 0x4c], eax
mov eax, dword [ebp]
cmp byte [eax], 0x2c
jne 0x40e6c2
mov ecx, dword [esp + 0xe8]
add eax, 1
xor edx, edx
mov dword [ebp], eax
mov eax, ebp
call fcn.0040ad60
mov edx, dword [ebp]
cmp byte [edx], 0x3b
jne 0x40e6c2
mov ecx, dword [esp + 0x4c]
add edx, 1
mov dword [ebp], edx
mov dword [esp + 0x10], eax
mov esi, ecx
mov dword [esp + 0xc], ecx
or esi, eax
mov eax, dword [esp + 0x48]
mov esi, 3
cmovne esi, dword [esp + 0x44]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x14], esi
mov dword [esp + 4], eax
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.0040a240
mov dword [edi], eax
mov edi, ebx
jmp 0x40d800
add ecx, 1
mov dword [ebp], ecx
mov dword [esp], ecx
mov dword [esp + 4], 0x3b
mov dword [esp + 0x4c], ecx
call sub.msvcrt.dll_strchr
test eax, eax
mov ecx, dword [esp + 0x4c]
je 0x40e6c2
mov edx, eax
mov esi, eax
mov eax, ecx
sub edx, ecx
call fcn.0040ad20
mov edx, esi
mov esi, dword [esp + 0x44]
add edx, 1
mov dword [ebp], edx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x10], esi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.0040a2b0
mov byte [esp + 0x8e], 1
mov dword [edi], eax
mov edi, ebx
jmp 0x40d800
add eax, 1
test esi, esi
mov dword [esp + 0x28], edi
mov dword [ebp], eax
mov edi, esi
mov ebx, 1
jne 0x40fd78
mov eax, dword [esp + 0x28]
mov dword [eax + edi], 0
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x10], ebx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x34]
jmp 0x40e9eb
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.00409d10
mov esi, eax
jmp 0x40db02
mov ecx, dword [esp + 0xe8]
mov edi, eax
add eax, 1
mov dword [ebp], eax
xor edx, edx
mov eax, ebp
call fcn.0040ad60
mov dword [esp + 0x28], eax
mov eax, dword [ebp]
cmp byte [eax], 0x2c
je 0x40e6f8
mov eax, edi
mov dword [esp + 8], eax
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 dword [esp + 0x28], 0
jmp 0x40d871
mov ebx, dword [esp + 0x28]
jmp 0x40e39f
mov edi, str.01000000000000000000000_
mov ecx, 0x18
repe cmpsb byte [esi], byte es:[edi]
jne 0x40ec9a
mov esi, dword [esp + 0x44]
mov edi, str.0777777777777777777777_
mov ecx, 0x17
repe cmpsb byte [esi], byte es:[edi]
je 0x40fe3a
cmp al, 1
je 0x40e1cf
test ebx, ebx
jne 0x40e1cf
mov eax, dword [esp + 0x44]
mov dword [esp + 8], 0x18
mov dword [esp + 4], str.01777777777777777777777_
mov dword [esp], eax
call sub.msvcrt.dll_strncmp
test eax, eax
jne 0x40e1cf
mov dword [esp + 8], 1
mov eax, dword [esp + 0x20]
mov dword [esp + 4], 8
mov dword [esp], eax
call fcn.00409d20
mov esi, eax
jmp 0x40db02
add eax, 1
mov dword [ebp], eax
jmp 0x40e3c1
test dl, dl
jne 0x40eda7
mov dword [esp + 8], esi
jmp 0x40e5c4
movzx eax, byte [edx]
test al, al
je case.0x40d79c.1
xor ecx, ecx
jmp 0x40ed3e
cmp al, 0x3e
je 0x40ed47
test ecx, ecx
jne 0x40ed30
cmp al, 0x3a
je 0x410119
add edx, 1
movzx eax, byte [edx]
test al, al
je case.0x40d79c.1
cmp al, 0x3c
jne 0x40ed20
add ecx, 1
jmp 0x40ed30
sub ecx, 1
jmp 0x40ed30
add edx, 1
mov dword [ebp], edx
jmp 0x40e911
mov dword [esp + 0x44], 2
jmp 0x40e672
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x24]
xor ecx, ecx
mov dword [ebp], eax
mov eax, dword [esp + 0xe8]
mov dword [esp + 4], 0
mov dword [esp], ebp
mov dword [esp + 8], eax
mov eax, dword [esp + 0x20]
call fcn.0040d6e0
test eax, eax
mov dword [esp + 0x3c], eax
je 0x40d880
mov esi, dword [ebp]
movzx eax, byte [esi]
jmp 0x40e14d
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 0xc], 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]
mov dword [esp + 0x44], 0
jmp 0x40e672
mov eax, dword [esp + 0x28]
movzx ecx, byte [esp + 0x2c]
test ebx, ebx
sete dl
test eax, eax
sete al
and cl, dl
mov esi, ecx
je 0x40edfc
test al, al
jne 0x40ec07
test ebx, ebx
setg cl
test byte [esp + 0x2c], cl
je 0x40fc12
test al, al
je 0x40fc12
mov eax, dword [esp + 0x20]
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.00409d70
mov esi, eax
jmp 0x40db02
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.00409d10
mov esi, eax
jmp 0x40e037
add eax, 1
mov edx, dword [esp + 0x24]
xor ecx, ecx
mov dword [ebp], eax
mov eax, dword [esp + 0xe8]
mov dword [esp + 4], 0
mov dword [esp], ebp
mov dword [esp + 8], eax
mov eax, dword [esp + 0x20]
call fcn.0040d6e0
mov dword [esp + 0x44], eax
mov eax, dword [ebp]
cmp byte [eax], 0x2c
jne 0x40e5c0
mov ecx, dword [esp + 0xe8]
add eax, 1
xor edx, edx
mov dword [ebp], eax
mov eax, ebp
call fcn.0040ad60
mov edx, dword [ebp]
cmp byte [edx], 0x3b
jne 0x40e5c0
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], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.0040a240
test eax, eax
mov dword [edi], eax
je 0x40d85d
mov edi, ebx
jmp 0x40d800
mov ebx, edi
mov dword [esp + 0x48], esi
cmp dword [esp + 0xe8], esi
mov eax, dword [esp + 0x28]
mov dword [eax + ebx*4], 0
jbe 0x40d871
movzx edx, byte [esi]
cmp dl, 0x3b
je 0x41036d
mov dword [esp + 0x50], 0
mov dword [esp + 0x3c], 0
mov edi, edx
mov dword [esp + 0x38], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0xe0], ebp
mov dword [esp + 4], 0x3a
mov dword [esp], esi
call sub.msvcrt.dll_strchr
test eax, eax
mov ebx, eax
je 0x40f1f2
cmp byte [eax + 1], 0x3a
jne 0x40f1f2
mov eax, edi
cmp al, 0x6f
jne 0x40ef78
cmp byte [esi + 1], 0x70
je 0x40fa63
mov edx, ebx
mov eax, esi
add ebx, 2
sub edx, esi
call fcn.0040ad20
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xe0]
mov dword [eax], ebx
mov dword [esp], 0x28
xor edi, edi
call fcn.004a70b0
mov ebx, dword [esp + 0x38]
mov ebp, dword [esp + 0xe0]
mov dword [esp + 0x50], eax
mov dword [esp + 0x40], 0
mov dword [esp + 0x64], 0xa
test edi, edi
je 0x40f58a
mov eax, dword [ebp]
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 esi, eax
je 0x40f5c5
mov eax, dword [esp + 0x20]
mov dword [esp + 4], edi
mov dword [esp], eax
call fcn.0040a840
cmp eax, 0x13
mov byte [esp + 0x38], 0
je 0x40f6cf
mov eax, dword [ebp]
mov edx, esi
sub edx, eax
call fcn.0040ad20
mov ebx, eax
lea eax, [esi + 1]
mov dword [ebp], eax
movzx eax, byte [esi + 1]
cmp al, 0x30
je 0x40f3d0
cmp al, 0x31
je 0x40f3dd
test al, al
je 0x40f5c5
mov dword [esp + 0x6c], 0
lea eax, [esi + 2]
mov dword [ebp], eax
movzx edx, byte [esi + 2]
lea ecx, [edx - 0x2a]
cmp cl, 0x1a
ja case.0x40f05a.1
movzx ecx, cl
jmp dword [ecx*4 + 0x4b7124]
mov byte [esp + 0x4c], 0
mov byte [esp + 0x8c], 0
cmp dl, 0x2e
je 0x40f6a4
cmp dl, 0x3f
je 0x40f655
cmp dl, 0x2a
je 0x40f5ee
mov eax, dword [esp + 0x48]
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 + 0x60], 0
mov dword [esp + 0x70], 0
mov byte [esp + 0x8d], 0
mov dword [esp + 0x54], 0
cmp byte [esp + 0x38], 0
jne 0x40f40a
mov dword [esp + 0x44], ebx
mov edx, edi
mov eax, dword [esp + 0x40]
mov edi, dword [esp + 0x54]
lea esi, [eax + 1]
cmp esi, dword [esp + 0x64]
jae 0x40f55d
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x40]
cmp byte [esp + 0x8d], 0
lea ecx, [eax + ecx*4]
mov dword [esp + 0x38], ecx
jne 0x40f390
mov eax, dword [esp + 0x60]
mov dword [esp + 8], edx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x18], eax
movzx eax, byte [esp + 0x4c]
mov dword [esp + 0x14], eax
movzx eax, byte [esp + 0x8c]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.0040a340
mov ecx, dword [esp + 0x38]
mov dword [ecx], eax
test eax, eax
je 0x40f530
mov eax, dword [ebp]
mov dword [esp + 0x40], esi
movzx edx, byte [eax]
cmp dl, 0x3b
je 0x40f17e
test dl, dl
jne 0x40efc0
mov edi, dword [esp + 0x50]
mov dword [esp + 0x38], ebx
mov dword [edi + esi*4], 0
cmp byte [eax], 0
je 0x40f19e
mov edi, dword [esp + 0xe0]
add eax, 1
mov dword [edi], eax
mov eax, dword [esp + 0x78]
lea ebx, [eax + 1]
cmp ebx, dword [esp + 0x74]
jae 0x4103a9
mov eax, dword [esp + 0x58]
mov edi, dword [esp + 0x78]
lea esi, [eax + edi*4]
mov eax, dword [esp + 0x50]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.0040a320
mov dword [esi], eax
mov eax, dword [esp + 0xe0]
mov dword [esp + 0x78], ebx
mov esi, dword [eax]
movzx edi, byte [esi]
mov eax, edi
cmp al, 0x3b
jne 0x40ef44
mov eax, dword [esp + 0x58]
mov ebp, dword [esp + 0xe0]
test eax, eax
je 0x40f20c
mov edi, dword [esp + 0x78]
mov dword [eax + edi*4], 0
cmp dword [esp + 0xe8], esi
jbe 0x40d871
movzx edx, byte [esi]
mov eax, esi
cmp dl, 0x3b
je 0x40f7df
xor ebx, ebx
cmp byte [esp + 0x2c], 0x73
sete bl
cmp dl, 0x7e
mov edi, ebx
je 0x40f6f6
mov ecx, 1
xor eax, eax
mov edx, dword [esp + 0x5c]
movzx ebx, byte [esp + 0x8e]
test edx, edx
sete dl
xor ebx, 1
and edx, ebx
mov ebx, dword [esp + 0x58]
test ebx, ebx
sete bl
test dl, bl
je 0x40f26e
test cl, cl
jne 0x40f35f
xor edx, edx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x1c], edx
mov dword [esp + 4], edi
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.00409df0
mov esi, eax
jmp 0x40db02
lea eax, [esi + 3]
mov byte [esp + 0x4c], 1
mov byte [esp + 0x8c], 1
mov dword [ebp], eax
movzx edx, byte [esi + 3]
jmp 0x40f06e
lea eax, [esi + 3]
mov byte [esp + 0x4c], 1
mov byte [esp + 0x8c], 0
mov dword [ebp], eax
movzx edx, byte [esi + 3]
jmp 0x40f06e
lea eax, [esi + 3]
mov byte [esp + 0x4c], 0
mov byte [esp + 0x8c], 1
mov dword [ebp], eax
movzx edx, byte [esi + 3]
jmp 0x40f06e
lea eax, [esi + 3]
mov byte [esp + 0x4c], 0
mov byte [esp + 0x8c], 0
mov dword [ebp], eax
movzx edx, byte [esi + 3]
jmp 0x40f06e
mov eax, dword [esp + 0x48]
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 byte [esp + 0x4c], 0
mov byte [esp + 0x8c], 0
movzx edx, byte [eax]
jmp 0x40f06e
mov eax, dword [esp + 0x28]
mov dword [esp + 4], edi
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.00409d80
mov esi, eax
jmp 0x40db02
movzx eax, byte [esp + 0x4c]
mov dword [esp + 8], edx
mov dword [esp + 0x14], eax
movzx eax, byte [esp + 0x8c]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.0040a3c0
mov ecx, dword [esp + 0x38]
mov dword [ecx], eax
jmp 0x40f15f
mov dword [esp + 0x6c], 2
jmp 0x40f041
mov dword [esp + 0x6c], 1
jmp 0x40f041
mov dword [esp + 0x54], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x70], 0
mov byte [esp + 0x8d], 1
mov esi, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
lea ecx, [esp + 0x9c]
mov eax, esi
call fcn.0040b0b0
test eax, eax
mov dword [esp + 0x84], eax
je 0x40f530
mov dword [esp + 4], edi
mov dword [esp], esi
call fcn.0040a930
test eax, eax
mov dword [esp + 0x88], eax
je 0x40f5c5
movzx eax, byte [ebx]
cmp al, 0x5f
mov byte [esp + 0x7c], al
je 0x40fb22
mov edi, str.__ct
mov ecx, 4
mov esi, ebx
repe cmpsb byte [esi], byte es:[edi]
je 0x40fb9a
mov esi, dword [esp + 0x34]
xor eax, eax
test esi, esi
je 0x40f490
mov eax, dword [esp + 0x34]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
call sub.msvcrt.dll_strcmp
test eax, eax
sete al
movzx eax, al
mov dword [esp + 0x38], eax
xor eax, eax
cmp byte [esp + 0x7c], 0x5f
je 0x40fb4d
mov edi, str.__dt
mov ecx, 4
mov esi, ebx
repe cmpsb byte [esi], byte es:[edi]
sete dl
movzx edx, dl
or eax, edx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x80], 0
je 0x40f8c0
cmp byte [esp + 0x7c], 0
sete al
or al, dl
mov byte [esp + 0x8f], al
je 0x40f7ee
mov dword [esp], 4
call fcn.004a70b0
mov dword [eax], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.0040a130
test eax, eax
mov edx, eax
jne 0x40f0e2
mov dword [esp + 0x38], ebx
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
call fcn.004a9de0
mov eax, dword [esp + 0x50]
mov dword [esp], eax
call fcn.004a9de0
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call fcn.004a9de0
jmp 0x40d871
add dword [esp + 0x64], 0xa
mov dword [esp + 0x38], edx
mov eax, dword [esp + 0x64]
shl eax, 2
mov dword [esp + 4], eax
mov eax, dword [esp + 0x50]
mov dword [esp], eax
call fcn.004a7130
mov edx, dword [esp + 0x38]
mov dword [esp + 0x50], eax
jmp 0x40f0f7
mov eax, dword [esp + 0xe8]
mov edx, dword [esp + 0x24]
xor ecx, ecx
mov dword [esp + 4], 0
mov dword [esp], ebp
mov dword [esp + 8], eax
mov eax, dword [esp + 0x20]
call fcn.0040d6e0
test eax, eax
mov edi, eax
je 0x40f530
mov eax, dword [ebp]
cmp byte [eax], 0x3a
je 0x40efcb
mov dword [esp + 0x38], ebx
mov eax, dword [esp + 0x48]
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 0x40f534
mov ecx, dword [esp + 0xe8]
add eax, 1
xor edx, edx
mov dword [ebp], eax
mov eax, ebp
call fcn.0040ad60
mov edx, dword [ebp]
cmp byte [edx], 0x3b
jne 0x40f5c5
lea ecx, [edx + 1]
and eax, 0x7fffffff
mov dword [esp + 0x70], eax
mov dword [ebp], ecx
movzx eax, byte [edx + 1]
cmp al, 0x3b
sete dl
test al, al
sete al
or dl, al
mov byte [esp + 0x8d], dl
je 0x40fac6
mov dword [esp + 0x60], 0
mov byte [esp + 0x8d], 0
mov dword [esp + 0x54], 0
jmp 0x40f0d1
mov esi, dword [esp + 0x3c]
add eax, 1
mov dword [ebp], eax
mov dword [esp], esi
call sub.msvcrt.dll_strlen
mov dword [esp + 4], esi
mov dword [esp + 8], eax
mov dword [esp], ebx
call sub.msvcrt.dll_strncmp
test eax, eax
jne 0x40f3ea
mov dword [esp + 0x60], 0
mov dword [esp + 0x70], 0
mov byte [esp + 0x8d], 1
mov dword [esp + 0x54], 0
jmp 0x40f0d1
add eax, 1
mov dword [esp + 0x60], 0
mov dword [esp + 0x70], 0
mov dword [ebp], eax
mov byte [esp + 0x8d], 0
mov dword [esp + 0x54], 0
jmp 0x40f0d1
lea eax, [esp + 0x96]
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.0040a970
test eax, eax
sete byte [esp + 0x38]
jmp 0x40f009
lea edx, [eax + 1]
mov dword [ebp], edx
movzx ecx, byte [eax + 1]
mov ebx, ecx
and ebx, 0xffffffef
cmp bl, 0x2d
je 0x40f7d0
cmp cl, 0x2b
je 0x40f7d0
cmp cl, 0x25
jne 0x40f23c
lea ebx, [edx + 1]
mov ecx, dword [esp + 0xe8]
lea edx, [esp + 0xa4]
mov eax, ebp
mov dword [ebp], ebx
call fcn.0040adf0
test al, al
je 0x40d871
mov eax, dword [esp + 0x9c]
cmp dword [esp + 0xa4], eax
jne 0x40f767
mov eax, dword [esp + 0xa0]
cmp dword [esp + 0xa8], eax
je 0x41039d
mov eax, dword [esp + 0xe8]
mov dword [ebp], ebx
xor ecx, ecx
mov edx, dword [esp + 0x24]
mov dword [esp + 4], 0
mov dword [esp], ebp
mov dword [esp + 8], eax
mov eax, dword [esp + 0x20]
call fcn.0040d6e0
mov edx, dword [ebp]
movzx ecx, byte [edx]
test cl, cl
je 0x40f7af
cmp cl, 0x3b
jne 0x40f7a4
jmp 0x40f7af
test cl, cl
je 0x40f7af
add edx, 1
movzx ecx, byte [edx]
cmp cl, 0x3b
jne 0x40f7a0
cmp cl, 0x3b
jne 0x4103ce
add edx, 1
test eax, eax
mov dword [ebp], edx
sete cl
jmp 0x40f243
lea edx, [eax + 2]
mov dword [ebp], edx
movzx ecx, byte [eax + 2]
jmp 0x40f717
lea eax, [esi + 1]
mov dword [ebp], eax
movzx edx, byte [esi + 1]
jmp 0x40f227
mov eax, dword [esp + 0x44]
mov dword [esp + 0x98], eax
cmp byte [eax], 0x5f
jne 0x40f808
cmp byte [eax + 1], 0x5a
je 0x41045a
mov eax, dword [esp + 0x20]
mov dword [esp], 0x50
mov dword [esp + 0xac], 0
mov byte [esp + 0xb0], 0
mov dword [esp + 0xbc], 0xa
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0xa8], eax
call fcn.004a70b0
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0xb8], 0
mov esi, dword [esp + 0x98]
test eax, eax
je 0x40fc90
add eax, esi
mov edi, eax
cmp esi, edi
je 0x4101a8
cmp byte [edi + 2], 0
jne 0x40fea6
mov dword [esp + 0x38], ebx
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 + 0xb4]
mov dword [esp], eax
call fcn.004a9de0
jmp 0x40f534
mov eax, dword [esp + 0x34]
test eax, eax
je 0x410396
mov dword [esp], eax
call sub.msvcrt.dll_strlen
mov edi, eax
cmp byte [esp + 0x8c], 0
mov esi, 0x4b6def
mov edx, 0x4b6ded
mov eax, 0x4b6df0
cmove edx, esi
cmp byte [esp + 0x4c], 0
cmovne esi, eax
test edi, edi
je 0x410219
mov eax, dword [esp + 0x34]
test eax, eax
je 0x41024f
mov dword [esp + 4], 0x3c
mov dword [esp], eax
mov dword [esp + 0x44], edx
call sub.msvcrt.dll_strchr
test eax, eax
mov edx, dword [esp + 0x44]
je 0x41024f
mov dword [esp + 0xc], esi
lea esi, [esp + 0xa4]
mov dword [esp + 8], edx
mov dword [esp + 4], str.___s_s
xor edi, edi
mov dword [esp], esi
call sub.msvcrt.dll_sprintf
mov dword [esp + 0x44], 0
mov eax, dword [esp + 0x38]
test eax, eax
jne 0x40fbac
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
mov edx, esi
mov dword [esp + 0x7c], eax
mov ecx, dword [edx]
add edx, 4
lea eax, [ecx - 0x1010101]
not ecx
and eax, ecx
and eax, 0x80808080
je 0x40f973
mov ecx, eax
mov dword [esp], ebx
shr ecx, 0x10
test eax, 0x8080
cmove eax, ecx
lea ecx, [edx + 2]
cmove edx, ecx
mov ecx, eax
add cl, al
sbb edx, 3
sub edx, esi
mov dword [esp + 0x80], edx
call sub.msvcrt.dll_strlen
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x80]
lea ecx, [edi + ecx + 1]
mov edi, dword [esp + 0x3c]
add edx, ecx
add eax, edx
cmp byte [edi], 0x6f
jne 0x4100fa
mov edi, dword [esp + 0x3c]
cmp byte [edi + 1], 0x70
jne 0x4100fa
mov edi, dword [esp + 0x3c]
movzx edx, byte [edi + 2]
cmp dl, 0x24
je 0x40f530
cmp dl, 0x2e
je 0x40f530
mov dword [esp], eax
call fcn.004a70b0
cmp dword [esp + 0x38], 0
mov edi, eax
je 0x410104
mov byte [edi], 0
mov dword [esp], edi
call sub.msvcrt.dll_strlen
mov dword [esp + 0x80], eax
add eax, edi
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.004a7510
mov esi, dword [esp + 0x44]
test esi, esi
je 0x40fa45
mov dword [esp + 4], esi
mov dword [esp], eax
call sub.msvcrt.dll_strcpy
mov dword [esp + 4], ebx
mov dword [esp], edi
call sub.msvcrt.dll_strcat
movzx eax, byte [ebx]
xor edx, edx
mov dword [esp + 0x44], edi
mov byte [esp + 0x7c], al
jmp 0x40f4cf
cmp byte [esi + 2], 0x24
jne 0x40ef78
mov edi, dword [esp + 0xe0]
lea eax, [ebx + 2]
mov dword [edi], eax
movzx edx, byte [ebx + 2]
mov ebx, eax
test dl, dl
je 0x40fa9f
cmp dl, 0x2e
jne 0x40fa94
jmp 0x40fa9f
test dl, dl
je 0x40fa9f
add ebx, 1
movzx edx, byte [ebx]
cmp dl, 0x2e
jne 0x40fa90
cmp dl, 0x2e
jne 0x40f5c9
mov edx, ebx
add ebx, 1
sub edx, eax
call fcn.0040ad20
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xe0]
mov dword [eax], ebx
jmp 0x40ef93
mov eax, dword [esp + 0xe8]
mov edx, dword [esp + 0x24]
xor ecx, ecx
mov dword [esp + 4], 0
mov dword [esp], ebp
mov dword [esp + 8], eax
mov eax, dword [esp + 0x20]
call fcn.0040d6e0
mov dword [esp + 0x54], eax
mov eax, dword [ebp]
movzx edx, byte [eax]
cmp dl, 0x3a
je 0x4102bc
cmp dl, 0x3b
jne 0x40f5c5
add eax, 1
mov dword [ebp], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x54], 0
mov dword [esp + 0x60], eax
jmp 0x40f0d1
cmp byte [ebx + 1], 0x5f
je 0x41027f
mov edi, str.__ct
mov ecx, 4
mov esi, ebx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40f46d
mov eax, 1
mov dword [esp + 0x38], 1
movzx ecx, byte [ebx + 1]
cmp cl, 0x24
mov byte [esp + 0x44], cl
je 0x40fcdc
cmp cl, 0x2e
je 0x40fcdc
mov edi, str.__dt
mov ecx, 4
mov esi, ebx
repe cmpsb byte [esi], byte es:[edi]
sete dl
cmp byte [esp + 0x44], 0x5a
movzx edx, dl
jne 0x40f4b8
mov dword [esp + 0x44], ebx
mov dword [esp + 0x80], 0
jmp 0x40f4cf
mov eax, 1
mov dword [esp + 0x38], 1
jmp 0x40f4a4
mov edx, esi
mov ecx, dword [edx]
add edx, 4
lea eax, [ecx - 0x1010101]
not ecx
and eax, ecx
and eax, 0x80808080
je 0x40fbae
mov ecx, eax
mov dword [esp], ebx
shr ecx, 0x10
test eax, 0x8080
cmove eax, ecx
lea ecx, [edx + 2]
cmove edx, ecx
mov ecx, eax
add cl, al
sbb edx, 3
sub edx, esi
mov dword [esp + 0x7c], edx
call sub.msvcrt.dll_strlen
mov edx, dword [esp + 0x7c]
lea edx, [edi + edx + 1]
mov edi, dword [esp + 0x3c]
add eax, edx
cmp byte [edi], 0x6f
je 0x410120
mov dword [esp], eax
call fcn.004a70b0
mov edi, eax
jmp 0x40fa11
test cl, cl
je 0x40fc1e
test al, al
jne 0x4104e1
cmp dword [esp + 0x28], 0xffffffff
jne 0x40fe47
test dl, dl
je 0x40fe47
mov eax, dword [esp + 0x34]
test eax, eax
je 0x40fc6d
mov dword [esp + 4], str.long_long_int
mov dword [esp], eax
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x40fe3a
mov eax, dword [esp + 0x34]
mov dword [esp + 4], str.long_long_unsigned_int
mov dword [esp], eax
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x40ecce
mov dword [esp + 8], 1
mov eax, dword [esp + 0x20]
mov dword [esp + 4], 4
mov dword [esp], eax
call fcn.00409d20
mov esi, eax
jmp 0x40db02
mov eax, esi
mov dword [esp + 4], 0x5f
mov dword [esp], eax
call sub.msvcrt.dll_strchr
test eax, eax
mov edi, eax
je 0x40f886
cmp byte [edi + 1], 0x5f
lea eax, [eax + 1]
jne 0x40fc92
test eax, eax
je 0x40f886
mov dword [esp], edi
mov dword [esp + 4], 0x4b6f96
call sub.msvcrt.dll_strspn
lea edx, [edi + eax - 2]
cmp eax, 3
cmovae edi, edx
jmp 0x40f874
cmp byte [ebx + 2], 0x5f
jne 0x40fb67
mov dword [esp + 0x44], ebx
jmp 0x40f4e6
mov esi, dword [ebp]
mov ebx, edi
mov dword [esp + 0x48], esi
jmp 0x40eee7
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 eax, dword [esp + 0x28]
mov dword [esp], eax
call fcn.004a9de0
mov dword [esp + 0x28], 0
jmp 0x40d871
mov eax, dword [esp + 0x3c]
jmp 0x40ec44
mov dword [esp + 4], eax
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.0040a870
test eax, eax
je 0x41033f
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov dword [esp], str._vb_
call fcn.0049e100
mov dword [esp + 0x40], eax
jmp 0x40e5b4
lea eax, [esi + 0x3fffffff]
mov esi, dword [esp + 0x28]
lea edi, [eax*4]
mov eax, dword [esi + eax*4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.0040a840
cmp eax, 2
je 0x40fdf2
add edi, 4
jmp 0x40ebe3
mov eax, dword [esp + 0x38]
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 + 0x20]
mov dword [esp + 8], 0
mov dword [esp + 4], 4
mov dword [esp], eax
call fcn.00409d20
jmp 0x40e228
xor ebx, ebx
jmp 0x40ebe3
test al, al
je 0x40fd36
mov eax, dword [esp + 0x3c]
mov dword [esp + 8], str.unknown_visibility_character_for_baseclass
xor esi, esi
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
jmp 0x40e791
mov ebx, 1
jmp 0x40e763
mov dword [esp + 8], 0
jmp 0x40ecd6
mov ecx, esi
test cl, cl
je 0x410133
cmp dword [esp + 0x28], 0x7f
je 0x4102d0
cmp dword [esp + 0x28], 0
js 0x4104c7
cmp dword [esp + 0x28], 0xff
je 0x4104ba
cmp dword [esp + 0x28], 0xffff
jne 0x40e203
mov dword [esp + 8], 1
mov eax, dword [esp + 0x20]
mov dword [esp + 4], 2
mov dword [esp], eax
call fcn.00409d20
mov esi, eax
jmp 0x40db02
lea esi, [esp + 0xa4]
lea edx, [esp + 0x98]
mov ecx, edi
mov eax, esi
call fcn.0040d650
test al, al
je 0x410451
mov eax, dword [esp + 0x98]
mov dword [esp + 0x80], eax
movzx eax, byte [eax]
test al, al
je 0x40ff4e
mov edx, eax
movzx eax, byte [esp + 0x8f]
mov esi, dword [esp + 0x80]
mov byte [esp + 0x7c], 0
xor edi, edi
mov dword [esp + 0x38], ebx
mov dword [esp + 0xe0], ebp
sub edx, 0x30
cmp dl, 0x44
ja case.0x40ff0c.10
movzx edx, dl
jmp dword [edx*4 + 0x4b7190]
test edi, edi
cmove edi, esi
add esi, 1
mov dword [esp + 0x98], esi
cmp byte [esp + 0x7c], 0
jne 0x4100e7
mov esi, dword [esp + 0x98]
movzx edx, byte [esi]
test dl, dl
jne 0x40fefd
test al, al
mov ebx, dword [esp + 0x38]
mov ebp, dword [esp + 0xe0]
je 0x410423
mov eax, dword [esp + 0xb4]
mov dword [esp], eax
call fcn.004a9de0
mov esi, dword [esp + 0xac]
mov dword [esp + 0xb4], 0
test esi, esi
je 0x4103ef
movzx eax, byte [esp + 0xb0]
mov byte [esp + 0x97], al
test esi, esi
je 0x40f530
movzx eax, byte [esp + 0x97]
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], eax
jmp 0x40f504
lea eax, [esp + 0xb0]
lea ebx, [esp + 0xa4]
lea ebp, [esp + 0x98]
lea ecx, [esp + 0xac]
mov dword [esp], eax
mov edx, ebp
mov eax, ebx
call fcn.0040d470
test al, al
jne 0x40ff22
jmp 0x40f8a6
lea ebp, [esp + 0x98]
test edi, edi
cmovne esi, edi
xor edx, edx
mov eax, ebp
call fcn.0040b5a0
test al, al
je 0x40f8a6
mov ecx, dword [esp + 0x98]
lea ebx, [esp + 0xa4]
sub ecx, esi
mov edx, esi
mov eax, ebx
call fcn.0040acc0
test al, al
je 0x40f8a6
xor edi, edi
lea eax, [esp + 0xb0]
lea ecx, [esp + 0xac]
mov edx, ebp
mov dword [esp], eax
mov eax, ebx
call fcn.0040d470
test al, al
mov byte [esp + 0x7c], al
jne 0x40ff2d
jmp 0x40f8a6
mov eax, dword [esp + 0x80]
mov dword [esp + 8], eax
jmp 0x40f88e
lea ebp, [esp + 0x98]
lea ebx, [esp + 0xa4]
test edi, edi
cmovne esi, edi
xor ecx, ecx
mov edx, ebp
mov eax, ebx
call fcn.0040cad0
test al, al
je 0x40f8a6
mov ecx, dword [esp + 0x98]
sub ecx, esi
jmp 0x410005
lea ebp, [esp + 0x98]
lea ebx, [esp + 0xa4]
xor ecx, ecx
mov edx, ebp
mov eax, ebx
call fcn.0040d000
test al, al
jne 0x410079
jmp 0x40f8a6
lea eax, [esp + 0xb0]
lea ebx, [esp + 0xa4]
lea ebp, [esp + 0x98]
lea ecx, [esp + 0xac]
add esi, 1
mov dword [esp], eax
mov edx, ebp
mov eax, ebx
mov dword [esp + 0x98], esi
call fcn.0040d470
test al, al
je 0x40f8a6
xor edi, edi
jmp 0x40ff22
lea ebx, [esp + 0xa4]
lea ebp, [esp + 0x98]
jmp 0x410018
mov dword [esp], eax
call fcn.004a70b0
mov edi, eax
mov eax, dword [esp + 0x3c]
mov dword [esp], edi
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcpy
jmp 0x40fa14
mov ebx, edx
jmp 0x40daa1
mov edi, dword [esp + 0x3c]
cmp byte [edi + 1], 0x70
jne 0x40fc03
jmp 0x40f9e2
test ebx, ebx
je 0x40fe5c
mov edx, ebx
shr edx, 0x1f
test dl, dl
je 0x41015c
test al, al
je 0x41015c
cmp ebx, 0xfffffff8
je 0x4102f3
cmp byte [esp + 0x2c], 0
jne 0x4102f3
mov edi, dword [esp + 0x28]
mov eax, edi
not eax
cmp ebx, eax
je 0x410175
mov eax, edi
add eax, 1
cmp ebx, eax
jne 0x40e203
mov eax, dword [esp + 0x28]
cmp eax, 0x7f
je 0x4102d0
cmp eax, 0x7fff
je 0x41037a
cmp dword [esp + 0x28], 0x7fffffff
jne 0x40e203
mov dword [esp + 8], 0
jmp 0x40fc75
movzx eax, byte [esi + 2]
test byte [eax + eax + 0x4e3480], 4
jne 0x410387
cmp al, 0x74
sete cl
cmp al, 0x51
sete al
or cl, al
jne 0x410387
cmp byte [esi], 0x5f
mov eax, esi
jne 0x4101db
add eax, 1
cmp byte [eax], 0x5f
je 0x4101d3
mov dword [esp + 4], 0x4b6f98
mov dword [esp], eax
call sub.msvcrt.dll_strstr
test eax, eax
je 0x40f886
cmp byte [eax + 2], 0
je 0x40f886
lea esi, [esp + 0xa4]
lea edx, [esp + 0x98]
mov ecx, eax
mov eax, esi
call fcn.0040d650
jmp 0x40febd
mov dword [esp + 0xc], esi
lea esi, [esp + 0xa4]
mov dword [esp + 8], edx
mov dword [esp + 4], str.___s_s
mov dword [esp], esi
call sub.msvcrt.dll_sprintf
mov eax, dword [esp + 0x34]
mov dword [esp + 0x44], eax
jmp 0x40f955
mov esi, 2
jmp 0x40e791
mov dword [esp + 0xc], esi
lea esi, [esp + 0xa4]
mov dword [esp + 0x10], edi
mov dword [esp + 8], edx
mov dword [esp + 4], str.___s_s_d
mov dword [esp], esi
call sub.msvcrt.dll_sprintf
mov eax, dword [esp + 0x34]
mov dword [esp + 0x44], eax
jmp 0x40f955
movzx edx, byte [ebx + 2]
test byte [edx + edx + 0x4e3480], 4
mov eax, edx
jne 0x4102a2
cmp dl, 0x51
sete dl
cmp al, 0x74
sete al
or dl, al
je 0x40fb2c
movzx eax, byte [ebx + 1]
mov dword [esp + 0x38], 1
mov byte [esp + 0x44], al
mov eax, 1
jmp 0x40fb67
mov dword [esp + 0x60], 0
jmp 0x40f0d1
xor ebx, ebx
jmp 0x40e39f
mov dword [esp + 8], 0
mov eax, dword [esp + 0x20]
mov dword [esp + 4], 1
mov dword [esp], eax
call fcn.00409d20
mov esi, eax
jmp 0x40db02
mov eax, dword [esp + 0x20]
neg ebx
mov dword [esp + 8], 1
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.00409d20
mov esi, eax
jmp 0x40db02
mov eax, dword [esp + 0x20]
mov dword [esp + 8], 0
mov dword [esp + 4], 4
mov dword [esp], eax
call fcn.00409d20
test eax, eax
mov esi, eax
jne 0x40dce3
jmp 0x40d880
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 0xc], esi
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, 0x4b6dc9
jmp 0x40fd57
mov dword [esp + 0x58], 0
jmp 0x40f20c
mov dword [esp + 8], 0
jmp 0x40fe8b
add edi, 2
mov dword [esp + 0x98], edi
jmp 0x40fec5
xor edi, edi
jmp 0x40f8d6
mov edx, 1
xor eax, eax
jmp 0x40f270
add dword [esp + 0x74], 0xa
mov eax, dword [esp + 0x74]
shl eax, 2
mov dword [esp + 4], eax
mov eax, dword [esp + 0x58]
mov dword [esp], eax
call fcn.004a7130
mov dword [esp + 0x58], eax
jmp 0x40f1af
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 8], esi
mov dword [esp + 4], str.Bad_stab:__s_n
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
jmp 0x40d871
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 esi, dword [esp + 0xac]
jmp 0x40ff77
lea eax, [esp + 0xb0]
lea esi, [esp + 0xa4]
lea edx, [esp + 0x98]
lea ecx, [esp + 0xac]
mov dword [esp], eax
mov eax, esi
call fcn.0040d470
test al, al
jne 0x40ff4e
mov dword [esp + 0x38], ebx
jmp 0x40f8a6
lea esi, [esp + 0xa4]
mov dword [esp + 4], 3
mov dword [esp], eax
mov dword [esp + 8], esi
call fcn.0049e400
test eax, eax
je 0x410538
cmp dword [eax], 3
jne 0x4104f8
mov eax, dword [eax + 0x10]
cmp dword [eax], 0x29
jne 0x4104f8
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x97]
mov edx, dword [esp + 0x24]
mov dword [esp], eax
mov eax, dword [esp + 0x20]
call fcn.0040bee0
mov esi, eax
mov eax, dword [esp + 0xa4]
mov dword [esp], eax
call fcn.004a9de0
jmp 0x40ff86
mov dword [esp + 8], 1
jmp 0x4102d8
mov eax, dword [esp + 0x28]
mov dword [esp + 8], 1
neg eax
jmp 0x40e925
xor edi, edi
jmp 0x40e82a
mov eax, dword [esp + 0x20]
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.00409d50
mov esi, eax
jmp 0x40db02
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
mov dword [esp + 0x38], ebx
add eax, 0x40
mov dword [esp + 0xc], eax
call sub.msvcrt.dll_fwrite
mov eax, dword [esp + 0xa4]
mov dword [esp], eax
call fcn.004a9de0
jmp 0x40f534
mov eax, dword [esp + 0x44]
mov dword [esp + 4], str.bad_mangled_name___s_n
mov dword [esp + 0x38], ebx
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 0x40f534