Function at 0x43a130
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x78
push ebx
push ebp
push esi
push edi
push 7
call dword [0x483b14]
mov eax, dword [0x4813a8]
mov edi, dword [0x47e8ac]
mov ebx, dword [0x47e8b0]
mov ebp, dword [0x47e8a0]
mov edx, dword [eax*8 + 0x484b28]
mov esi, dword [eax*8 + 0x484b24]
lea ecx, [eax*8 + 0x484b28]
mov dword [esp + 0x34], edx
test eax, eax
jg 0x43a17a
mov eax, dword [0x47f93c]
jmp 0x43a19c
mov ecx, dword [ecx - 8]
mov eax, 0x47e8a0
test eax, eax
je 0x43a197
cmp ecx, ebp
jge 0x43a197
test ecx, ecx
jl 0x43a197
mov eax, edi
imul eax, ecx
add eax, ebx
jmp 0x43a199
xor eax, eax
mov eax, dword [eax + 0x44]
cmp eax, 5
mov dword [esp + 0x1c], eax
mov dword [esp + 0x10], 0x41f00000
jle 0x43a1d0
fild dword [esp + 0x1c]
fdivr dword [0x46737c]
fst dword [esp + 0x10]
fcomp dword [0x467390]
fnstsw ax
test ah, 0x41
jne 0x43a1d0
mov dword [esp + 0x10], 0x41f00000
fld dword [esp + 0x10]
fmul dword [0x467478]
mov eax, dword [0x4840ac]
test eax, eax
fstp dword [esp + 0x28]
fild dword [esp + 0x1c]
fmul dword [esp + 0x28]
fmul dword [0x4671c0]
fsubr dword [0x467474]
fstp dword [esp + 0x18]
jle 0x43a218
fld dword [esp + 0x18]
fcomp dword [0x467470]
fnstsw ax
test ah, 1
je 0x43a218
mov dword [esp + 0x18], 0x430c0000
cmp esi, 1
mov dword [esp + 0x1c], 0
jne 0x43a22d
mov dword [esp + 0x1c], 0x420c0000
xor edx, edx
mov ecx, esi
test esi, esi
mov dword [esp + 0x14], edx
jl 0x43a261
mov eax, 0x47e8a0
test eax, eax
je 0x43a25d
cmp ecx, ebp
jge 0x43a25d
mov eax, edi
imul eax, ecx
add eax, ebx
je 0x43a25d
cmp ecx, dword [esp + 0x34]
je 0x43a25d
mov ecx, dword [eax + 0x20]
inc edx
test ecx, ecx
jge 0x43a239
mov dword [esp + 0x14], edx
push 1
call dword [0x47db3c]
push 1
call dword [0x47f768]
push 2
call dword [0x4839b4]
push 0xaf000030
call dword [0x47f7a4]
fld dword [0x46b710]
fmul dword [0x46746c]
fld dword [0x46b70c]
fmul dword [0x467468]
mov ebx, 4
mov edi, 0x47e9b0
fst dword [esp + 0x40]
fld dword [0x46b710]
fmul dword [0x467410]
mov ecx, dword [esp + 0x40]
mov dword [0x47da14], ebx
mov dword [0x47ea4c], ecx
mov dword [0x4849a8], edi
fst dword [esp + 0x3c]
fld dword [0x46b70c]
fmul dword [0x467464]
fst dword [0x47e9b0]
fxch st(1)
fstp dword [0x47e9b4]
mov edx, dword [esp + 0x3c]
fstp dword [0x47e9e4]
fld st(1)
mov dword [0x47ea50], edx
fstp dword [0x47e9e8]
fstp dword [0x47ea18]
fstp dword [0x47ea1c]
call dword [0x484ea8]
push ebx
call dword [0x47f768]
push ebx
call dword [0x47db3c]
fld dword [0x46b70c]
fmul dword [0x467310]
push 0xffffffffffffffff
lea edx, [esp + 0x60]
fstp dword [esp + 0x4c]
fld dword [0x46b710]
fmul dword [0x467464]
fstp dword [esp + 0x40]
fld dword [0x46b70c]
fmul dword [0x467364]
mov eax, dword [esp + 0x40]
push eax
fstp dword [esp + 0x40]
fld dword [0x46b710]
fmul dword [0x467410]
mov ecx, dword [esp + 0x40]
push ecx
push 0
fstp dword [esp + 0x54]
fld dword [0x46b70c]
fmul dword [0x467464]
push 0
push edx
fstp dword [esp + 0x68]
call fcn.00432ad0
mov eax, dword [esp + 0x60]
add esp, 0x30
fld dword [esp + 0x24]
fmul dword [0x4671c0]
push 0xaf000030
push 0
push eax
push 0x3f800000
fadd dword [esp + 0x3c]
push ecx
fstp dword [esp]
fld dword [esp + 0x34]
fmul dword [0x4671c0]
push ecx
lea ecx, [esp + 0x5c]
fadd dword [esp + 0x50]
fstp dword [esp]
push ecx
call fcn.00433060
push 1
call dword [0x47f768]
push 1
call dword [0x47db3c]
push 0x8f00ff00
call dword [0x47f7a4]
fild dword [esp + 0x3c]
mov dword [0x47da14], ebx
mov dword [0x4849a8], edi
fmul dword [esp + 0x50]
fadd dword [esp + 0x40]
fld dword [esp + 0x38]
fmul dword [0x4673c0]
fsubp st(1)
fstp dword [esp + 0x3c]
fld dword [esp + 0x38]
fmul dword [0x467460]
fst dword [esp + 0x48]
fadd dword [esp + 0x3c]
fmul dword [0x46b710]
fld dword [esp + 0x44]
fadd dword [0x46745c]
fmul dword [0x46b70c]
fst dword [esp + 0x60]
fld dword [esp + 0x3c]
fmul dword [0x46b710]
mov edx, dword [esp + 0x60]
mov dword [0x47ea4c], edx
fst dword [esp + 0x58]
fld dword [0x467458]
fsub dword [esp + 0x44]
mov eax, dword [esp + 0x58]
mov dword [0x47ea50], eax
fst dword [esp + 0x4c]
fmul dword [0x46b70c]
fst dword [0x47e9b0]
fxch st(1)
fstp dword [0x47e9b4]
fstp dword [0x47e9e4]
fld st(1)
fstp dword [0x47e9e8]
fstp dword [0x47ea18]
fstp dword [0x47ea1c]
call dword [0x484ea8]
push ebx
call dword [0x47db3c]
push 0xff00ff00
call dword [0x47f7a4]
push 3
call dword [0x4839b4]
fld dword [0x46b70c]
fadd st(0), st(0)
fstp dword [esp + 0x6c]
fld dword [esp + 0x54]
fmul dword [0x46b710]
fstp dword [esp + 0x60]
fld dword [esp + 0x50]
fadd st(0), st(0)
fadd dword [0x467454]
fst dword [esp + 0x64]
fmul dword [0x46b70c]
fstp dword [esp + 0x50]
fld dword [esp + 0x48]
fmul dword [0x46b710]
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x50]
push 0xffffffffffffffff
push ecx
fstp dword [esp + 0x78]
fld dword [esp + 0x60]
fmul dword [0x46b70c]
push edx
push 0
lea eax, [esp + 0x88]
push 0
fstp dword [esp + 0x88]
push eax
call fcn.00432ad0
fld dword [esp + 0x78]
fmul dword [0x4671c0]
mov ecx, dword [esp + 0x84]
add esp, 0x4c
lea edx, [esp + 0x44]
fadd dword [esp + 0x3c]
push 0xff002f00
push 1
push ecx
push 0x3f800000
push ecx
fstp dword [esp]
fld dword [esp + 0x30]
fmul dword [0x4671c0]
push ecx
fadd dword [esp + 0x58]
fstp dword [esp]
push edx
call fcn.00432f00
fld dword [0x46b70c]
fmul dword [0x467388]
push 0xffffffffffffffff
lea edx, [esp + 0x64]
fstp dword [esp + 0x60]
fld dword [esp + 0x40]
fmul dword [0x46b710]
fstp dword [esp + 0x4c]
fld dword [esp + 0x50]
fmul dword [0x46b70c]
mov eax, dword [esp + 0x4c]
push eax
fstp dword [esp + 0x54]
fld dword [esp + 0x38]
fmul dword [0x46b710]
mov ecx, dword [esp + 0x54]
push ecx
push 0
fstp dword [esp + 0x68]
fld dword [esp + 0x50]
fmul dword [0x46b70c]
push 0
push edx
fstp dword [esp + 0x6c]
call fcn.00432ad0
fld dword [esp + 0x60]
fmul dword [0x4671c0]
mov eax, dword [esp + 0x74]
add esp, 0x34
fadd dword [esp + 0x3c]
push 0xff206020
push 0
push eax
push 0x3f800000
push ecx
fstp dword [esp]
fld dword [esp + 0x44]
fmul dword [0x4671c0]
fadd dword [esp + 0x4c]
push ecx
lea ecx, [esp + 0x5c]
fstp dword [esp]
push ecx
call fcn.00432f00
push 2
call dword [0x47f768]
push 2
call dword [0x47f768]
mov eax, dword [0x4840ac]
add esp, 0x24
cmp eax, 2
jne 0x43a6d3
fld dword [0x46b70c]
fmul dword [0x467390]
push 0xff000000
push ecx
fstp dword [esp]
fld dword [0x46b710]
fmul dword [0x467450]
push ecx
fstp dword [esp]
push str.Select_Math_Difficulty
call fcn.0041b0a0
fmul dword [0x46744c]
fsubr dword [0x467448]
fmul dword [0x46b70c]
fstp dword [esp]
push str.Select_Math_Difficulty
call fcn.0041b1c0
fld dword [0x46b70c]
fmul dword [0x467390]
add esp, 0x14
push 0xffff0000
push ecx
fstp dword [esp]
fld dword [0x46b710]
fmul dword [0x467320]
push ecx
fstp dword [esp]
push str.Select_Math_Difficulty
call fcn.0041b0a0
fmul dword [0x46744c]
fsubr dword [0x467364]
fmul dword [0x46b70c]
fstp dword [esp]
push str.Select_Math_Difficulty
jmp 0x43a776
cmp eax, 1
jne 0x43a77e
fld dword [0x46b70c]
fmul dword [0x467390]
push 0xff000000
push ecx
fstp dword [esp]
fld dword [0x46b710]
fmul dword [0x467450]
push ecx
fstp dword [esp]
push str.Select_Level
call fcn.0041b0a0
fmul dword [0x46744c]
fsubr dword [0x467448]
fmul dword [0x46b70c]
fstp dword [esp]
push str.Select_Level
call fcn.0041b1c0
fld dword [0x46b70c]
fmul dword [0x467390]
add esp, 0x14
push 0xffff0000
push ecx
fstp dword [esp]
fld dword [0x46b710]
fmul dword [0x467320]
push ecx
fstp dword [esp]
push str.Select_Level
call fcn.0041b0a0
fmul dword [0x46744c]
fsubr dword [0x467364]
fmul dword [0x46b70c]
fstp dword [esp]
push str.Select_Level
call fcn.0041b1c0
add esp, 0x14
test esi, esi
jl 0x43a99c
mov edx, 0x47e8a0
test edx, edx
je 0x43a99c
cmp esi, dword [0x47e8a0]
jge 0x43a99c
mov ebx, dword [0x47e8ac]
mov eax, dword [0x47e8b0]
imul ebx, esi
add ebx, eax
je 0x43a99c
fld dword [esp + 0x10]
fadd dword [0x4672dc]
call fcn.004518d4
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x34]
cmp esi, eax
mov dword [esp + 0x30], 0xffffffff
jne 0x43a7e9
mov eax, dword [esp + 0x24]
mov dword [esp + 0x30], 0xffffff00
inc eax
mov dword [esp + 0x24], eax
fld dword [esp + 0x18]
call fcn.004518d4
mov dword [esp + 0x2c], eax
mov eax, dword [0x46b7c0]
lea ecx, [eax + eax*4]
lea edx, [eax + ecx*2]
lea ebp, [edx*4 + 0x47e6d8]
test ebp, ebp
mov dword [0x4855c0], ebp
jne 0x43a81a
fld dword [0x4671bc]
jmp 0x43a86c
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
fld dword [0x4671bc]
not ecx
dec ecx
xor edi, edi
test ecx, ecx
jle 0x43a86c
movsx eax, byte [edi + ebx]
cmp eax, 0x20
jne 0x43a840
fadd dword [ebp + 0x14]
jmp 0x43a867
sub eax, dword [ebp + 4]
js 0x43a867
mov edx, dword [ebp + 0x18]
lea esi, [ebp + 0x18]
cmp eax, edx
jge 0x43a867
test esi, esi
je 0x43a862
cmp eax, edx
jge 0x43a862
mov edx, dword [esi + 0xc]
imul edx, eax
add edx, dword [esi + 0x10]
jmp 0x43a864
xor edx, edx
fadd dword [edx + 0x10]
inc edi
cmp edi, ecx
jl 0x43a832
fild dword [esp + 0x24]
mov eax, dword [esp + 0x2c]
push 0xff000000
push ecx
add eax, 2
fstp dword [esp + 0x24]
fld dword [esp + 0x24]
fmul dword [0x46b70c]
mov dword [esp + 0x48], eax
fstp dword [esp]
fild dword [esp + 0x48]
push ecx
fmul dword [0x46b710]
fstp dword [esp]
fld dword [esp + 0x28]
fmul st(1)
push ecx
fmul dword [0x4671c0]
fsubr dword [0x467448]
fmul dword [0x46b70c]
fstp dword [esp]
push ebx
fstp st(0)
call fcn.0041b1c0
mov eax, dword [0x46b7c0]
add esp, 0x14
lea ecx, [eax + eax*4]
lea edx, [eax + ecx*2]
lea ebp, [edx*4 + 0x47e6d8]
test ebp, ebp
mov dword [0x4855c0], ebp
jne 0x43a8eb
fld dword [0x4671bc]
jmp 0x43a93d
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
fld dword [0x4671bc]
not ecx
dec ecx
xor edi, edi
test ecx, ecx
jle 0x43a93d
movsx eax, byte [edi + ebx]
cmp eax, 0x20
jne 0x43a911
fadd dword [ebp + 0x14]
jmp 0x43a938
sub eax, dword [ebp + 4]
js 0x43a938
mov edx, dword [ebp + 0x18]
lea esi, [ebp + 0x18]
cmp eax, edx
jge 0x43a938
test esi, esi
je 0x43a933
cmp eax, edx
jge 0x43a933
mov edx, dword [esi + 0xc]
imul edx, eax
add edx, dword [esi + 0x10]
jmp 0x43a935
xor edx, edx
fadd dword [edx + 0x10]
inc edi
cmp edi, ecx
jl 0x43a903
fld dword [esp + 0x1c]
mov eax, dword [esp + 0x30]
fmul dword [0x46b70c]
push eax
push ecx
fstp dword [esp]
fild dword [esp + 0x34]
push ecx
fmul dword [0x46b710]
fstp dword [esp]
fld dword [esp + 0x28]
fmul st(1)
push ecx
fmul dword [0x4671c0]
fsubr dword [0x467364]
fmul dword [0x46b70c]
fstp dword [esp]
push ebx
fstp st(0)
call fcn.0041b1c0
fld dword [esp + 0x2c]
fadd dword [esp + 0x3c]
mov esi, dword [ebx + 0x20]
add esp, 0x14
test esi, esi
fstp dword [esp + 0x18]
jge 0x43a786
push 1
call dword [0x47f768]
push 1
call dword [0x4839b4]
push 0xff000000
call dword [0x47f7a4]
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret