Function at 0x409e10
Capabilities:
Parse credit card information
Parse pe header

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x38
or eax, 0xffffffff
mov word [ebp - 0x1c], ax
xor eax, eax
push ebx
push esi
mov word [ebp - 0x1a], ax
mov dword [ebp - 0x30], eax
xor ecx, ecx
push edi
xor edi, edi
mov eax, 0x65
mov edx, 2
mul edx
seto cl
mov dword [ebp - 0xc], edi
mov dword [ebp - 0x2c], 0x65
neg ecx
or ecx, eax
push ecx
call fcn.00420f2a
mov ebx, eax
add esp, 4
xor eax, eax
push 4
mov dword [ebp - 8], ebx
mov dword [ebp - 0x34], ebx
mov word [ebx], ax
call fcn.00420f2a
add esp, 4
test eax, eax
je 0x40a7d4
mov dword [eax], 1
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp + 0x10]
xor esi, esi
cmp dword [ecx + 8], esi
jbe 0x409ebc
mov eax, dword [ecx + 4]
mov ebx, dword [eax + esi*4]
test ebx, ebx
je 0x409eaf
movzx eax, word [ebx + 8]
cmp ax, 0x3f
jg 0x409ea3
cmp ax, 0x30
jge 0x409f6b
push ebx
call fcn.00420f9e
mov ecx, dword [ebp + 0x10]
add esp, 4
mov eax, dword [ecx + 4]
inc esi
mov dword [eax + esi*4 - 4], edi
cmp esi, dword [ecx + 8]
jb 0x409e85
mov ebx, dword [ebp + 0xc]
mov dword [ecx + 8], edi
cmp word [ebx], di
je 0x40a0cb
fldz
fld qword [0x4b3710]
fld qword [0x4b3708]
fld qword [0x4b3700]
movzx eax, word [ebx + edi*2]
cmp eax, 0x20
je 0x409fbd
cmp eax, 9
je 0x409fbd
movzx eax, word [ebx + edi*2]
mov dword [ebp - 0xc], edi
test ax, ax
je 0x40a0b2
mov esi, eax
mov word [ebp - 0x1a], di
cmp esi, 0x30
jb 0x409f19
cmp esi, 0x39
jbe 0x40a214
cmp esi, 0x2e
je 0x40a214
cmp esi, 0x41
jae 0x409fc3
cmp esi, 0x61
jae 0x40a778
cmp esi, 0x5f
je 0x409fcc
mov eax, esi
cmp eax, 0x24
je case.0x409f64.64
cmp eax, 0x3d
je 0x40a2df
sub eax, 0x1a
cmp eax, 0x44
ja case.0x409f64.27
movzx eax, byte [eax + 0x40a834]
jmp dword [eax*4 + 0x40a7e8]
mov ecx, dword [ebx]
mov dword [ebp - 0xc], ecx
test ecx, ecx
je 0x409ea3
mov eax, dword [ecx + 0xc]
dec dword [eax]
mov eax, dword [ecx + 0xc]
cmp dword [eax], edi
je 0x47498a
push ecx
call fcn.00420f9e
add esp, 4
jmp 0x409ea3
fstp st(3)
push 0x40
fstp st(1)
lea ecx, [ebp - 0x24]
fstp st(0)
fstp st(0)
call fcn.0040a9af
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x24]
push eax
call fcn.0040a880
inc edi
mov dword [ebp - 0xc], edi
jmp 0x40a090
inc edi
jmp 0x409edf
cmp esi, 0x5a
ja 0x409f2b
lea eax, [ebp - 0x34]
fstp st(3)
push eax
fstp st(1)
lea eax, [ebp - 0x24]
fstp st(0)
push eax
fstp st(0)
lea eax, [ebp - 0xc]
push eax
push ebx
call fcn.0040aa60
cmp dword [ebp - 0x24], 0xffffffff
je 0x474c69
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x24]
push eax
call fcn.0040a880
mov ebx, dword [ebp - 0x34]
mov edi, dword [ebp - 0xc]
mov dword [ebp - 8], ebx
jmp 0x40a08d
cmp si, 0x30
jae 0x40a208
cmp si, 0x5f
je 0x40a1b0
fstp st(1)
fstp st(0)
fstp st(0)
test ebx, ebx
je 0x40a7dc
mov ecx, dword [ebp - 0x28]
mov eax, dword [ecx]
cmp eax, 1
jg 0x474be4
mov esi, dword [ebp - 8]
push ebx
push esi
call dword [sym.imp.USER32.dll_CharUpperBuffW]
cmp word [ebp - 0x18], 0xf
ja 0x40a057
mov ecx, dword [ebp - 0x24]
test ecx, ecx
jne 0x474c36
push 0x10
call fcn.00420f2a
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x474c41
mov eax, dword [ebp - 0x2c]
mov dword [ecx + 8], eax
mov eax, dword [ebp - 0x28]
mov dword [ecx], esi
mov dword [ecx + 4], ebx
mov dword [ecx + 0xc], eax
inc dword [eax]
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x24]
push eax
call fcn.0040a880
mov ebx, dword [ebp + 0xc]
fldz
mov ecx, dword [ebp + 0x10]
fld qword [0x4b3710]
fld qword [0x4b3708]
fld qword [0x4b3700]
cmp word [ebx + edi*2], 0
jne 0x409edf
mov ax, word [ebp - 0x1c]
fstp st(3)
fstp st(1)
fstp st(0)
fstp st(0)
cmp ax, 0x30
jge 0x40a311
mov ecx, dword [ebp + 0x10]
mov eax, 0x7f
mov word [ebp - 0x1c], ax
lea eax, [ebp - 0x24]
push eax
mov dword [ebp - 0x24], 0
mov word [ebp - 0x1a], di
call fcn.0040a880
mov eax, dword [ebp - 8]
xor esi, esi
mov ebx, dword [ebp - 0x28]
dec dword [ebx]
jne 0x40a106
push eax
call fcn.00420f9e
add esp, 4
push ebx
call fcn.00420f9e
add esp, 4
mov eax, dword [ebp - 0x1c]
add eax, 0xffffffd0
cmp ax, 0xf
jbe 0x474cfa
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
push ecx
call fcn.0040aa25
test eax, eax
js 0x474cd9
cmp esi, 0x24
jne 0x40a606
mov esi, 0x33
mov eax, dword [ebp - 0x1c]
add eax, 0xffffffd0
cmp ax, 0xf
jbe 0x474a43
lea eax, [esi - 0x30]
mov word [ebp - 0x1c], si
mov dword [ebp - 0x18], eax
cmp ax, 0xf
ja 0x474a77
fstp st(3)
mov dword [ebp - 0x24], 0
mov ecx, dword [ebp - 0x28]
inc edi
mov eax, dword [ecx]
mov dword [ebp - 0xc], edi
cmp eax, 1
jg 0x40a275
mov eax, dword [ebp - 8]
xor ebx, ebx
xor ecx, ecx
mov word [eax], cx
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x30], ebx
movzx esi, word [eax + edi*2]
jmp 0x40a196
fxch st(2)
fxch st(1)
cmp si, 0x5a
jbe 0x40a200
cmp si, 0x61
jb 0x40a00a
cmp si, 0x7a
ja 0x40a00a
mov ecx, dword [ebp - 0x28]
mov eax, dword [ecx]
cmp eax, 1
jg 0x474aa9
lea eax, [ebx + 2]
cmp dword [ebp - 0x2c], eax
jb 0x40a3d7
mov eax, dword [ebp - 8]
fstp st(1)
fstp st(0)
fstp st(0)
fld qword [0x4b3710]
mov word [eax + ebx*2], si
fld qword [0x4b3708]
inc ebx
fld qword [0x4b3700]
xor ecx, ecx
mov word [eax + ebx*2], cx
mov eax, dword [ebp + 0xc]
inc edi
mov dword [ebp - 0x30], ebx
movzx esi, word [eax + edi*2]
mov dword [ebp - 0xc], edi
jmp 0x40a192
cmp si, 0x41
jae 0x40a1b0
jmp 0x40a19c
cmp si, 0x39
ja 0x40a014
jmp 0x40a1b0
mov edx, dword [ecx + 8]
fstp st(3)
fstp st(1)
mov edi, 0x40
fstp st(0)
mov dword [ebp - 8], edx
fstp st(0)
test edx, edx
je 0x40a236
mov eax, dword [ecx + 4]
mov eax, dword [eax + edx*4 - 4]
movzx edi, word [eax + 8]
push edi
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0xc]
push eax
push ebx
call fcn.0040ae85
cmp al, 1
jne 0x40a6c7
cmp di, 0x4a
je 0x40a52d
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x24]
push eax
call fcn.0040a880
mov esi, dword [ebp - 0x34]
mov edi, dword [ebp - 0xc]
mov dword [ebp - 8], esi
jmp 0x40a090
fstp st(1)
dec eax
fstp st(0)
push 4
fstp st(0)
mov dword [ecx], eax
call fcn.00420f2a
add esp, 4
test eax, eax
je 0x474a9d
mov dword [eax], 1
mov dword [ebp - 0x28], eax
xor ecx, ecx
mov eax, 8
mov edx, 2
mul edx
seto cl
mov dword [ebp - 0x2c], 8
neg ecx
or ecx, eax
push ecx
call fcn.004208b5
fld qword [0x4b3710]
fld qword [0x4b3708]
add esp, 4
fld qword [0x4b3700]
mov dword [ebp - 8], eax
fxch st(2)
mov dword [ebp - 0x34], eax
fxch st(1)
jmp 0x40a17f
fstp st(3)
inc edi
fstp st(1)
mov dword [ebp - 0xc], edi
cmp word [ebx + edi*2], 0x3d
fstp st(0)
fstp st(0)
lea ecx, [ebp - 0x24]
je 0x40a6c3
push 0x41
call fcn.0040a9af
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x24]
push eax
call fcn.0040a880
jmp 0x40a090
cmp ax, 0x3f
jg 0x40a0c8
mov ebx, dword [ebp - 0x24]
test ebx, ebx
je 0x40a0c8
mov ecx, ebx
call fcn.004061e5
push ebx
call fcn.00420f9e
add esp, 4
jmp 0x40a0c8
fstp st(3)
push 0x47
fstp st(1)
lea ecx, [ebp - 0x24]
fstp st(0)
fstp st(0)
call fcn.0040a9af
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x24]
push eax
call fcn.0040a880
inc edi
mov dword [ebp - 0xc], edi
jmp 0x40a090
fstp st(3)
push 0x48
fstp st(1)
lea ecx, [ebp - 0x24]
fstp st(0)
fstp st(0)
call fcn.0040a9af
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x24]
push eax
call fcn.0040a880
inc edi
mov dword [ebp - 0xc], edi
jmp 0x40a090
fstp st(3)
push 0x4e
fstp st(1)
lea ecx, [ebp - 0x24]
fstp st(0)
fstp st(0)
call fcn.0040a9af
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x24]
push eax
call fcn.0040a880
inc edi
mov dword [ebp - 0xc], edi
jmp 0x40a090
fstp st(3)
push 0x4f
fstp st(1)
lea ecx, [ebp - 0x24]
fstp st(0)
fstp st(0)
call fcn.0040a9af
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x24]
push eax
call fcn.0040a880
inc edi
mov dword [ebp - 0xc], edi
jmp 0x40a090
cmp eax, 0x41c2
jae 0x474b06
fstp st(1)
add eax, eax
fstp st(0)
fstp st(0)
push eax
call fcn.0040b2a0
xor ecx, ecx
mov dword [ebp - 0x2c], eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004208b5
mov edx, eax
mov eax, dword [ebp - 8]
add esp, 4
mov dword [ebp - 0x10], edx
test eax, eax
je 0x40a439
lea ecx, [ebx*2 + 2]
push ecx
push eax
push edx
call fcn.004208c0
mov ecx, dword [ebp - 8]
add esp, 0xc
push ecx
call fcn.00422820
mov edx, dword [ebp - 0x10]
add esp, 4
mov eax, edx
mov dword [ebp - 8], eax
mov dword [ebp - 0x34], eax
jmp 0x40a1d3
lea eax, [ebp - 0x34]
fstp st(3)
push eax
fstp st(1)
lea eax, [ebp - 0xc]
fstp st(0)
push eax
fstp st(0)
push ebx
push dword [ebp + 8]
call fcn.0040b0d2
lea ecx, [ebp - 0x24]
test eax, eax
js 0x474c84
push 0x36
call fcn.0040a9af
lea eax, [ebp - 0x34]
push eax
lea ecx, [ebp - 0x24]
call fcn.0040b2b9
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x24]
push eax
call fcn.0040a880
mov ecx, dword [ebp - 0x34]
mov edi, dword [ebp - 0xc]
mov dword [ebp - 8], ecx
jmp 0x40a090
fstp st(3)
push 0x49
fstp st(1)
lea ecx, [ebp - 0x24]
fstp st(0)
fstp st(0)
call fcn.0040a9af
inc edi
mov dword [ebp - 0xc], edi
cmp word [ebx + edi*2], 0x3d
je 0x40a642
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x24]
push eax
call fcn.0040a880
jmp 0x40a090
fstp st(3)
push 0x4d
fstp st(1)
lea ecx, [ebp - 0x24]
fstp st(0)
fstp st(0)
call fcn.0040a9af
inc edi
mov dword [ebp - 0xc], edi
cmp word [ebx + edi*2], 0x3d
je 0x40a67d
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x24]
push eax
call fcn.0040a880
jmp 0x40a090
fstp st(3)
push 0x4a
fstp st(1)
lea ecx, [ebp - 0x24]
fstp st(0)
fstp st(0)
call fcn.0040a9af
inc edi
mov dword [ebp - 0xc], edi
cmp word [ebx + edi*2], 0x3d
je 0x40a69c
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x24]
push eax
call fcn.0040a880
jmp 0x40a090
cmp word [ebp - 0x1c], 5
jne 0x40a25b
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 8]
neg ecx
adc eax, 0
neg eax
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 0x20], eax
mov eax, dword [ecx + 4]
mov eax, dword [eax + edx*4 - 4]
mov edx, 0x49
mov word [eax + 8], dx
jmp 0x40a25e
movzx eax, word [ebx + edi*2 + 2]
fstp st(3)
inc edi
fstp st(1)
fstp st(0)
mov dword [ebp - 0xc], edi
fstp st(0)
lea ecx, [ebp - 0x24]
sub eax, 0x3d
je 0x40a6bb
dec eax
je 0x40a661
push 0x43
call fcn.0040a9af
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x24]
push eax
call fcn.0040a880
jmp 0x40a090
fstp st(3)
push 0x4c
fstp st(1)
lea ecx, [ebp - 0x24]
fstp st(0)
fstp st(0)
call fcn.0040a9af
inc edi
mov dword [ebp - 0xc], edi
cmp word [ebx + edi*2], 0x3d
je 0x40a759
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x24]
push eax
call fcn.0040a880
jmp 0x40a090
fstp st(3)
inc edi
fstp st(1)
mov dword [ebp - 0xc], edi
cmp word [ebx + edi*2], 0x3d
fstp st(0)
fstp st(0)
lea ecx, [ebp - 0x24]
je 0x40a6bf
push 0x42
call fcn.0040a9af
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x24]
push eax
call fcn.0040a880
jmp 0x40a090
mov esi, 0x32
jmp 0x40a13d
fstp st(3)
push 0x4b
fstp st(1)
lea ecx, [ebp - 0x24]
fstp st(0)
fstp st(0)
call fcn.0040a9af
inc edi
mov dword [ebp - 0xc], edi
cmp word [ebx + edi*2], 0x3d
je 0x4749db
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x24]
push eax
call fcn.0040a880
jmp 0x40a090
inc edi
push 0x52
lea ecx, [ebp - 0x24]
mov dword [ebp - 0xc], edi
call fcn.0040a9af
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x24]
push eax
call fcn.0040a880
jmp 0x40a090
push 0x44
call fcn.0040a9af
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x24]
inc edi
push eax
mov dword [ebp - 0xc], edi
call fcn.0040a880
jmp 0x40a090
inc edi
push 0x56
lea ecx, [ebp - 0x24]
mov dword [ebp - 0xc], edi
call fcn.0040a9af
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x24]
push eax
call fcn.0040a880
jmp 0x40a090
inc edi
push 0x53
lea ecx, [ebp - 0x24]
mov dword [ebp - 0xc], edi
call fcn.0040a9af
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x24]
push eax
call fcn.0040a880
jmp 0x40a090
push 0x46
jmp 0x40a663
push 0x45
jmp 0x40a663
push 0x50
jmp 0x40a663
mov edi, dword [ebp - 0xc]
cmp esi, 0x2e
jne 0x4749b9
inc edi
lea ecx, [ebp - 0x34]
mov dword [ebp - 0xc], edi
call fcn.0040b1e5
movzx eax, word [ebx + edi*2]
cmp ax, 0x5a
jbe 0x40a701
cmp ax, 0x61
jb 0x40a709
cmp ax, 0x7a
ja 0x40a709
push eax
lea ecx, [ebp - 0x34]
call fcn.0040b14b
inc edi
jmp 0x40a6df
cmp ax, 0x41
jae 0x40a6f5
jmp 0x40a6e9
cmp ax, 0x30
jae 0x4749aa
cmp ax, 0x5f
je 0x40a6f5
cmp ax, 0x7f
ja 0x40a6f5
cmp dword [ebp - 0x30], 0
mov dword [ebp - 0xc], edi
je 0x474c4d
push 0x35
lea ecx, [ebp - 0x24]
call fcn.0040a9af
lea eax, [ebp - 0x34]
push eax
lea ecx, [ebp - 0x24]
call fcn.0040b2b9
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x24]
push eax
call fcn.0040a880
mov ecx, dword [ebp - 0x34]
mov dword [ebp - 8], ecx
jmp 0x40a090
inc edi
push 0x55
lea ecx, [ebp - 0x24]
mov dword [ebp - 0xc], edi
call fcn.0040a9af
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x24]
push eax
call fcn.0040a880
jmp 0x40a090
cmp esi, 0x7a
jbe 0x409fcc
jmp 0x409f34
fstp st(3)
push 0x57
fstp st(1)
lea ecx, [ebp - 0x24]
fstp st(0)
fstp st(0)
call fcn.0040a9af
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x24]
push eax
call fcn.0040a880
inc edi
mov dword [ebp - 0xc], edi
jmp 0x40a090
fstp st(3)
push 0x58
fstp st(1)
lea ecx, [ebp - 0x24]
fstp st(0)
fstp st(0)
call fcn.0040a9af
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x24]
push eax
call fcn.0040a880
inc edi
mov dword [ebp - 0xc], edi
jmp 0x40a090
mov dword [ebp - 0x28], edi
jmp 0x409e7b
lea eax, [edi - 1]
push eax
jmp 0x474ce2
push dword [ecx]
call fcn.00420f9e
mov eax, dword [ebp - 0xc]
add esp, 4
push dword [eax + 0xc]
call fcn.00420f9e
mov ecx, dword [ebp - 0xc]
add esp, 4
jmp 0x409f88
cmp ax, 0x39
jbe 0x40a6f5
jmp 0x40a713
mov ecx, dword [ebp - 0x34]
fldz
fld qword [0x4b3710]
mov dword [ebp - 8], ecx
fld qword [0x4b3708]
mov ecx, dword [ebp + 0x10]
fld qword [0x4b3700]
jmp 0x409f22
inc edi
push 0x54
lea ecx, [ebp - 0x24]
mov dword [ebp - 0xc], edi
call fcn.0040a9af
jmp 0x40a631
fstp st(3)
push 0x51
fstp st(1)
lea ecx, [ebp - 0x24]
fstp st(0)
fstp st(0)
call fcn.0040a9af
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x24]
push eax
call fcn.0040a880
inc edi
mov dword [ebp - 0xc], edi
jmp 0x40a090
test edi, edi
jne case.0x409f64.27
cmp word [ebx + 2], di
jne case.0x409f64.27
mov eax, dword [ebp + 8]
cmp eax, dword [0x4c3110]
jl case.0x409f64.27
mov edi, 1
mov dword [ebp - 0xc], edi
jmp 0x40a0a7
mov ebx, dword [ebp - 0x24]
test ebx, ebx
je 0x40a14d
fstp st(3)
push ecx
fstp st(1)
mov ecx, ebx
fstp st(0)
fstp st(0)
call fcn.0040b60d
fldz
fld qword [0x4b3710]
fld qword [0x4b3708]
fld qword [0x4b3700]
jmp 0x40a14d
cmp si, 0x10
jne 0x474a89
mov dword [ebp - 0x20], 0
jmp 0x40a161
cmp si, 0x20
jne 0x40a161
fxch st(3)
fstp qword [ebp - 0x24]
jmp 0x40a16a
mov dword [ebp - 0x28], 0
jmp 0x40a299
fstp st(1)
dec eax
mov dword [ecx], eax
fstp st(0)
lea ecx, [ebp - 0x34]
fstp st(0)
call fcn.00405589
mov ebx, dword [ebp - 0x30]
lea eax, [ebx + 2]
push eax
call fcn.0040b2a0
xor ecx, ecx
mov dword [ebp - 0x2c], eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00420f2a
mov ecx, eax
add esp, 4
lea eax, [ebx*2 + 2]
push eax
push dword [ebp - 0x34]
mov dword [ebp - 8], ecx
push ecx
call fcn.004208c0
mov eax, dword [ebp - 8]
add esp, 0xc
mov dword [ebp - 0x34], eax
jmp 0x40a1d3
cmp eax, 0x2000000
jae 0x474b53
fstp st(0)
mov dword [ebp - 0x10], eax
fstp st(1)
fild dword [ebp - 0x10]
test eax, eax
jns 0x474b21
fadd qword [0x4b7a00]
fstp qword [ebp - 0x14]
fmul qword [ebp - 0x14]
mov ecx, dword [ebp - 0x34]
mov edi, dword [ebp - 0xc]
fnstcw word [ebp - 6]
movzx eax, word [ebp - 6]
mov ebx, dword [ebp - 0x30]
or eax, 0xc00
mov dword [ebp - 0x10], eax
fldcw word [ebp - 0x10]
fistp qword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
fldcw word [ebp - 6]
mov dword [ebp - 8], ecx
jmp 0x40a3ea
fstp st(1)
cmp eax, 0x8000000
jae 0x474ba0
mov dword [ebp - 0x10], eax
fstp st(1)
fild dword [ebp - 0x10]
test eax, eax
jns 0x474b6e
fadd qword [0x4b7a00]
fstp qword [ebp - 0x14]
fmul qword [ebp - 0x14]
mov ecx, dword [ebp - 0x34]
mov edi, dword [ebp - 0xc]
fnstcw word [ebp - 6]
movzx eax, word [ebp - 6]
mov ebx, dword [ebp - 0x30]
or eax, 0xc00
mov dword [ebp - 0x10], eax
fldcw word [ebp - 0x10]
fistp qword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
fldcw word [ebp - 6]
mov dword [ebp - 8], ecx
jmp 0x40a3ea
mov dword [ebp - 0x10], eax
fstp st(0)
fild dword [ebp - 0x10]
test eax, eax
jns 0x474bb2
fadd qword [0x4b7a00]
fstp qword [ebp - 0x14]
fmul qword [ebp - 0x14]
mov ecx, dword [ebp - 0x34]
mov edi, dword [ebp - 0xc]
fnstcw word [ebp - 6]
movzx eax, word [ebp - 6]
mov ebx, dword [ebp - 0x30]
or eax, 0xc00
mov dword [ebp - 0x10], eax
fldcw word [ebp - 0x10]
fistp qword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
fldcw word [ebp - 6]
mov dword [ebp - 8], ecx
jmp 0x40a3ea
dec eax
mov dword [ecx], eax
lea ecx, [ebp - 0x34]
call fcn.00405589
mov ebx, dword [ebp - 0x30]
lea esi, [ebx + 1]
push esi
call fcn.0040b2a0
xor ecx, ecx
mov dword [ebp - 0x2c], eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004208b5
mov ecx, eax
add esp, 4
lea eax, [esi + esi]
push eax
push dword [ebp - 0x34]
mov esi, ecx
push esi
mov dword [ebp - 8], ecx
call fcn.004208c0
add esp, 0xc
mov dword [ebp - 0x34], esi
jmp 0x40a03d
push ecx
call fcn.0040b60d
jmp 0x40a057
mov dword [ebp - 0x24], 0
jmp 0x40a081
lea eax, [edi - 1]
push eax
push 0x138b
push dword [ebp + 8]
call fcn.0044416c
mov eax, dword [ebp - 0x34]
or esi, 0xffffffff
jmp 0x40a0ed
push dword [ebp - 0xc]
push 0x138c
push dword [ebp + 8]
call fcn.0044416c
mov eax, dword [ebp - 0x34]
or esi, 0xffffffff
jmp 0x40a0ed
push 0x7f
call fcn.0040a9af
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x24]
push eax
call fcn.0040a880
mov eax, dword [ebp - 0x34]
or esi, 0xffffffff
jmp 0x40a0ed
fstp st(3)
push edi
fstp st(1)
push 0x1388
push dword [ebp + 8]
fstp st(0)
fstp st(0)
call fcn.0044416c
push 0x7f
lea ecx, [ebp - 0x24]
call fcn.0040a9af
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x24]
push eax
call fcn.0040a880
mov eax, dword [ebp - 8]
or esi, 0xffffffff
jmp 0x40a0ed
fstp st(3)
push edi
fstp st(1)
fstp st(0)
fstp st(0)
push 0x138b
push dword [ebp + 8]
call fcn.0044416c
mov eax, dword [ebp - 8]
or esi, 0xffffffff
jmp 0x40a0ed
mov ebx, dword [ebp - 0x24]
test ebx, ebx
je 0x40a116
push ecx
mov ecx, ebx
call fcn.0040b60d
jmp 0x40a116