Function at 0x40be00
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 esi, dword [esp + 0xf4]
mov dword [esp + 0x28], eax
mov ebp, dword [esp + 0xf0]
mov dword [esp + 0x24], edx
mov dword [esp + 0x30], ecx
test esi, esi
je 0x40be2e
mov dword [esi], 0
mov ebx, dword [ebp]
mov eax, dword [esp + 0x24]
mov dword [eax + 0xd8], 0
movzx eax, byte [ebx]
movzx edx, al
test byte [edx + edx + 0x4b8120], 4
jne 0x40bea4
cmp al, 0x28
je 0x40bea4
cmp al, 0x2d
je 0x40bea4
mov dword [esp + 0xb0], 0xffffffff
mov edi, ebx
xor esi, esi
mov dword [esp + 0xac], 0xffffffff
movzx eax, byte [ebx]
mov dword [esp + 0x2c], 0xffffffff
mov byte [esp + 0x34], al
lea eax, [edi + 1]
mov dword [esp + 0x38], eax
mov dword [ebp], eax
movzx eax, byte [esp + 0x34]
sub eax, 0x23
cmp al, 0x55
ja case.0x40be9d.1
movzx eax, al
jmp dword [eax*4 + 0x49943c]
lea edx, [esp + 0xac]
mov eax, ebp
call fcn.004095e0
test eax, eax
je 0x40bfe3
mov edi, dword [ebp]
cmp byte [edi], 0x3d
jne 0x40bfa0
test esi, esi
je 0x40befb
mov eax, dword [esp + 0xac]
test eax, eax
js 0x40befb
mov ecx, dword [esp + 0xb0]
test ecx, ecx
js 0x40befb
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0xac]
lea edx, [eax + 0x48]
add eax, 0x44
call fcn.004097a0
mov dword [esi], eax
mov edi, dword [ebp]
add edi, 1
xor esi, esi
mov dword [ebp], edi
mov dword [esp + 0x2c], 0xffffffff
movzx eax, byte [edi]
cmp al, 0x40
jne 0x40cbb9
movzx edx, byte [edi + 1]
lea eax, [edi + 1]
movzx ecx, dl
test byte [ecx + ecx + 0x4b8120], 4
jne 0x40ca9d
cmp dl, 0x28
je 0x40ca9d
cmp dl, 0x2d
jne 0x40bf4f
lea esi, [esi]
jmp 0x40ca9d
test dl, dl
je case.0x40be9d.1
add eax, 1
movzx edx, byte [eax]
cmp dl, 0x3b
jne 0x40bf45
add eax, 1
mov dword [ebp], eax
movzx edx, byte [edi + 1]
cmp dl, 0x53
je 0x40bff2
cmp dl, 0x73
jne 0x40bf93
add edi, 2
mov dword [esp], edi
call sub.msvcrt.dll_atoi
test eax, eax
lea edx, [eax + 7]
cmovs eax, edx
mov dword [esp + 0x2c], eax
mov eax, dword [ebp]
sar dword [esp + 0x2c], 3
mov edx, dword [esp + 0x2c]
test edx, edx
jle 0x40bffe
mov edi, eax
jmp 0x40bf0b
mov edx, dword [esp + 0x24]
lea ecx, [esp + 0xac]
mov eax, dword [esp + 0x28]
call fcn.00409910
mov ebx, eax
add esp, 0xdc
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
mov ebx, dword [esp + 0x3c]
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
xor ebx, ebx
add esp, 0xdc
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
mov esi, 1
mov edi, eax
jmp 0x40bf0b
mov dword [esp + 0x2c], 0xffffffff
mov edi, eax
jmp 0x40bf0b
mov edi, dword [esp + 0x28]
xor ecx, ecx
mov edx, dword [esp + 0x24]
mov dword [esp + 4], 0
mov dword [esp], ebp
mov eax, edi
call fcn.0040be00
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.00408950
mov ebx, eax
test ebx, ebx
je 0x40bfe3
cmp dword [esp + 0xac], 0xffffffff
je 0x40c065
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0xac]
lea edx, [eax + 0x48]
add eax, 0x44
call fcn.004097a0
test eax, eax
je 0x40bfe3
mov dword [eax], ebx
mov eax, dword [esp + 0x2c]
cmp eax, 0xffffffff
je 0x40bfb6
mov dword [esp + 8], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.00408e70
test eax, eax
je 0x40bfe3
add esp, 0xdc
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
xor edx, edx
mov eax, ebp
call fcn.00409540
mov edx, dword [ebp]
cmp byte [edx], 0x3b
mov ebx, eax
jne 0x40cb11
xor edx, edx
mov eax, ebp
call fcn.00409540
mov edx, dword [ebp]
cmp byte [edx], 0x3b
jne 0x40cb11
mov dword [esp + 4], eax
mov eax, dword [esp + 0x28]
sub ebx, 3
cmp ebx, 2
mov dword [esp], eax
jbe 0x40cd85
call fcn.004084b0
mov ebx, eax
jmp 0x40c037
mov edi, dword [esp + 0x28]
xor ecx, ecx
mov edx, dword [esp + 0x24]
mov dword [esp + 4], 0
mov dword [esp], ebp
mov eax, edi
call fcn.0040be00
mov dword [esp + 8], esi
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.00408820
mov ebx, eax
jmp 0x40c037
cmp byte [edi + 1], 0x23
je 0x40cd91
mov edx, dword [esp + 0x24]
xor ecx, ecx
mov eax, dword [esp + 0x28]
mov dword [esp + 4], 0
mov dword [esp], ebp
call fcn.0040be00
test eax, eax
mov dword [esp + 0x34], eax
je 0x40bfe3
mov eax, dword [ebp]
cmp byte [eax], 0x2c
jne case.0x40be9d.1
add eax, 1
mov edx, dword [esp + 0x24]
xor ecx, ecx
mov dword [ebp], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 4], 0
mov dword [esp], ebp
call fcn.0040be00
test eax, eax
mov dword [esp + 0x38], eax
je 0x40bfe3
mov dword [esp], 0x28
xor edi, edi
call fcn.004742f0
mov esi, edi
mov dword [esp + 0x30], 0xa
mov dword [esp + 0x3c], ebx
mov edi, eax
jmp 0x40c1ce
mov edx, dword [esp + 0x24]
xor ecx, ecx
mov eax, dword [esp + 0x28]
lea esi, [edi + esi*4]
mov dword [esp + 4], 0
mov dword [esp], ebp
call fcn.0040be00
test eax, eax
mov dword [esi], eax
je 0x40bfe3
mov esi, ebx
mov eax, dword [ebp]
movzx edx, byte [eax]
cmp dl, 0x3b
je 0x40cf91
cmp dl, 0x2c
jne 0x40bfc3
add eax, 1
lea ebx, [esi + 1]
cmp dword [esp + 0x30], ebx
mov dword [ebp], eax
ja 0x40c1a5
add dword [esp + 0x30], 0xa
mov eax, dword [esp + 0x30]
mov dword [esp], edi
shl eax, 2
mov dword [esp + 4], eax
call fcn.00474370
mov edi, eax
jmp 0x40c1a5
mov edi, dword [esp + 0x28]
xor ecx, ecx
mov edx, dword [esp + 0x24]
mov dword [esp + 4], 0
mov dword [esp], ebp
mov eax, edi
call fcn.0040be00
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.00408730
mov ebx, eax
jmp 0x40c037
mov dword [ebp], edi
lea edx, [esp + 0xb4]
mov eax, ebp
call fcn.004095e0
test eax, eax
je 0x40bfe3
mov eax, dword [esp + 0xb4]
cmp dword [esp + 0xac], eax
jne 0x40c27d
mov eax, dword [esp + 0xb8]
cmp dword [esp + 0xb0], eax
je 0x40dd97
mov edx, dword [esp + 0x24]
xor ecx, ecx
mov eax, dword [esp + 0x28]
mov dword [ebp], edi
mov dword [esp + 4], 0
mov dword [esp], ebp
call fcn.0040be00
test eax, eax
mov ebx, eax
je 0x40bfe3
cmp dword [esp + 0xac], 0xffffffff
je 0x40c037
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0xac]
lea edx, [eax + 0x48]
add eax, 0x44
call fcn.004097a0
test eax, eax
je 0x40bfe3
mov dword [eax], ebx
jmp 0x40c037
mov edi, dword [esp + 0x28]
xor ecx, ecx
mov edx, dword [esp + 0x24]
mov dword [esp + 4], 0
mov dword [esp], ebp
mov eax, edi
call fcn.0040be00
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.00408690
mov ebx, eax
jmp 0x40c037
mov edi, dword [esp + 0x28]
xor ecx, ecx
mov edx, dword [esp + 0x24]
mov dword [esp + 4], 0
mov dword [esp], ebp
mov eax, edi
call fcn.0040be00
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.00408920
mov ebx, eax
jmp 0x40c037
lea eax, [esp + 0xb4]
mov dword [esp + 0x48], eax
mov edx, eax
mov eax, ebp
call fcn.004095e0
test eax, eax
je 0x40bfe3
mov eax, dword [esp + 0xac]
cmp dword [esp + 0xb4], eax
mov dword [esp + 0x40], 0
je 0x40cf36
mov esi, dword [ebp]
mov dword [esp + 0x3c], 0
movzx eax, byte [esi]
cmp al, 0x3d
je 0x40d0a0
cmp al, 0x3b
je 0x40cf53
lea edx, [esp + 0xa4]
mov eax, ebp
call fcn.00409540
mov dword [esp + 0x34], eax
mov eax, dword [ebp]
cmp byte [eax], 0x3b
jne 0x40cb11
add eax, 1
mov dword [esp + 0x44], eax
lea edx, [esp + 0xa8]
mov dword [ebp], eax
mov eax, ebp
call fcn.00409540
mov ebx, eax
mov eax, dword [ebp]
cmp byte [eax], 0x3b
jne 0x40cb11
add eax, 1
mov dword [ebp], eax
mov eax, dword [esp + 0xa4]
test eax, eax
jne 0x40c3eb
mov ecx, dword [esp + 0xa8]
test ecx, ecx
je 0x40c41f
mov edx, dword [esp + 0x3c]
test edx, edx
je 0x40cfe3
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 0x40d0d8
mov esi, dword [esp + 0x40]
test esi, esi
jne 0x40cb11
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
call fcn.00409910
test eax, eax
je 0x40de5c
mov ecx, dword [esp + 0x34]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0xc], ebx
mov dword [esp + 8], ecx
mov dword [esp], eax
call fcn.00408760
mov ebx, eax
jmp 0x40c037
cmp byte [edi + 1], 0x72
jne case.0x40be9d.1
add edi, 2
mov dword [ebp], edi
lea edx, [esp + 0xb4]
lea eax, [esp + 0xa8]
mov dword [esp + 0xa8], edi
call fcn.004095e0
test eax, eax
je 0x40bfe3
mov eax, dword [esp + 0xb4]
test eax, eax
jne 0x40cb95
mov eax, dword [esp + 0xb8]
test eax, eax
jne 0x40cb95
mov eax, dword [ebp]
cmp byte [eax], 0x3d
je 0x40cb95
mov eax, dword [esp + 0x28]
mov dword [esp + 4], 0x498a45
mov dword [esp], eax
call fcn.00408ec0
test eax, eax
mov ebx, eax
je 0x40e744
mov eax, dword [esp + 0xa8]
mov dword [ebp], eax
cmp byte [eax], 0x3b
jne 0x40cd7b
lea edx, [eax + 1]
mov dword [ebp], edx
movzx edx, byte [eax + 1]
mov dword [esp + 0x30], 0
movzx ecx, dl
test byte [ecx + ecx + 0x4b8120], 4
jne 0x40c532
cmp dl, 0x2d
je 0x40c532
add eax, 2
mov dword [ebp], eax
mov dword [esp + 0x30], 1
xor edx, edx
mov eax, ebp
call fcn.00409540
mov dword [esp + 0x34], eax
mov eax, dword [ebp]
cmp byte [eax], 0x3b
jne 0x40cd7b
lea edx, [eax + 1]
mov dword [ebp], edx
movzx edx, byte [eax + 1]
movzx ecx, dl
test byte [ecx + ecx + 0x4b8120], 4
jne 0x40c575
cmp dl, 0x2d
je 0x40c575
add eax, 2
mov dword [ebp], eax
mov dword [esp + 0x30], 1
xor edx, edx
mov eax, ebp
call fcn.00409540
mov dword [esp + 0x38], eax
mov eax, dword [ebp]
cmp byte [eax], 0x3b
jne 0x40cd7b
mov edi, dword [esp + 0x28]
add eax, 1
xor ecx, ecx
mov edx, dword [esp + 0x24]
mov dword [ebp], eax
mov dword [esp + 4], 0
mov dword [esp], ebp
mov eax, edi
call fcn.0040be00
test eax, eax
je 0x40bfe3
mov ebp, dword [esp + 0x30]
xor edx, edx
mov ecx, 0xffffffff
mov dword [esp + 8], ebx
mov dword [esp + 0x14], esi
mov dword [esp + 4], eax
test ebp, ebp
cmove edx, dword [esp + 0x34]
cmove ecx, dword [esp + 0x38]
mov dword [esp], edi
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ecx
call fcn.004087b0
mov ebx, eax
jmp 0x40c037
movzx eax, byte [edi + 1]
cmp al, 0x73
je 0x40cd74
cmp al, 0x75
jne 0x40cb11
mov ebx, 1
lea eax, [edi + 2]
mov dword [ebp], eax
movzx eax, byte [edi + 2]
lea edx, [eax - 0x62]
cmp dl, 1
jbe 0x40c621
cmp al, 0x76
jne 0x40c627
add edi, 3
mov dword [ebp], edi
xor edx, edx
mov eax, ebp
call fcn.00409540
mov eax, dword [ebp]
cmp byte [eax], 0x3b
jne 0x40cb11
add eax, 1
xor edx, edx
mov dword [ebp], eax
mov eax, ebp
call fcn.00409540
mov eax, dword [ebp]
cmp byte [eax], 0x3b
jne 0x40cb11
add eax, 1
xor edx, edx
mov dword [ebp], eax
mov eax, ebp
call fcn.00409540
mov edx, dword [ebp]
cmp byte [edx], 0x3b
je 0x40d095
test eax, eax
je 0x40cfd0
mov dword [esp + 8], ebx
shr eax, 3
mov dword [esp + 4], eax
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call fcn.00408490
mov ebx, eax
jmp 0x40c037
xor edx, edx
mov eax, ebp
call fcn.00409540
mov esi, dword [ebp]
mov dword [esp + 0x64], 0
cmp byte [esi], 0x21
mov dword [esp + 0x4c], esi
mov dword [esp + 0x84], eax
je 0x40cf5e
mov dword [esp], 0x28
xor esi, esi
call fcn.004742f0
mov dword [esp + 0x80], 0
mov dword [esp + 0x3c], 0xa
mov dword [esp + 0x38], eax
mov edi, dword [ebp]
movzx eax, byte [edi]
cmp al, 0x3b
je 0x40d19e
lea ebx, [esi + 1]
cmp dword [esp + 0x3c], ebx
jbe 0x40cb25
cmp al, 0x2e
je 0x40c70c
cmp al, 0x24
jne 0x40c9dd
cmp byte [edi + 1], 0x5f
je 0x40c9dd
mov eax, dword [esp + 0x38]
add dword [ebp], 1
lea esi, [eax + esi*4]
mov dword [esi], 0
mov edi, dword [ebp]
cmp byte [edi], 0x76
je 0x40cdfa
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 + 0x38]
mov dword [esp], eax
xor ebx, ebx
call fcn.0048d280
jmp 0x40bfe5
movzx eax, byte [edi + 1]
mov dword [esp + 0x34], 7
cmp al, 0x73
je 0x40c7bd
cmp al, 0x75
mov dword [esp + 0x34], 8
je 0x40c7bd
cmp al, 0x65
mov dword [esp + 0x34], 0xb
je 0x40c7bd
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 + 0x34], 7
mov dword [esp + 0x38], eax
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 + 0x38], eax
call sub.msvcrt.dll_strchr
mov ecx, dword [esp + 0x38]
test eax, eax
mov esi, eax
je case.0x40be9d.1
cmp eax, ecx
jbe 0x40c80b
test ecx, ecx
je 0x40c80b
cmp byte [eax + 1], 0x3a
je 0x40d054
mov eax, dword [esp + 0x30]
mov ebx, esi
sub ebx, edi
test eax, eax
je 0x40c847
mov eax, dword [esp + 0x30]
mov dword [esp + 8], ebx
mov dword [esp + 4], edi
mov dword [esp], eax
call sub.msvcrt.dll_strncmp
test eax, eax
jne 0x40c847
mov eax, dword [esp + 0x30]
cmp byte [eax + ebx], 0
jne 0x40c847
mov eax, dword [esp + 0x24]
mov dword [eax + 0xd8], 1
mov eax, dword [esp + 0x24]
mov ecx, edi
add esi, 1
mov dword [esp], ebx
lea edx, [eax + 0xd4]
mov eax, dword [esp + 0x34]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x28]
call fcn.00409db0
mov dword [ebp], esi
mov ebx, eax
jmp 0x40c037
cmp byte [edi + 1], 0x2d
je 0x40cf17
mov dword [esp], 0x28
call fcn.004742f0
mov dword [esp], 0x28
mov dword [esp + 0x34], eax
call fcn.004742f0
mov dword [esp + 0x30], eax
mov eax, dword [ebp]
movzx edx, byte [eax]
test dl, dl
je 0x40dd90
cmp dl, 0x3b
je 0x40dd90
cmp dl, 0x2c
je 0x40dd90
mov dword [esp + 0x3c], 0xa
xor ebx, ebx
cmp dl, 0x3a
mov esi, eax
je 0x40cb1e
add esi, 1
cmp byte [esi], 0x3a
jne 0x40c8d3
mov edx, esi
sub edx, eax
call fcn.00409500
add esi, 1
xor edx, edx
mov dword [ebp], esi
mov edi, eax
mov eax, ebp
call fcn.00409540
mov edx, eax
mov eax, dword [ebp]
cmp byte [eax], 0x2c
jne 0x40cd2d
add eax, 1
lea esi, [ebx + 1]
cmp dword [esp + 0x3c], esi
mov dword [ebp], eax
jbe 0x40c990
mov eax, dword [esp + 0x34]
add ebx, 0x40000000
mov dword [eax + ebx*4], edi
mov eax, dword [esp + 0x30]
mov dword [eax + ebx*4], edx
mov eax, dword [ebp]
movzx edx, byte [eax]
cmp dl, 0x3b
je 0x40cb4d
test dl, dl
je 0x40cb4d
cmp dl, 0x2c
je 0x40cb4d
mov ebx, esi
jmp 0x40c8c8
mov edi, dword [esp + 0x28]
xor ecx, ecx
mov edx, dword [esp + 0x24]
mov dword [esp + 4], 0
mov dword [esp], ebp
mov eax, edi
call fcn.0040be00
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.004086e0
mov ebx, eax
jmp 0x40c037
add dword [esp + 0x3c], 0xa
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x44], edx
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.00474370
mov ecx, dword [esp + 0x40]
mov dword [esp + 4], ecx
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call fcn.00474370
mov edx, dword [esp + 0x44]
mov dword [esp + 0x30], eax
jmp 0x40c912
mov dword [esp + 4], 0x3a
mov dword [esp], edi
call sub.msvcrt.dll_strchr
test eax, eax
mov ecx, eax
je 0x40df13
cmp byte [eax + 1], 0x3a
je 0x40d19e
mov eax, dword [esp + 0x38]
mov edx, ecx
xor edi, edi
mov dword [esp + 0x44], ecx
lea eax, [eax + esi*4]
mov esi, dword [ebp]
mov dword [esp + 0x48], eax
sub edx, esi
mov eax, esi
call fcn.00409500
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x40], eax
lea eax, [ecx + 1]
mov dword [ebp], eax
cmp byte [ecx + 1], 0x2f
je 0x40cbc2
mov edx, dword [esp + 0x24]
xor ecx, ecx
mov eax, dword [esp + 0x28]
mov dword [esp + 4], 0
mov dword [esp], ebp
call fcn.0040be00
test eax, eax
mov ecx, eax
je 0x40ca8a
mov edx, dword [ebp]
movzx eax, byte [edx]
cmp al, 0x3a
je 0x40ccac
cmp al, 0x2c
je 0x40cc1b
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]
xor ebx, ebx
mov dword [esp], eax
call fcn.0048d280
jmp 0x40bfe5
mov dword [ebp], eax
mov edx, dword [esp + 0x24]
xor ecx, ecx
mov eax, dword [esp + 0x28]
mov dword [esp + 4], 0
mov dword [esp], ebp
call fcn.0040be00
test eax, eax
mov esi, eax
je 0x40bfe3
mov eax, dword [ebp]
cmp byte [eax], 0x2c
jne case.0x40be9d.1
mov edi, dword [esp + 0x28]
add eax, 1
xor ecx, ecx
mov edx, dword [esp + 0x24]
mov dword [ebp], eax
mov dword [esp + 4], 0
mov dword [esp], ebp
mov eax, edi
call fcn.0040be00
test eax, eax
je 0x40bfe3
mov dword [esp + 8], eax
mov dword [esp + 4], esi
mov dword [esp], edi
call fcn.00408870
mov ebx, eax
jmp 0x40c037
mov eax, dword [esp + 0x38]
mov dword [esp + 8], eax
jmp 0x40bfcb
xor edx, edx
jmp 0x40c8df
add dword [esp + 0x3c], 0xa
mov eax, dword [esp + 0x3c]
shl eax, 2
mov dword [esp + 4], eax
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call fcn.00474370
mov dword [esp + 0x38], eax
movzx eax, byte [edi]
jmp 0x40c700
shl esi, 2
mov eax, dword [esp + 0x34]
mov dword [eax + esi], 0
mov eax, dword [esp + 0x30]
mov dword [eax + esi], 0
mov eax, dword [ebp]
cmp byte [eax], 0x3b
je 0x40cf86
mov eax, dword [esp + 0x30]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call fcn.00408650
mov ebx, eax
jmp 0x40c037
mov edx, dword [esp + 0x24]
xor ecx, ecx
mov eax, dword [esp + 0x28]
mov dword [esp + 4], 0
mov dword [esp], ebp
call fcn.0040be00
mov ebx, eax
mov eax, dword [ebp]
jmp 0x40c4f7
mov byte [esp + 0x34], al
jmp 0x40be80
lea eax, [ecx + 2]
mov di, 1
mov dword [ebp], eax
movzx edx, byte [ecx + 2]
cmp dl, 0x31
je 0x40cc10
xor di, di
cmp dl, 0x32
je 0x40cc10
cmp dl, 0x30
mov di, 2
je 0x40cc10
mov eax, dword [sym.imp.msvcrt.dll__iob]
xor di, di
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]
add eax, 1
mov dword [ebp], eax
jmp 0x40ca38
add edx, 1
mov eax, ebp
mov dword [ebp], edx
xor edx, edx
mov dword [esp + 0x50], ecx
call fcn.00409540
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x44], eax
mov eax, dword [ebp]
cmp byte [eax], 0x2c
jne 0x40ca6e
add eax, 1
xor edx, edx
mov dword [ebp], eax
mov eax, ebp
mov dword [esp + 0x50], ecx
call fcn.00409540
mov edx, dword [ebp]
mov ecx, dword [esp + 0x50]
cmp byte [edx], 0x3b
jne 0x40ca6e
add edx, 1
mov dword [ebp], edx
mov edx, dword [esp + 0x44]
mov dword [esp + 0x10], eax
mov dword [esp + 8], ecx
mov esi, edx
or esi, eax
mov eax, dword [esp + 0x40]
mov esi, 3
cmove edi, esi
mov esi, ebx
mov dword [esp + 0x14], edi
mov dword [esp + 0xc], edx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call fcn.004089b0
mov ecx, dword [esp + 0x48]
mov dword [ecx], eax
jmp 0x40c6e5
lea eax, [edx + 1]
mov dword [ebp], eax
mov dword [esp + 4], 0x3b
mov dword [esp], eax
mov dword [esp + 0x50], ecx
mov dword [esp + 0x44], eax
call sub.msvcrt.dll_strchr
mov ecx, dword [esp + 0x50]
test eax, eax
je 0x40ca6e
mov esi, eax
mov edx, eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x50], ecx
sub edx, eax
call fcn.00409500
mov edx, esi
mov ecx, dword [esp + 0x50]
add edx, 1
mov esi, ebx
mov dword [ebp], edx
mov dword [esp + 0x10], edi
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call fcn.00408a50
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x80], 1
mov dword [ecx], eax
jmp 0x40c6e5
mov eax, dword [esp + 0x38]
xor ebx, ebx
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.0048d280
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call fcn.0048d280
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call fcn.0048d280
jmp 0x40bfe5
xor ebx, ebx
jmp 0x40c60b
mov dword [esp + 8], edi
nop
jmp 0x40bfcb
call fcn.004084d0
mov ebx, eax
jmp 0x40c037
mov edx, dword [esp + 0x24]
add edi, 2
xor ecx, ecx
mov eax, dword [esp + 0x28]
mov dword [ebp], edi
mov dword [esp + 4], 0
mov dword [esp], ebp
call fcn.0040be00
test eax, eax
je 0x40bfe3
mov edx, dword [ebp]
cmp byte [edx], 0x3b
jne case.0x40be9d.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 + 0x28]
mov dword [esp], eax
call fcn.004088c0
mov ebx, eax
jmp 0x40c037
lea eax, [edi + 1]
mov edx, dword [esp + 0x24]
xor ecx, ecx
mov dword [ebp], eax
movzx eax, byte [edi + 1]
mov byte [esp + 0x40], al
lea eax, [edi + 2]
mov dword [ebp], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 4], 0
mov dword [esp], ebp
call fcn.0040be00
test eax, eax
je 0x40c74f
movzx ecx, byte [esp + 0x40]
cmp cl, 0x62
je 0x40da78
cmp cl, 0x66
mov dword [esp + 0x40], str._vptr_
je 0x40ce77
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 + 0x40], str.INVALID_CPLUSPLUS_ABBREV
mov eax, dword [ebp]
cmp byte [eax], 0x3a
jne 0x40c733
add eax, 1
mov edx, dword [esp + 0x24]
xor ecx, ecx
mov dword [ebp], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 4], 0
mov dword [esp], ebp
call fcn.0040be00
mov ecx, eax
mov eax, dword [ebp]
cmp byte [eax], 0x2c
jne 0x40c733
add eax, 1
xor edx, edx
mov dword [ebp], eax
mov eax, ebp
mov dword [esp + 0x44], ecx
call fcn.00409540
mov edx, dword [ebp]
mov ecx, dword [esp + 0x44]
cmp byte [edx], 0x3b
jne 0x40c733
add edx, 1
mov dword [ebp], edx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x14], 2
mov dword [esp + 0x10], 0
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call fcn.004089b0
test eax, eax
mov dword [esi], eax
je 0x40c74f
mov esi, ebx
jmp 0x40c6e5
mov eax, dword [esp + 0x38]
nop
lea esi, [esi]
add eax, 1
mov dword [ebp], eax
cmp byte [eax], 0x3a
jne 0x40cf20
add eax, 1
mov dword [ebp], eax
jmp 0x40c87e
mov eax, dword [esp + 0xb0]
cmp dword [esp + 0xb8], eax
sete al
movzx eax, al
mov dword [esp + 0x40], eax
jmp 0x40c36d
add esi, 1
mov dword [ebp], esi
jmp 0x40c38b
lea eax, [esi + 1]
xor edx, edx
mov dword [ebp], eax
mov eax, ebp
call fcn.00409540
mov dword [esp + 0x38], eax
mov eax, dword [ebp]
cmp byte [eax], 0x2c
je 0x40dab1
mov dword [esp + 8], esi
jmp 0x40bfcb
add eax, 1
mov dword [ebp], eax
jmp 0x40cb72
add eax, 1
mov ebx, 1
mov dword [ebp], eax
xor eax, eax
test esi, esi
mov dword [esp + 0x30], edi
mov edi, esi
jne 0x40dddb
mov ecx, dword [esp + 0x30]
mov dword [ecx + eax], 0
mov eax, dword [esp + 0x34]
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], ecx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x38]
jmp 0x40cde3
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call fcn.00408480
mov ebx, eax
jmp 0x40c037
mov edi, str.01000000000000000000000_
mov ecx, 0x18
repe cmpsb byte [esi], byte es:[edi]
jne 0x40d007
mov esi, dword [esp + 0x44]
mov edi, str.0777777777777777777777_
mov ecx, 0x17
repe cmpsb byte [esi], byte es:[edi]
je 0x40df06
test eax, eax
jne 0x40c3f7
mov eax, dword [esp + 0x34]
test eax, eax
jne 0x40c3f7
mov esi, dword [esp + 0x44]
mov edi, str.01777777777777777777777_
mov ecx, 0x18
repe cmpsb byte [esi], byte es:[edi]
jne 0x40c3f7
mov dword [esp + 8], 1
mov eax, dword [esp + 0x28]
mov dword [esp + 4], 8
mov dword [esp], eax
call fcn.00408490
mov ebx, eax
jmp 0x40c037
movzx eax, byte [ecx]
test al, al
je case.0x40be9d.1
xor edx, edx
jmp 0x40d079
cmp al, 0x3e
je 0x40d082
cmp al, 0x3a
je 0x40d087
add ecx, 1
movzx eax, byte [ecx]
test al, al
je case.0x40be9d.1
cmp al, 0x3c
jne 0x40d063
add edx, 1
jmp 0x40d06b
sub edx, 1
jmp 0x40d06b
test edx, edx
jne 0x40d06b
mov esi, ecx
lea esi, [esi]
jmp 0x40c80b
add edx, 1
mov dword [ebp], edx
jmp 0x40c672
mov eax, dword [esp + 0x38]
xor ecx, ecx
mov edx, dword [esp + 0x24]
mov dword [ebp], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 4], 0
mov dword [esp], ebp
call fcn.0040be00
test eax, eax
mov dword [esp + 0x3c], eax
je 0x40bfe3
mov esi, dword [ebp]
movzx eax, byte [esi]
jmp 0x40c383
mov eax, dword [esp + 0x34]
movzx edx, byte [esp + 0x40]
and edx, 1
test eax, eax
sete al
mov edi, eax
je 0x40dd21
test ebx, ebx
sete al
mov ecx, eax
and cl, dl
je 0x40e444
mov ebp, dword [esp + 0x34]
mov eax, ecx
test ebp, ebp
jg 0x40deeb
cmp ebx, 0xffffffff
mov ecx, edi
jne 0x40dede
test cl, cl
jne 0x40dea5
test al, al
je 0x40d143
mov eax, dword [esp + 0x34]
shr eax, 0x1f
test al, al
je 0x40d143
cmp dword [esp + 0x34], 0xfffffff8
je 0x40e7f0
test dl, dl
jne 0x40e7f0
mov ecx, dword [esp + 0x34]
mov eax, ebx
not eax
cmp ecx, eax
je 0x40d15a
lea eax, [ebx + 1]
cmp ecx, eax
jne 0x40c42b
cmp ebx, 0x7f
je 0x40e721
cmp ebx, 0x7fff
je 0x40e714
cmp ebx, 0x7fffffff
jne 0x40c42b
mov dword [esp + 8], 0
mov eax, dword [esp + 0x28]
mov dword [esp + 4], 4
mov dword [esp], eax
call fcn.00408490
mov ebx, eax
jmp 0x40c037
mov eax, dword [esp + 0x38]
mov dword [eax + esi*4], 0
mov ebx, dword [ebp]
movzx edx, byte [ebx]
mov dword [esp + 0x68], ebx
cmp dl, 0x3b
je 0x40e3fb
mov dword [esp + 0x58], 0
mov edi, edx
mov dword [esp + 0x40], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x8c], 0
mov dword [esp + 0x78], 0
mov dword [esp + 4], 0x3a
mov dword [esp], ebx
call sub.msvcrt.dll_strchr
test eax, eax
mov esi, eax
je 0x40e084
cmp byte [eax + 1], 0x3a
jne 0x40e084
mov eax, edi
cmp al, 0x6f
jne 0x40d225
cmp byte [ebx + 1], 0x70
je 0x40e79f
mov edx, esi
mov eax, ebx
sub edx, ebx
add esi, 2
call fcn.00409500
mov dword [ebp], esi
mov dword [esp + 0x40], eax
mov dword [esp], 0x28
xor edi, edi
call fcn.004742f0
mov dword [esp + 0x44], 0
mov dword [esp + 0x70], 0xa
mov dword [esp + 0x58], eax
test edi, edi
je 0x40dc88
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 ebx, eax
je 0x40dcb8
mov eax, dword [esp + 0x28]
xor esi, esi
mov dword [esp + 4], edi
mov dword [esp], eax
call fcn.00409050
cmp eax, 0x13
je 0x40d95c
mov eax, dword [ebp]
mov edx, ebx
sub edx, eax
call fcn.00409500
mov dword [esp + 0x60], 2
mov dword [esp + 0x3c], eax
lea eax, [ebx + 1]
mov dword [ebp], eax
movzx eax, byte [ebx + 1]
cmp al, 0x30
je 0x40d2d4
cmp al, 0x31
sete al
movzx eax, al
mov dword [esp + 0x60], eax
lea eax, [ebx + 2]
mov dword [ebp], eax
movzx ecx, byte [ebx + 2]
lea edx, [ecx - 0x2a]
cmp dl, 0x1a
ja case.0x40d2ed.1
movzx edx, dl
jmp dword [edx*4 + 0x499594]
mov dword [esp + 0x54], 0
mov dword [esp + 0x50], 0
cmp cl, 0x2e
je 0x40d8e7
cmp cl, 0x3f
je 0x40d894
cmp cl, 0x2a
je 0x40d807
mov eax, dword [esp + 0x68]
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 + 0x5c], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
test esi, esi
mov ebx, dword [esp + 0x3c]
jne 0x40d547
mov eax, dword [esp + 0x44]
lea esi, [eax + 1]
cmp dword [esp + 0x70], esi
jbe 0x40d502
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x44]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x48]
mov dword [esp + 0x44], edx
test eax, eax
jne 0x40d4cb
mov eax, dword [esp + 0x5c]
mov dword [esp + 8], edi
mov dword [esp + 4], ebx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call fcn.00408b10
mov edx, dword [esp + 0x44]
mov dword [edx], eax
test eax, eax
je 0x40d7c4
mov eax, dword [ebp]
movzx eax, byte [eax]
test al, al
je 0x40e01a
cmp al, 0x3b
je 0x40e01a
mov dword [esp + 0x44], esi
mov edi, dword [esp + 0x4c]
jmp 0x40d25c
lea eax, [ebx + 3]
mov dword [ebp], eax
movzx ecx, byte [ebx + 3]
mov dword [esp + 0x54], 1
mov dword [esp + 0x50], 1
jmp 0x40d304
lea eax, [ebx + 3]
mov dword [ebp], eax
movzx ecx, byte [ebx + 3]
mov dword [esp + 0x54], 1
mov dword [esp + 0x50], 0
jmp 0x40d304
lea eax, [ebx + 3]
mov dword [ebp], eax
movzx ecx, byte [ebx + 3]
mov dword [esp + 0x54], 0
mov dword [esp + 0x50], 1
jmp 0x40d304
lea eax, [ebx + 3]
mov dword [ebp], eax
movzx ecx, byte [ebx + 3]
mov dword [esp + 0x54], 0
mov dword [esp + 0x50], 0
jmp 0x40d304
mov eax, dword [esp + 0x68]
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 + 0x54], 0
mov dword [esp + 0x50], 0
movzx ecx, byte [eax]
jmp 0x40d304
mov eax, dword [esp + 0x54]
mov dword [esp + 8], edi
mov dword [esp + 4], ebx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call fcn.00408bb0
mov edx, dword [esp + 0x44]
mov dword [edx], eax
jmp 0x40d3e1
add dword [esp + 0x70], 0xa
mov eax, dword [esp + 0x70]
shl eax, 2
mov dword [esp + 4], eax
mov eax, dword [esp + 0x58]
mov dword [esp], eax
call fcn.00474370
mov dword [esp + 0x58], eax
jmp 0x40d384
mov dword [esp + 0x4c], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x48], 1
mov ebx, dword [esp + 0x28]
lea ecx, [esp + 0xac]
mov edx, dword [esp + 0x24]
mov eax, ebx
call fcn.00409910
test eax, eax
mov dword [esp + 0x94], eax
je 0x40d7c4
mov dword [esp + 4], edi
mov dword [esp], ebx
call fcn.00409100
test eax, eax
mov dword [esp + 0x98], eax
je 0x40dcb8
mov eax, dword [esp + 0x3c]
movzx eax, byte [eax]
cmp al, 0x5f
mov byte [esp + 0x90], al
je 0x40dc0c
mov esi, dword [esp + 0x3c]
mov edi, 0x4993ba
mov ecx, 4
repe cmpsb byte [esi], byte es:[edi]
jne 0x40d925
mov eax, 1
mov dword [esp + 0x7c], 1
cmp byte [esp + 0x90], 0x5f
je 0x40dcdd
mov esi, dword [esp + 0x3c]
mov ecx, 4
mov edi, 0x499435
repe cmpsb byte [esi], byte es:[edi]
sete cl
movzx ecx, cl
mov dword [esp + 0x88], ecx
xor ecx, ecx
or ecx, dword [esp + 0x88]
or ecx, eax
jne 0x40d912
mov eax, dword [esp + 0x30]
test eax, eax
je 0x40df46
mov dword [esp], eax
call sub.msvcrt.dll_strlen
mov ebx, eax
mov edx, dword [esp + 0x50]
mov eax, 0x499247
mov esi, 0x499245
mov ecx, dword [esp + 0x54]
mov edi, 0x499248
test edx, edx
cmove esi, eax
test ecx, ecx
cmove edi, eax
test ebx, ebx
je 0x40ddaa
mov eax, dword [esp + 0x30]
test eax, eax
je 0x40df4d
mov dword [esp + 4], 0x3c
mov dword [esp], eax
call sub.msvcrt.dll_strchr
test eax, eax
je 0x40df4d
mov dword [esp + 8], esi
lea esi, [esp + 0xb4]
mov ebx, 1
mov dword [esp + 0xc], edi
mov dword [esp + 4], str.___s_s
mov dword [esp], esi
call sub.msvcrt.dll_sprintf
mov dword [esp + 0x90], 0
mov eax, dword [esp + 0x7c]
xor ecx, ecx
test eax, eax
jne 0x40d6a6
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
mov ecx, eax
mov edi, esi
mov edx, dword [edi]
add edi, 4
lea eax, [edx - 0x1010101]
not edx
and eax, edx
and eax, 0x80808080
je 0x40d6a8
mov edx, eax
shr edx, 0x10
test eax, 0x8080
cmove eax, edx
lea edx, [edi + 2]
cmove edi, edx
add al, al
mov eax, dword [esp + 0x3c]
sbb edi, 3
mov dword [esp + 0x9c], ecx
sub edi, esi
mov dword [esp], eax
call sub.msvcrt.dll_strlen
mov ecx, dword [esp + 0x9c]
add ecx, edi
add ebx, ecx
add ebx, eax
mov eax, dword [esp + 0x40]
cmp byte [eax], 0x6f
jne 0x40d70b
cmp byte [eax + 1], 0x70
je 0x40df83
mov dword [esp], ebx
call fcn.004742f0
mov edi, dword [esp + 0x7c]
test edi, edi
mov ebx, eax
je 0x40dd0c
mov byte [eax], 0
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov dword [esp + 4], esi
mov edi, eax
lea eax, [ebx + eax]
mov dword [esp], eax
call fcn.00475790
mov ecx, dword [esp + 0x90]
test ecx, ecx
je 0x40d754
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 eax, byte [esi]
test al, al
je 0x40d77a
mov ecx, dword [esp + 0x88]
test ecx, ecx
je 0x40d9a3
mov dword [esp], 4
call fcn.004742f0
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 + 0x28]
mov dword [esp], eax
call fcn.004088c0
test eax, eax
mov edi, eax
jne 0x40d373
mov eax, dword [esp + 0x40]
test eax, eax
je 0x40d7d4
mov dword [esp], eax
call fcn.0048d280
mov eax, dword [esp + 0x58]
test eax, eax
je 0x40d7e4
mov dword [esp], eax
call fcn.0048d280
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x40d7f4
mov dword [esp], eax
call fcn.0048d280
mov eax, dword [esp + 0x38]
test eax, eax
jne 0x40c753
xor ebx, ebx
jmp 0x40bfe5
add eax, 1
xor edx, edx
mov dword [ebp], eax
mov eax, ebp
call fcn.00409540
mov edx, dword [ebp]
cmp byte [edx], 0x3b
jne 0x40dcb8
lea ecx, [edx + 1]
and eax, 0x7fffffff
mov dword [ebp], ecx
cmp byte [edx + 1], 0x3b
mov dword [esp + 0x74], eax
je 0x40d986
test ecx, ecx
je 0x40d986
mov edx, dword [esp + 0x24]
xor ecx, ecx
mov eax, dword [esp + 0x28]
mov dword [esp + 4], 0
mov dword [esp], ebp
call fcn.0040be00
mov dword [esp + 0x5c], eax
mov eax, dword [ebp]
movzx edx, byte [eax]
cmp dl, 0x3a
je 0x40e3d0
cmp dl, 0x3b
jne 0x40dcb8
add eax, 1
mov dword [ebp], eax
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
jmp 0x40d367
mov ebx, dword [esp + 0x40]
add eax, 1
mov dword [ebp], eax
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
call sub.msvcrt.dll_strncmp
test eax, eax
jne 0x40d527
mov dword [esp + 0x5c], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x48], 1
mov dword [esp + 0x4c], 0
jmp 0x40d367
add eax, 1
mov dword [ebp], eax
mov dword [esp + 0x5c], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
jmp 0x40d367
movzx eax, byte [esp + 0x90]
xor edi, edi
mov ebx, dword [esp + 0x3c]
jmp 0x40d767
mov esi, dword [esp + 0x30]
test esi, esi
je 0x40da69
mov eax, dword [esp + 0x30]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x40da69
xor eax, eax
mov dword [esp + 0x7c], 1
jmp 0x40d5c0
lea eax, [esp + 0xa0]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 4], edi
mov dword [esp], eax
call fcn.00409140
test eax, eax
sete al
movzx eax, al
mov esi, eax
jmp 0x40d2a2
mov dword [esp + 0x5c], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
jmp 0x40d367
mov dword [esp + 0xa8], ebx
cmp byte [ebx], 0x5f
jne 0x40d9b9
cmp byte [ebx + 1], 0x5a
je 0x40e46f
mov eax, dword [esp + 0x28]
mov dword [esp], 0x50
mov dword [esp + 0xbc], 0
mov dword [esp + 0xc0], 0
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0xcc], 0xa
mov dword [esp + 0xb8], eax
call fcn.004742f0
test edi, edi
mov esi, dword [esp + 0xa8]
mov dword [esp + 0xc8], 0
mov dword [esp + 0xc4], eax
je 0x40de10
add edi, esi
cmp edi, esi
je 0x40e114
cmp byte [edi + 2], 0
jne 0x40e17a
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 0x40d7c4
mov dword [esp], eax
call fcn.0048d280
jmp 0x40d7c4
xor eax, eax
mov dword [esp + 0x7c], 0
jmp 0x40d5c0
mov dword [esp + 4], eax
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call fcn.00409080
test eax, eax
je 0x40e771
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov dword [esp], str._vb_
call fcn.004758b0
mov dword [esp + 0x40], eax
jmp 0x40ce77
mov edi, dword [esp + 0x38]
add eax, 1
mov dword [ebp], eax
lea eax, [edi*4 + 4]
mov dword [esp], eax
call fcn.004742f0
test edi, edi
mov dword [esp + 0x64], eax
je 0x40e001
mov eax, dword [ebp]
xor edi, edi
mov dword [esp + 0x40], esi
jmp 0x40db57
add eax, 1
mov edx, dword [esp + 0x24]
xor ecx, ecx
mov dword [ebp], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 4], 0
mov dword [esp], ebp
call fcn.0040be00
test eax, eax
je 0x40bfe3
mov ecx, dword [esp + 0x3c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], esi
mov dword [esp + 8], ecx
mov dword [esp], eax
call fcn.00408980
mov ecx, dword [esp + 0x64]
test eax, eax
mov dword [ecx + edi*4], eax
je 0x40bfe3
mov eax, dword [ebp]
cmp byte [eax], 0x3b
jne 0x40bfe3
add eax, 1
add edi, 1
cmp edi, dword [esp + 0x38]
mov dword [ebp], eax
je 0x40e003
movzx edx, byte [eax]
xor esi, esi
cmp dl, 0x30
je 0x40db98
cmp dl, 0x31
mov si, 1
je 0x40db98
mov eax, dword [esp + 0x40]
xor si, si
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
mov eax, dword [ebp]
lea edx, [eax + 1]
mov ebx, 1
mov dword [ebp], edx
movzx eax, byte [eax + 1]
cmp al, 0x31
je 0x40dbe4
xor bl, bl
cmp al, 0x32
je 0x40dbe4
cmp al, 0x30
mov bl, 2
je 0x40dbe4
mov eax, dword [esp + 0x40]
xor bl, bl
mov dword [esp + 8], str.unknown_visibility_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
mov edx, dword [ebp]
add edx, 1
mov eax, ebp
mov dword [ebp], edx
xor edx, edx
call fcn.00409540
mov dword [esp + 0x3c], eax
mov eax, dword [ebp]
cmp byte [eax], 0x2c
je 0x40dae1
mov esi, dword [esp + 0x40]
jmp 0x40cf7d
mov eax, dword [esp + 0x3c]
cmp byte [eax + 1], 0x5f
jne 0x40d59d
movzx eax, byte [eax + 2]
movzx edx, al
test byte [edx + edx + 0x4b8120], 4
jne 0x40dc37
cmp al, 0x51
je 0x40dc37
cmp al, 0x74
jne 0x40d59d
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x7c], 1
movzx edx, byte [eax + 1]
mov eax, 1
mov esi, dword [esp + 0x3c]
mov ecx, 4
mov edi, 0x499435
repe cmpsb byte [esi], byte es:[edi]
seta cl
mov esi, ecx
setb cl
mov ebx, esi
cmp bl, cl
sete cl
movzx ecx, cl
mov dword [esp + 0x88], ecx
cmp dl, 0x5a
mov ecx, 1
jne 0x40d5eb
jmp 0x40d5ed
mov edx, dword [esp + 0x24]
xor ecx, ecx
mov eax, dword [esp + 0x28]
mov dword [esp + 4], 0
mov dword [esp], ebp
call fcn.0040be00
test eax, eax
mov edi, eax
je 0x40d7c4
mov eax, dword [ebp]
cmp byte [eax], 0x3a
je 0x40d267
mov eax, dword [esp + 0x68]
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 0x40d7c4
mov ecx, dword [esp + 0x3c]
movzx edx, byte [ecx + 1]
cmp dl, 0x2e
jne 0x40e3ed
mov ecx, dword [esp + 0x3c]
cmp byte [ecx + 2], 0x5f
jne 0x40dc4c
mov dword [esp + 0x88], 1
jmp 0x40dc75
mov eax, dword [esp + 0x40]
mov dword [esp], ebx
mov dword [esp + 4], eax
call sub.msvcrt.dll_strcpy
jmp 0x40d724
test dl, dl
je 0x40d0f1
test ebx, ebx
nop
lea esi, [esi]
je 0x40cfd0
cmp ebx, 0xffffffff
je 0x40dea5
cmp ebx, 0x7f
je 0x40e721
test ebx, ebx
js 0x40e810
cmp ebx, 0xff
je 0x40e803
cmp ebx, 0xffff
jne 0x40c42b
mov dword [esp + 8], 1
mov eax, dword [esp + 0x28]
mov dword [esp + 4], 2
mov dword [esp], eax
call fcn.00408490
mov ebx, eax
jmp 0x40c037
xor esi, esi
jmp 0x40cb50
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call fcn.00408480
mov ebx, eax
jmp 0x40c2a4
mov dword [esp + 8], esi
lea esi, [esp + 0xb4]
mov bl, 1
mov dword [esp + 0xc], edi
mov dword [esp + 4], str.___s_s
mov dword [esp], esi
call sub.msvcrt.dll_sprintf
mov eax, dword [esp + 0x30]
mov dword [esp + 0x90], eax
jmp 0x40d68e
mov eax, dword [esp + 0x30]
add edi, 0x3fffffff
lea esi, [edi*4]
mov eax, dword [eax + edi*4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call fcn.00409050
cmp eax, 2
je 0x40e171
lea eax, [esi + 4]
jmp 0x40cfac
mov eax, esi
mov dword [esp + 4], 0x5f
mov dword [esp], eax
call sub.msvcrt.dll_strchr
test eax, eax
mov edi, eax
je 0x40da31
cmp byte [edi + 1], 0x5f
lea eax, [eax + 1]
jne 0x40de12
test eax, eax
je 0x40da31
mov dword [esp], edi
mov dword [esp + 4], 0x49940a
call sub.msvcrt.dll_strspn
lea edx, [edi + eax - 2]
cmp eax, 3
cmovae edi, edx
jmp 0x40da1f
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 + 0x28]
mov dword [esp + 8], 0
mov dword [esp + 4], 4
mov dword [esp], eax
call fcn.00408490
jmp 0x40c450
mov esi, dword [esp + 0x30]
test esi, esi
je 0x40ded1
mov edi, 0x498e38
mov ecx, 0xe
repe cmpsb byte [esi], byte es:[edi]
je 0x40df06
mov esi, dword [esp + 0x30]
mov edi, 0x498e21
mov ecx, 0x17
repe cmpsb byte [esi], byte es:[edi]
je 0x40d031
mov dword [esp + 8], 1
jmp 0x40d183
test cl, cl
je 0x40d121
jmp 0x40dd48
mov eax, dword [esp + 0x34]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call fcn.004084d0
mov ebx, eax
jmp 0x40c037
mov dword [esp + 8], 0
jmp 0x40d039
mov eax, dword [esp + 0x4c]
xor ebx, ebx
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 + 0x38]
mov dword [esp], eax
call fcn.0048d280
jmp 0x40bfe5
xor ebx, ebx
jmp 0x40d612
mov dword [esp + 8], esi
lea esi, [esp + 0xb4]
mov dword [esp + 0x10], ebx
add ebx, 1
mov dword [esp + 0xc], edi
mov dword [esp + 4], str.___s_s_d
mov dword [esp], esi
call sub.msvcrt.dll_sprintf
mov eax, dword [esp + 0x30]
mov dword [esp + 0x90], eax
jmp 0x40d68e
movzx eax, byte [eax + 2]
cmp al, 0x2e
je 0x40df93
cmp al, 0x24
jne 0x40d70b
mov eax, dword [esp + 0x40]
mov dword [esp + 4], 0
add eax, 3
mov dword [esp], eax
call fcn.00482ba0
test eax, eax
mov edx, eax
je 0x40e4d1
mov edi, edx
xor eax, eax
mov dword [esp + 0x7c], edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
lea eax, [ebx + ecx - 1]
mov dword [esp], eax
call fcn.004742f0
mov dword [esp + 8], 3
mov ebx, eax
mov eax, dword [esp + 0x40]
mov dword [esp], ebx
mov dword [esp + 4], eax
call sub.msvcrt.dll_strncpy
mov edx, dword [esp + 0x7c]
lea eax, [ebx + 3]
mov dword [esp], eax
mov dword [esp + 4], edx
call sub.msvcrt.dll_strcpy
jmp 0x40d724
xor edi, edi
mov eax, dword [esp + 0x64]
mov dword [eax + edi*4], 0
mov eax, dword [ebp]
mov dword [esp + 0x4c], eax
jmp 0x40c6c0
mov eax, dword [esp + 0x58]
mov dword [eax + esi*4], 0
mov eax, dword [ebp]
cmp byte [eax], 0
je 0x40e033
add eax, 1
mov dword [ebp], eax
mov eax, dword [esp + 0x78]
lea esi, [eax + 1]
cmp esi, dword [esp + 0x8c]
jae 0x40e670
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x78]
lea ebx, [eax + ecx*4]
mov eax, dword [esp + 0x58]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call fcn.00408af0
mov dword [esp + 0x78], esi
mov dword [ebx], eax
mov ebx, dword [ebp]
movzx edi, byte [ebx]
mov eax, edi
cmp al, 0x3b
jne 0x40d1f1
mov eax, dword [esp + 0x6c]
test eax, eax
je 0x40e09a
mov ecx, dword [esp + 0x78]
mov dword [eax + ecx*4], 0
mov ebx, dword [ebp]
cmp byte [ebx], 0x3b
mov esi, ebx
je 0x40e405
cmp byte [ebx], 0x7e
je 0x40e57e
xor edx, edx
xor eax, eax
mov ebx, dword [esp + 0x80]
xor ecx, ecx
cmp byte [esp + 0x34], 0x73
sete cl
test ebx, ebx
jne 0x40e0d2
cmp dword [esp + 0x64], 0
je 0x40e69b
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x1c], edx
mov dword [esp + 4], ecx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call fcn.00408580
mov ebx, eax
jmp 0x40c037
movzx eax, byte [edi + 2]
movzx edx, al
test byte [edx + edx + 0x4b8120], 4
jne 0x40e553
cmp al, 0x51
je 0x40e553
cmp al, 0x74
je 0x40e553
cmp byte [edi], 0x5f
mov eax, edi
nop
jne 0x40e14a
add eax, 1
cmp byte [eax], 0x5f
je 0x40e142
mov dword [esp + 4], 0x49940c
mov dword [esp], eax
call sub.msvcrt.dll_strstr
test eax, eax
je 0x40e168
cmp byte [eax + 2], 0
jne 0x40e562
mov dword [esp + 8], edi
jmp 0x40da35
mov eax, esi
xor ebx, ebx
jmp 0x40cfac
lea esi, [esp + 0xb4]
mov ecx, edi
lea edx, [esp + 0xa8]
mov eax, esi
call fcn.0040bd70
test eax, eax
je 0x40da4d
mov eax, dword [esp + 0xa8]
movzx edx, byte [eax]
mov dword [esp + 0x88], eax
test dl, dl
je 0x40e224
mov esi, dword [esp + 0x88]
xor eax, eax
xor edi, edi
mov dword [esp + 0x7c], 0
mov dword [esp + 0x90], ebx
mov dword [esp + 0xf0], ebp
sub edx, 0x30
cmp dl, 0x44
ja case.0x40e1de.10
movzx edx, dl
jmp dword [edx*4 + 0x499600]
test edi, edi
cmove edi, esi
add esi, 1
mov dword [esp + 0xa8], esi
mov edx, dword [esp + 0x7c]
test edx, edx
jne 0x40e6e0
mov esi, dword [esp + 0xa8]
movzx edx, byte [esi]
test dl, dl
jne 0x40e1cf
test eax, eax
mov ebx, dword [esp + 0x90]
mov ebp, dword [esp + 0xf0]
je 0x40e63d
mov eax, dword [esp + 0xc4]
mov dword [esp], eax
call fcn.0048d280
mov eax, dword [esp + 0xbc]
mov dword [esp + 0xc4], 0
test eax, eax
je 0x40e410
mov edx, dword [esp + 0xc0]
mov dword [esp + 0xa4], edx
test eax, eax
je 0x40d7c4
mov edx, dword [esp + 0xa4]
mov dword [esp + 0x10], edx
jmp 0x40d794
test edi, edi
lea ebp, [esp + 0xa8]
cmovne esi, edi
mov eax, ebp
xor edx, edx
call fcn.0040a770
test eax, eax
je 0x40da4d
mov ecx, dword [esp + 0xa8]
lea ebx, [esp + 0xb4]
sub ecx, esi
mov edx, esi
mov eax, ebx
call fcn.004094a0
test eax, eax
je 0x40da4d
xor edi, edi
lea eax, [esp + 0xc0]
mov edx, ebp
mov dword [esp], eax
lea ecx, [esp + 0xbc]
mov eax, ebx
call fcn.0040bbb0
test eax, eax
je 0x40da4d
mov eax, 1
mov dword [esp + 0x7c], 1
jmp 0x40e200
mov eax, dword [esp + 0x88]
mov dword [esp + 8], eax
jmp 0x40da35
test edi, edi
lea ebp, [esp + 0xa8]
cmovne esi, edi
lea ebx, [esp + 0xb4]
xor ecx, ecx
mov edx, ebp
mov eax, ebx
call fcn.0040b2b0
test eax, eax
je 0x40da4d
mov ecx, dword [esp + 0xa8]
sub ecx, esi
jmp 0x40e2a0
lea ebp, [esp + 0xa8]
xor ecx, ecx
lea ebx, [esp + 0xb4]
mov edx, ebp
mov eax, ebx
call fcn.0040b7b0
test eax, eax
jne 0x40e31d
jmp 0x40da4d
lea eax, [esp + 0xc0]
add esi, 1
lea ebx, [esp + 0xb4]
lea ebp, [esp + 0xa8]
mov dword [esp], eax
lea ecx, [esp + 0xbc]
mov edx, ebp
mov eax, ebx
mov dword [esp + 0xa8], esi
call fcn.0040bbb0
test eax, eax
je 0x40da4d
xor edi, edi
mov eax, 1
jmp 0x40e1f4
lea eax, [esp + 0xc0]
lea ebx, [esp + 0xb4]
lea ebp, [esp + 0xa8]
mov dword [esp], eax
lea ecx, [esp + 0xbc]
mov edx, ebp
mov eax, ebx
call fcn.0040bbb0
test eax, eax
je 0x40da4d
mov eax, 1
jmp 0x40e1f4
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x48], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x4c], eax
jmp 0x40d367
cmp dl, 0x24
je 0x40dcee
jmp 0x40dc4c
mov esi, ebx
mov dword [esp + 0x6c], 0
add ebx, 1
mov dword [ebp], ebx
jmp 0x40e0a5
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 0x40e24d
test al, al
je 0x40d10e
mov ecx, dword [esp + 0x34]
test ecx, ecx
jle 0x40d10e
mov eax, dword [esp + 0x28]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.004084b0
mov ebx, eax
jmp 0x40c037
lea esi, [esp + 0xb4]
mov dword [esp + 8], esi
mov dword [esp + 4], 3
mov dword [esp], ebx
call fcn.00487e90
test eax, eax
je 0x40e532
cmp dword [eax], 3
jne 0x40e4f6
mov eax, dword [eax + 8]
cmp dword [eax], 0x29
jne 0x40e4f6
mov ecx, dword [eax + 8]
lea eax, [esp + 0xa4]
mov dword [esp], eax
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
call fcn.0040a630
mov esi, eax
mov eax, dword [esp + 0xb4]
mov dword [esp], eax
call fcn.0048d280
mov eax, esi
jmp 0x40e25b
mov eax, dword [esp + 0x40]
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 0x40d7c4
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.0048d280
jmp 0x40d7c4
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 0x40d7c4
add edi, 2
mov dword [esp + 0xa8], edi
jmp 0x40e199
lea esi, [esp + 0xb4]
mov ecx, eax
lea edx, [esp + 0xa8]
mov eax, esi
call fcn.0040bd70
jmp 0x40e191
lea eax, [ebx + 1]
mov dword [ebp], eax
movzx eax, byte [ebx + 1]
cmp al, 0x2b
je 0x40e610
and eax, 0xffffffef
cmp al, 0x2d
je 0x40e610
mov ebx, dword [ebp]
cmp byte [ebx], 0x25
jne 0x40e0ae
add ebx, 1
mov eax, ebp
mov dword [ebp], ebx
lea edx, [esp + 0xb4]
call fcn.004095e0
test eax, eax
je 0x40d7f4
mov eax, dword [esp + 0xac]
cmp dword [esp + 0xb4], eax
jne 0x40e5df
mov eax, dword [esp + 0xb0]
cmp dword [esp + 0xb8], eax
je 0x40e61b
mov edx, dword [esp + 0x24]
xor ecx, ecx
mov eax, dword [esp + 0x28]
mov dword [ebp], ebx
mov dword [esp + 4], 0
mov dword [esp], ebp
call fcn.0040be00
mov edx, dword [ebp]
movzx ecx, byte [edx]
test cl, cl
je 0x40e627
cmp cl, 0x3b
je 0x40e627
add edx, 1
jmp 0x40e5ff
add ebx, 2
mov dword [ebp], ebx
jmp 0x40e597
mov edx, 1
xor eax, eax
jmp 0x40e0b2
cmp cl, 0x3b
jne 0x40e6f3
add edx, 1
mov dword [ebp], edx
xor edx, edx
jmp 0x40e0b2
lea eax, [esp + 0xc0]
lea esi, [esp + 0xb4]
mov dword [esp], eax
lea edx, [esp + 0xa8]
mov eax, esi
lea ecx, [esp + 0xbc]
call fcn.0040bbb0
test eax, eax
jne 0x40e224
jmp 0x40da4d
add dword [esp + 0x8c], 0xa
mov eax, dword [esp + 0x8c]
shl eax, 2
mov dword [esp + 4], eax
mov eax, dword [esp + 0x6c]
mov dword [esp], eax
call fcn.00474370
mov dword [esp + 0x6c], eax
jmp 0x40e047
cmp dword [esp + 0x6c], 0
jne 0x40e0d2
test eax, eax
jne 0x40e0d2
test edx, edx
jne 0x40e0d2
mov eax, dword [esp + 0x38]
mov dword [esp + 4], ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call fcn.004084e0
mov ebx, eax
jmp 0x40c037
lea ebx, [esp + 0xb4]
lea ebp, [esp + 0xa8]
jmp 0x40e2b3
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 0x40d7f4
mov dword [esp + 8], 0
jmp 0x40dd70
mov dword [esp + 8], 0
mov eax, dword [esp + 0x28]
mov dword [esp + 4], 1
mov dword [esp], eax
call fcn.00408490
mov ebx, eax
jmp 0x40c037
mov eax, dword [esp + 0x28]
mov dword [esp + 8], 0
mov dword [esp + 4], 4
mov dword [esp], eax
call fcn.00408490
test eax, eax
mov ebx, eax
jne 0x40c4ed
xor ebx, ebx
jmp 0x40bfe5
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, 0x499221
jmp 0x40da90
cmp byte [ebx + 2], 0x24
jne 0x40d225
lea eax, [esi + 2]
mov dword [ebp], eax
movzx edx, byte [esi + 2]
mov ebx, eax
test dl, dl
jne 0x40e7ca
jmp 0x40e7cf
add ebx, 1
movzx edx, byte [ebx]
test dl, dl
je 0x40e7cf
cmp dl, 0x2e
jne 0x40e7c0
cmp dl, 0x2e
jne 0x40dcb8
mov edx, ebx
add ebx, 1
sub edx, eax
call fcn.00409500
mov dword [ebp], ebx
mov dword [esp + 0x40], eax
jmp 0x40d23a
mov eax, dword [esp + 0x34]
mov dword [esp + 8], 1
neg eax
jmp 0x40c681
mov dword [esp + 8], 1
jmp 0x40e729
mov eax, dword [esp + 0x28]
neg ebx
mov dword [esp + 4], ebx
mov dword [esp + 8], 1
mov dword [esp], eax
call fcn.00408490
mov ebx, eax
jmp 0x40c037