Function at 0x40e9a0
Capabilities:
Parse credit card information
Write file on windows

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x4c
mov ebx, dword [esp + 0x64]
mov esi, dword [esp + 0x68]
mov edi, dword [esp + 0x70]
mov ebp, dword [esp + 0x74]
mov edx, dword [ebx + 0x10]
test edx, edx
je 0x40ea23
cmp esi, 0x64
je 0x40ea90
mov eax, dword [esp + 0x60]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.00407b50
test eax, eax
je 0x40eb80
mov eax, dword [ebx + 0x10]
mov dword [ebx + 0x20], 0
mov dword [ebx + 0x24], 0
mov dword [ebx + 0x28], eax
mov eax, dword [ebx + 4]
test eax, eax
jne 0x40ea00
mov eax, dword [ebx + 0x14]
mov dword [ebx + 0x18], eax
mov dword [ebx + 0x44], 1
mov dword [esp], 4
call fcn.004742f0
mov dword [ebx + 0x48], eax
mov dword [eax], 0
mov dword [ebx + 0x10], 0
cmp esi, 0x62
je 0x40ecc0
jle 0x40eb90
cmp esi, 0xc0
je 0x40f021
nop
jle 0x40ecd0
cmp esi, 0xe0
je 0x40ee20
jle 0x40eda0
cmp esi, 0xe2
je 0x40f080
cmp esi, 0xe4
jne 0x40ec10
mov eax, dword [esp + 0x60]
mov dword [esp + 4], ebp
mov dword [esp], eax
call fcn.00408230
test eax, eax
setne al
movzx eax, al
jmp 0x40eb82
movzx eax, byte [ebp]
test al, al
je 0x40e9c7
cmp dword [ebx + 0x14], edi
jne 0x40e9c7
cmp dword [ebx + 0x34], 0
je 0x40eb05
mov eax, dword [ebx + 0x38]
mov esi, edi
cmp eax, 0xffffffff
je 0x40eabc
cmp edi, eax
cmovbe eax, edi
mov esi, eax
mov eax, dword [esp + 0x60]
lea edx, [ebx + 0x40]
call fcn.00409730
test eax, eax
je 0x40eb80
mov eax, dword [esp + 0x60]
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.00407ec0
test eax, eax
je 0x40eb80
mov dword [ebx + 0x34], 0
mov dword [ebx + 0x38], 0xffffffff
movzx eax, byte [ebp]
test al, al
je 0x40ecc0
mov edx, dword [ebx + 0x10]
test edx, edx
je 0x40f7c2
cmp al, 0x5c
je 0x40f76b
cmp al, 0x2f
je 0x40f76b
cmp byte [ebp + 1], 0x3a
je 0x40f76b
mov dword [esp], edx
mov dword [esp + 8], 0
mov dword [esp + 4], ebp
mov dword [esp + 0x20], edx
call fcn.004758b0
mov edx, dword [esp + 0x20]
mov dword [ebx + 0x10], eax
mov dword [esp], edx
call fcn.0048d280
mov dword [ebx + 0x14], edi
mov eax, 1
jmp 0x40eb82
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 8], 0x1c
mov dword [esp + 4], 1
mov dword [esp], str.N_LBRAC_not_within_function_n
add eax, 0x40
mov dword [esp + 0xc], eax
call sub.msvcrt.dll_fwrite
xor eax, eax
add esp, 0x4c
pop ebx
pop esi
pop edi
pop ebp
ret
cmp esi, 0x24
je 0x40eea0
jle 0x40f0e0
cmp esi, 0x38
je 0x40ecc0
nop
lea esi, [esi]
jle 0x40f148
cmp esi, 0x3c
je 0x40efe0
cmp esi, 0x44
jne 0x40ec10
mov edx, dword [ebx + 0x34]
xor eax, eax
test edx, edx
je 0x40ebd0
mov eax, dword [ebx + 0x1c]
add eax, edi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x60]
mov dword [esp], eax
call fcn.004080b0
test eax, eax
setne al
movzx eax, al
jmp 0x40eb82
mov ecx, dword [ebx + 0x34]
test ecx, ecx
je 0x40ec10
mov eax, dword [ebx + 0x38]
cmp eax, 0xffffffff
je 0x40ec07
cmp edi, eax
jae 0x40ec10
mov dword [ebx + 0x38], edi
lea esi, [esi]
mov dword [esp + 4], 0x3a
mov dword [esp], ebp
call sub.msvcrt.dll_strchr
test eax, eax
je 0x40ecc0
movzx edx, byte [eax + 1]
and edx, 0xffffffdf
cmp dl, 0x46
jne 0x40ef03
mov edx, dword [ebx + 0x34]
test edx, edx
je 0x40ec90
mov eax, dword [ebx + 0x38]
mov ecx, edi
cmp eax, 0xffffffff
je 0x40ec50
cmp edi, eax
cmovbe eax, edi
mov ecx, eax
mov eax, dword [esp + 0x60]
lea edx, [ebx + 0x40]
mov dword [esp + 0x20], ecx
call fcn.00409730
mov ecx, dword [esp + 0x20]
test eax, eax
je 0x40eb80
mov eax, dword [esp + 0x60]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00407ec0
test eax, eax
je 0x40eb80
mov dword [ebx + 0x38], 0xffffffff
nop
lea esi, [esi]
mov eax, dword [ebx + 4]
test eax, eax
je 0x40ec9a
mov dword [ebx + 0x1c], edi
mov dword [ebx + 0x34], 1
mov dword [esp + 4], 0x3a
mov dword [esp], ebp
call sub.msvcrt.dll_strchr
test eax, eax
mov dword [esp + 0x38], eax
jne 0x40ef33
lea esi, [esi]
add esp, 0x4c
mov eax, 1
pop ebx
pop esi
pop edi
pop ebp
ret
cmp esi, 0x82
je 0x40ed24
jle 0x40f783
cmp esi, 0x84
je 0x40ed7b
cmp esi, 0xa2
jne 0x40ec10
mov eax, dword [ebx + 0x2c]
test eax, eax
je 0x40f706
mov edx, dword [eax + 4]
mov ecx, dword [ebx + 0x48]
mov esi, dword [eax + 0x10]
mov dword [ebx + 0x2c], edx
test edx, edx
mov ecx, dword [ecx + esi*4]
mov dword [eax + 0x14], ecx
je 0x40f706
mov eax, dword [edx + 8]
mov dword [esp + 4], eax
jmp 0x40ed7f
mov dword [esp], 0x18
call fcn.004742f0
mov edx, dword [ebx + 0x48]
mov esi, eax
mov eax, dword [ebx + 0x30]
mov dword [esi], eax
mov eax, dword [ebx + 0x2c]
mov dword [esi + 8], ebp
mov dword [esi + 0xc], edi
mov dword [esi + 4], eax
mov eax, dword [ebx + 0x44]
mov dword [esi + 0x14], 0
mov dword [esi + 0x10], eax
add eax, 1
mov dword [ebx + 0x44], eax
shl eax, 2
mov dword [ebx + 0x30], esi
mov dword [ebx + 0x2c], esi
mov dword [esp], edx
mov dword [esp + 4], eax
call fcn.00474370
mov edx, dword [esi + 0x10]
mov dword [ebx + 0x48], eax
mov dword [eax + edx*4], 0
mov dword [esp + 4], ebp
mov eax, dword [esp + 0x60]
mov dword [esp], eax
call fcn.00407c00
test eax, eax
setne al
add esp, 0x4c
pop ebx
movzx eax, al
pop esi
pop edi
pop ebp
ret
cmp esi, 0xc2
jne 0x40ec10
mov eax, dword [ebx + 0x44]
mov edx, dword [ebx + 0x48]
add eax, 1
mov dword [ebx + 0x44], eax
shl eax, 2
mov dword [esp + 4], eax
mov dword [esp], edx
call fcn.00474370
mov esi, dword [ebx + 0x30]
test esi, esi
mov dword [esp + 0x20], eax
mov dword [ebx + 0x48], eax
jne 0x40edea
jmp 0x40f0a0
mov esi, dword [esi]
test esi, esi
je 0x40f0a0
cmp edi, dword [esi + 0xc]
lea esi, [esi]
jne 0x40ede0
mov dword [esp + 4], ebp
mov eax, dword [esi + 8]
mov dword [esp], eax
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x40ede0
mov eax, dword [ebx + 0x44]
mov edx, dword [esi + 0x14]
mov ecx, dword [esp + 0x20]
mov dword [ecx + eax*4 - 4], edx
mov eax, 1
jmp 0x40eb82
mov ecx, dword [ebx + 0x24]
test ecx, ecx
je 0x40ee32
cmp dword [esp + 0x6c], 1
je 0x40ecc0
mov eax, dword [esp + 0x60]
lea edx, [ebx + 0x40]
call fcn.00409730
test eax, eax
je 0x40eb80
mov eax, dword [esp + 0x60]
add edi, dword [ebx + 0x1c]
add edi, dword [ebx + 0x18]
mov dword [esp], eax
mov dword [esp + 4], edi
call fcn.00408040
test eax, eax
je 0x40eb80
sub dword [ebx + 0x3c], 1
jns 0x40ecc0
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 8], 0x12
mov dword [esp + 4], 1
mov dword [esp], str.Too_many_N_RBRACs_n
add eax, 0x40
mov dword [esp + 0xc], eax
call sub.msvcrt.dll_fwrite
xor eax, eax
jmp 0x40eb82
cmp byte [ebp], 0
jne 0x40ebf4
mov ebp, dword [ebx + 0x34]
test ebp, ebp
je 0x40ecc0
mov esi, dword [ebx + 4]
test esi, esi
je 0x40eebf
add edi, dword [ebx + 0x1c]
mov eax, dword [esp + 0x60]
lea edx, [ebx + 0x40]
call fcn.00409730
test eax, eax
je 0x40eb80
mov eax, dword [esp + 0x60]
mov dword [esp + 4], edi
mov dword [esp], eax
call fcn.00407ec0
test eax, eax
je 0x40eb80
mov dword [ebx + 0x34], 0
mov eax, 1
mov dword [ebx + 0x38], 0xffffffff
jmp 0x40eb82
mov dword [esp + 0x38], eax
jmp 0x40ef33
add eax, 2
mov dword [esp + 4], 0x3a
mov dword [esp], eax
mov dword [esp + 0x38], eax
call sub.msvcrt.dll_strchr
test eax, eax
mov dword [esp + 0x38], eax
je case.0x40f182.1
cmp byte [eax + 1], 0x3a
je 0x40ef10
cmp byte [ebp], 0x24
je 0x40f70e
cmp eax, ebp
je 0x40f7a9
cmp byte [ebp], 0x20
jne 0x40ef5c
lea edx, [ebp + 1]
cmp eax, edx
je 0x40f7a9
sub eax, ebp
mov edx, eax
mov eax, ebp
call fcn.00409500
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x38]
lea edx, [eax + 1]
mov dword [esp + 0x38], edx
movzx edx, byte [eax + 1]
movzx ecx, dl
test byte [ecx + ecx + 0x4b8120], 4
je 0x40f156
lea eax, [esp + 0x38]
xor ecx, ecx
mov dword [esp], eax
mov eax, dword [esp + 0x60]
mov edx, ebx
mov dword [esp + 4], 0
call fcn.0040be00
test eax, eax
je 0x40eb80
mov dword [esp + 8], edi
mov dword [esp + 4], 4
mov dword [esp], eax
mov ecx, dword [esp + 0x20]
mov edx, ebx
mov eax, dword [esp + 0x60]
call fcn.00409680
test eax, eax
je 0x40eb80
jmp 0x40ecc0
test ebp, ebp
je 0x40f126
mov edi, str.gcc2_compiled.
mov ecx, 0xf
mov esi, ebp
repe cmpsb byte [esi], byte es:[edi]
je 0x40f137
mov edi, str.gcc_compiled.
mov ecx, 0xe
mov esi, ebp
repe cmpsb byte [esi], byte es:[edi]
jne 0x40f126
mov dword [ebx + 0x20], 1
mov eax, 1
jmp 0x40eb82
mov ebp, dword [ebx + 0x24]
test ebp, ebp
je 0x40f033
cmp dword [esp + 0x6c], 1
je 0x40ecc0
mov esi, dword [ebx + 0x34]
test esi, esi
je 0x40eb58
mov eax, dword [esp + 0x60]
add edi, dword [ebx + 0x1c]
add edi, dword [ebx + 0x18]
mov dword [esp], eax
mov dword [esp + 4], edi
call fcn.00407f40
test eax, eax
je 0x40eb80
mov eax, dword [esp + 0x60]
lea edx, [ebx + 0x40]
call fcn.00409730
test eax, eax
je 0x40eb80
add dword [ebx + 0x3c], 1
mov eax, 1
jmp 0x40eb82
mov eax, dword [esp + 0x60]
mov dword [esp + 4], ebp
mov dword [esp], eax
call fcn.00408200
test eax, eax
setne al
movzx eax, al
jmp 0x40eb82
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 0xc], ebp
mov dword [esp + 8], str.Undefined_N_EXCL
mov dword [esp + 4], str.Warning:__s:__s_n
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov eax, dword [ebx + 0x48]
mov edx, dword [ebx + 0x44]
mov dword [eax + edx*4 - 4], 0
mov eax, 1
jmp 0x40eb82
cmp esi, 0xc
je 0x40ecc0
jl 0x40ec10
lea eax, [esi - 0x1e]
cmp eax, 1
jbe 0x40ecc0
nop
lea esi, [esi]
jmp 0x40ec10
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 8], ebp
mov dword [esp + 4], str.Bad_stab:__s_n
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
jmp 0x40eb80
mov dword [ebx + 0x24], 1
mov eax, 1
jmp 0x40eb82
mov dword [ebx + 0x20], 2
mov eax, 1
jmp 0x40eb82
cmp esi, 0x2a
je 0x40ecc0
jmp 0x40ec10
cmp dl, 0x28
je case.0x40f182.21
cmp dl, 0x2d
je case.0x40f182.21
lea edx, [eax + 2]
mov dword [esp + 0x38], edx
movzx ecx, byte [eax + 1]
lea edx, [ecx - 0x43]
cmp dl, 0x33
mov byte [esp + 0x24], cl
ja case.0x40f182.1
movzx edx, dl
jmp dword [edx*4 + 0x49979c]
lea eax, [esp + 0x38]
xor ecx, ecx
mov dword [esp], eax
mov eax, dword [esp + 0x60]
mov edx, ebx
mov dword [esp + 4], 0
call fcn.0040be00
test eax, eax
je 0x40eb80
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], 2
mov dword [esp + 8], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x60]
mov dword [esp], eax
call fcn.00407e10
test eax, eax
je 0x40eb80
jmp 0x40ecc0
cmp esi, 0x24
jne case.0x40f182.15
lea esi, [esp + 0x38]
mov edi, dword [esp + 0x60]
jmp 0x40f215
add ecx, 1
mov edx, ebx
mov dword [esp + 0x38], ecx
mov eax, edi
xor ecx, ecx
mov dword [esp + 4], 0
mov dword [esp], esi
call fcn.0040be00
test eax, eax
je 0x40eb80
mov ecx, dword [esp + 0x38]
cmp byte [ecx], 0x3b
je 0x40f1f0
nop
jmp 0x40ecc0
lea eax, [esp + 0x38]
xor ecx, ecx
mov dword [esp], eax
mov eax, dword [esp + 0x60]
mov edx, ebx
mov dword [esp + 4], 0
call fcn.0040be00
test eax, eax
mov dword [esp + 0x2c], eax
je 0x40eb80
mov ebp, dword [esp + 0x20]
test ebp, ebp
je 0x40f2cb
mov eax, dword [ebx]
mov ecx, dword [ebx + 0xc]
mov esi, dword [ebx + 8]
mov eax, dword [eax + 4]
test ecx, ecx
movzx eax, byte [eax + 0x18]
jle 0x40f2cb
movzx edx, byte [ebp]
mov dword [esp + 0x64], ebx
mov ebx, ecx
mov dword [esp + 0x70], edi
mov edi, ebp
mov byte [esp + 0x24], dl
mov edx, eax
jmp 0x40f28c
add esi, 4
sub ebx, 1
je 0x40f7d2
mov ebp, dword [esi]
test dl, dl
mov eax, dword [ebp + 4]
movzx ecx, byte [eax]
je 0x40f2a0
cmp dl, cl
je 0x40f7b6
cmp byte [esp + 0x24], cl
jne 0x40f280
mov dword [esp + 4], edi
mov dword [esp], eax
mov dword [esp + 0x28], edx
call sub.msvcrt.dll_strcmp
mov edx, dword [esp + 0x28]
test eax, eax
jne 0x40f280
mov eax, dword [ebp + 0x10]
mov edi, dword [ebp + 8]
mov ebx, dword [esp + 0x64]
add edi, dword [eax + 0x1c]
mov dword [esp + 8], edi
mov eax, dword [esp + 0x2c]
mov dword [esp + 4], 1
jmp 0x40efbb
mov eax, dword [esp + 0x60]
lea esi, [esp + 0x38]
xor ecx, ecx
mov dword [esp + 4], 0
mov edx, ebx
mov dword [esp], esi
call fcn.0040be00
test eax, eax
je 0x40eb80
mov dword [esp + 8], eax
mov eax, dword [esp + 0x20]
xor edx, edx
cmp byte [esp + 0x24], 0x46
mov dword [esp + 0x10], edi
mov dword [esp + 4], eax
mov eax, dword [esp + 0x60]
sete dl
mov dword [esp + 0xc], edx
mov dword [esp], eax
call fcn.00407cc0
test eax, eax
je 0x40eb80
mov edi, dword [esp + 0x60]
jmp 0x40f365
add ecx, 1
mov edx, ebx
mov dword [esp + 0x38], ecx
mov eax, edi
xor ecx, ecx
mov dword [esp + 4], 0
mov dword [esp], esi
call fcn.0040be00
test eax, eax
je 0x40eb80
mov ecx, dword [esp + 0x38]
cmp byte [ecx], 0x3b
je 0x40f340
nop
jmp 0x40ecc0
lea eax, [esp + 0x38]
xor ecx, ecx
mov dword [esp], eax
mov eax, dword [esp + 0x60]
mov edx, ebx
mov dword [esp + 4], 0
call fcn.0040be00
test eax, eax
je 0x40eb80
mov dword [esp + 8], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0xc], edi
mov dword [esp + 4], eax
mov eax, dword [esp + 0x60]
mov dword [esp], eax
call fcn.00408340
test eax, eax
jne 0x40ecc0
jmp 0x40eb80
lea eax, [esp + 0x3c]
mov edi, dword [esp + 0x20]
mov edx, ebx
mov dword [esp + 4], eax
lea eax, [esp + 0x38]
mov dword [esp], eax
mov eax, dword [esp + 0x60]
mov ecx, edi
call fcn.0040be00
test eax, eax
je 0x40eb80
test edi, edi
je 0x40ecc0
mov dword [esp + 8], eax
mov eax, edi
mov dword [esp + 4], eax
mov eax, dword [esp + 0x60]
mov dword [esp], eax
call fcn.00408c50
test eax, eax
je 0x40eb80
mov edx, dword [esp + 0x3c]
test edx, edx
je 0x40ecc0
mov dword [edx], eax
jmp 0x40ecc0
lea eax, [esp + 0x38]
xor ecx, ecx
mov dword [esp], eax
mov eax, dword [esp + 0x60]
mov edx, ebx
mov dword [esp + 4], 0
call fcn.0040be00
test eax, eax
je 0x40eb80
mov dword [esp + 8], edi
mov dword [esp + 4], 5
jmp 0x40efbb
cmp byte [eax + 2], 0x46
je 0x40f7ef
lea eax, [esp + 0x38]
xor ecx, ecx
mov dword [esp], eax
mov eax, dword [esp + 0x60]
mov edx, ebx
mov dword [esp + 4], 0
call fcn.0040be00
test eax, eax
je 0x40eb80
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], 1
jmp 0x40f1b9
lea eax, [esp + 0x38]
xor ecx, ecx
mov dword [esp], eax
mov eax, dword [esp + 0x60]
mov edx, ebx
mov dword [esp + 4], 0
call fcn.0040be00
test eax, eax
je 0x40eb80
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], 3
jmp 0x40f1b9
cmp byte [eax + 2], 0x3d
jne case.0x40f182.1
lea edx, [eax + 4]
mov dword [esp + 0x38], edx
movzx eax, byte [eax + 3]
cmp al, 0x69
je 0x40f87c
cmp al, 0x72
je 0x40f84f
cmp al, 0x65
jne case.0x40f182.1
lea eax, [esp + 0x38]
xor ecx, ecx
mov dword [esp], eax
mov eax, dword [esp + 0x60]
mov edx, ebx
mov dword [esp + 4], 0
call fcn.0040be00
test eax, eax
mov ebx, eax
je 0x40eb80
mov eax, dword [esp + 0x38]
cmp byte [eax], 0x2c
jne case.0x40f182.1
mov dword [esp], eax
call sub.msvcrt.dll_atoi
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x60]
mov dword [esp], eax
call fcn.004082e0
test eax, eax
je 0x40eb80
jmp 0x40ecc0
lea eax, [esp + 0x38]
xor ecx, ecx
mov dword [esp], eax
mov eax, dword [esp + 0x60]
mov edx, ebx
mov dword [esp + 4], 0
call fcn.0040be00
test eax, eax
je 0x40eb80
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], 4
jmp 0x40f1b9
lea edx, [eax + 3]
mov dword [esp + 0x38], edx
cmp byte [eax + 3], 0x6e
jne case.0x40f182.1
cmp byte [eax + 4], 0x30
lea edx, [eax + 4]
mov dword [esp + 0x38], edx
jne case.0x40f182.1
add eax, 5
mov dword [esp + 0x38], eax
add eax, 1
cmp byte [eax - 1], 0x3b
jne 0x40f5ba
jmp 0x40ecc0
lea eax, [esp + 0x38]
xor ecx, ecx
mov dword [esp], eax
mov eax, dword [esp + 0x60]
mov edx, ebx
mov dword [esp + 4], 0
call fcn.0040be00
test eax, eax
je 0x40eb80
mov dword [esp + 8], edi
mov dword [esp + 4], 3
jmp 0x40efbb
xor ebp, ebp
cmp byte [eax + 2], 0x74
je 0x40f7df
lea eax, [esp + 0x3c]
mov edi, dword [esp + 0x20]
mov edx, ebx
mov dword [esp + 4], eax
lea eax, [esp + 0x38]
mov dword [esp], eax
mov eax, dword [esp + 0x60]
mov ecx, edi
call fcn.0040be00
test eax, eax
je 0x40eb80
test edi, edi
je 0x40ecc0
mov esi, dword [ebx + 0xd8]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 4], edi
mov dword [esp], eax
call fcn.00408d10
test eax, eax
mov edi, eax
je 0x40eb80
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x40f66b
mov dword [eax], edi
test esi, esi
jne 0x40f6bc
lea esi, [ebx + 0xd4]
mov ebx, dword [ebx + 0xd4]
test ebx, ebx
je 0x40f6bc
mov eax, dword [esp + 0x20]
movzx edx, byte [eax]
jmp 0x40f690
mov esi, ebx
mov ebx, dword [ebx]
test ebx, ebx
je 0x40f6bc
mov eax, dword [ebx + 4]
cmp byte [eax], dl
jne 0x40f688
mov ecx, dword [esp + 0x20]
mov dword [esp], eax
mov dword [esp + 0x24], edx
mov dword [esp + 4], ecx
call sub.msvcrt.dll_strcmp
mov edx, dword [esp + 0x24]
test eax, eax
jne 0x40f688
mov dword [ebx + 0xc], edi
mov eax, dword [esi]
mov eax, dword [eax]
mov dword [esi], eax
test ebp, ebp
je 0x40ecc0
mov dword [esp + 8], edi
mov eax, dword [esp + 0x20]
jmp 0x40f3f8
lea eax, [esp + 0x38]
xor ecx, ecx
mov dword [esp], eax
mov eax, dword [esp + 0x60]
mov edx, ebx
mov dword [esp + 4], 0
call fcn.0040be00
test eax, eax
je 0x40eb80
mov dword [esp + 8], edi
mov dword [esp + 4], 2
jmp 0x40efbb
mov eax, dword [ebx + 0x28]
jmp 0x40ed1e
movzx ecx, byte [ebp + 1]
lea edx, [ecx - 0x58]
cmp dl, 0x1e
ja case.0x40f71d.1
movzx edx, dl
jmp dword [edx*4 + 0x49986c]
mov dword [esp + 0x20], str.eh_throw
jmp 0x40ef6f
mov dword [esp + 0x20], 0x49971d
jmp 0x40ef6f
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 0xc], ebp
mov dword [esp + 8], str.unknown_C_encoded_name
mov dword [esp + 4], str.Warning:__s:__s_n
add eax, 0x40
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov eax, dword [esp + 0x38]
jmp case.0x40f71d.0
mov dword [esp], ebp
mov dword [esp + 0x20], edx
call fcn.00476140
mov edx, dword [esp + 0x20]
mov dword [ebx + 0x10], eax
jmp 0x40eb46
cmp esi, 0x64
jne 0x40ec10
cmp dword [ebx + 0x34], 0
movzx eax, byte [ebp]
je 0x40eafa
test al, al
mov esi, edi
je 0x40eabc
jmp 0x40eaab
mov dword [esp + 0x20], 0
jmp 0x40ef6f
movzx ecx, byte [eax + 1]
add eax, 1
jmp 0x40f2a0
mov dword [esp], ebp
call fcn.00476140
mov dword [ebx + 0x10], eax
jmp 0x40eb4e
mov ebx, dword [esp + 0x64]
mov edi, dword [esp + 0x70]
jmp 0x40f2cb
add eax, 3
mov bp, 1
mov dword [esp + 0x38], eax
jmp 0x40f60d
add eax, 3
xor ecx, ecx
mov dword [esp + 0x38], eax
lea eax, [esp + 0x38]
mov edx, ebx
mov dword [esp], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 4], 0
call fcn.0040be00
test eax, eax
je 0x40eb80
mov dword [esp + 4], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp], eax
call fcn.004086e0
mov dword [esp + 4], eax
mov eax, dword [esp + 0x60]
mov dword [esp], eax
call fcn.00408690
jmp 0x40f47e
mov dword [esp], edx
call sub.msvcrt.dll_atof
mov eax, dword [esp + 0x20]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x60]
fstp qword [esp + 8]
mov dword [esp], eax
call fcn.004082a0
test eax, eax
je 0x40eb80
jmp 0x40ecc0
mov dword [esp], edx
nop
call sub.msvcrt.dll_atoi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x60]
mov dword [esp], eax
call fcn.00408260
test eax, eax
je 0x40eb80
jmp 0x40ecc0