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

Disassembly:
sub esp, 0x380
fldz
xor eax, eax
fst qword [esp + 0x5c]
push ebx
mov word [esp + 0x54], ax
fstp qword [esp + 0x34]
fldz
xor ecx, ecx
mov word [esp + 8], cx
push ebp
xor edx, edx
mov word [esp + 0x20], dx
xor ebp, ebp
mov dword [esp + 0x18], ebp
mov word [esp + 0x34], ax
fst dword [esp + 0x1c]
fst dword [esp + 0x24]
mov ecx, dword [0x4259cc]
mov dword [esp + 8], ecx
fild dword [esp + 8]
push esi
fld qword [0x4237c8]
fsub qword [0x41f800]
fsubp st(1)
call fcn.0040b510
mov dword [0x4259cc], eax
fst dword [esp + 0x34]
fstp dword [esp + 0x14]
mov dword [esp + 0x70], ebp
fld dword [esp + 0x14]
mov esi, dword [esp + 0x39c]
fld dword [esp + 0x14]
lea ecx, [esp + 0x74]
fsub dword [esp + 0x34]
mov ebx, 1
push ecx
lea eax, [esp + 0x74]
fsubp st(1)
push esi
fstp dword [esp + 0x1c]
fld dword [esp + 0x3c]
fld1
fsub st(1), st(0)
fxch st(1)
fstp dword [esp + 0x3c]
fsubr dword [esp + 0x1c]
mov dword [esp + 0x7c], ebx
fstp dword [esp + 0x1c]
mov edx, dword [0x425fcc]
imul edx, edx, 0xef3fba10
mov dword [0x425fcc], edx
mov dword [esp + 0x80], ebx
mov dword [esp + 0x84], eax
call fcn.00401380
add esp, 8
test eax, eax
jl 0x407afe
mov edx, dword [esi + 8]
test byte [edx], bl
je 0x407afe
add dword [0x425fcc], 0xc1c8632a
lea eax, [esp + 0x30]
push esi
push eax
call fcn.00401920
push ebp
lea ecx, [esp + 0x50]
push ecx
lea edx, [esp + 0x60]
push edx
call fcn.00402d70
push 0x300
lea eax, [esp + 0xa4]
push ebp
push eax
call fcn.0040bae0
fld qword [esp + 0x5c]
fadd qword [0x41f358]
mov eax, dword [esp + 0x3b8]
push eax
fstp qword [esp + 0x60]
fld qword [esp + 0x60]
mov cx, word [0x423a38]
movsx edx, cx
mov dword [esp + 0x30], edx
fild dword [esp + 0x30]
fsubp st(1)
fadd qword [0x41f7f8]
fadd dword [esp + 0x4c]
fstp dword [esp + 0x4c]
dec word [0x423a38]
call fcn.00402960
add esp, 0x24
cmp eax, 0x29f
jle 0x407310
mov dword [esp + 0x14], 6
jmp 0x407340
cmp eax, 0xef
jle 0x407321
mov dword [esp + 0x14], 5
jmp 0x407340
cmp eax, 0x4f
jle 0x407330
mov dword [esp + 0x14], 4
jmp 0x407340
xor ecx, ecx
cmp eax, 0x17
setg cl
lea ecx, [ecx + ecx + 1]
mov dword [esp + 0x14], ecx
push edi
mov edi, dword [esi + 4]
add edi, ebx
mov ebx, dword [esp + 0x394]
push edi
push ebx
call fcn.00401ba0
add esp, 8
mov dword [esp + 0x1c], eax
cmp eax, ebp
jne 0x407a58
lea edx, [esp + 0x9c]
push edi
push edx
call fcn.00401ba0
add esp, 8
mov dword [esp + 0x1c], eax
cmp eax, ebp
jne 0x407a58
lea eax, [edi + edi]
push eax
lea ecx, [esp + 0x4c]
push ecx
call fcn.00401ba0
add esp, 8
mov dword [esp + 0x1c], eax
cmp eax, ebp
jne 0x407a58
mov ebp, dword [esp + 0x3a4]
test ebp, ebp
je 0x4073c8
cmp dword [ebp + 8], 0
je 0x4073c8
mov edx, dword [ebp]
mov eax, dword [ebp + 4]
mov ecx, dword [ebp + 8]
mov dword [esp + 0x54], edx
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], ecx
jmp 0x4074fc
lea edx, [esp + 0x54]
push 1
push edx
call fcn.00401cb0
add esp, 8
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x407a5f
fld qword [0x425e10]
lea ecx, [esp + 0x54]
fsub qword [0x423720]
fstp qword [0x425e10]
fld qword [0x423720]
fadd qword [0x41f358]
fstp qword [0x423720]
mov eax, dword [esi + 4]
shl eax, 6
push eax
push ecx
call fcn.00403e60
add esp, 8
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x407a5f
fld dword [0x423a54]
fld1
fadd st(1), st(0)
fxch st(1)
fstp dword [0x423a54]
fld dword [0x423a54]
fsub qword [0x41f7f0]
fsub qword [0x424b80]
fcomp qword [0x41f7e8]
fnstsw ax
fld qword [0x424b80]
fadd st(1)
fstp qword [0x424b80]
test ah, 0x44
jp 0x4074a6
mov dx, word [0x425f04]
movsx eax, dx
add eax, 0xec5c649
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fld dword [esp + 0x24]
fadd qword [0x41f7e0]
fsub qword [0x41f7d8]
fcompp
fnstsw ax
fadd dword [esp + 0x24]
fstp dword [esp + 0x24]
test ah, 1
jne 0x4074a8
mov ecx, dword [0x423660]
jmp 0x4074a8
fstp st(0)
lea edx, [esp + 0x54]
push esi
push edx
mov eax, edx
push eax
call fcn.00407080
add esp, 0xc
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x407a5f
dec dword [esp + 0x20]
mov cx, word [0x4236b4]
mov edx, dword [esp + 0x20]
movsx eax, cx
sub eax, edx
sub eax, 0x48b956a2
mov word [esp + 0x28], ax
test ebp, ebp
je 0x4074fc
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
mov dword [ebp], eax
mov dword [ebp + 4], ecx
mov dword [ebp + 8], edx
mov edi, dword [esp + 0x398]
push esi
push edi
call fcn.00401380
add esp, 8
test eax, eax
jl 0x407525
push esi
lea eax, [esp + 0xa0]
push edi
push eax
call fcn.00407080
add esp, 0xc
jmp 0x407536
lea ecx, [esp + 0x9c]
push edi
push ecx
call fcn.00403d20
add esp, 8
mov eax, dword [esp + 0x34]
lea edx, [esp + 0x48]
push edx
push eax
push esi
lea ecx, [esp + 0x60]
push ecx
lea edx, [esp + 0xac]
push edx
call fcn.00402370
lea eax, [esp + 0x68]
push eax
push ebx
call fcn.00403d20
add esp, 0x1c
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x407a5f
mov ebp, 1
add dword [esp + 0x3c], ebp
mov cx, word [esp + 0x3c]
movsx edx, cx
mov ecx, dword [esp + 0x34]
lea eax, [esp + 0x48]
push eax
mov dword [esp + 0x14], edx
push ecx
push esi
fild dword [esp + 0x1c]
push ebx
fstp dword [0x425fb8]
call fcn.00402a50
mov eax, dword [esp + 0x28]
add esp, 0x10
cmp eax, ebp
jle 0x407794
fld dword [esp + 0x24]
lea ebx, [eax - 1]
fsub qword [0x41f358]
mov ecx, ebx
shl ebp, cl
fstp dword [esp + 0x24]
fld dword [esp + 0x24]
fsub qword [0x41f7d0]
lea edi, [ebp + ebp*2]
lea edi, [esp + edi*4 + 0x90]
fadd dword [esp + 0x2c]
mov edx, dword [esi + 4]
inc edx
push edx
push edi
fstp dword [esp + 0x34]
call fcn.00401ba0
add esp, 8
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x407a58
lea eax, [esp + 0x9c]
push eax
push edi
call fcn.00403d20
add esp, 8
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x407a58
test ebx, ebx
jle 0x40763a
lea esp, [esp]
mov edx, dword [esp + 0x34]
lea ecx, [esp + 0x48]
push ecx
push edx
push esi
push edi
push edi
call fcn.00402370
add esp, 0x14
sub ebx, 1
jne 0x407620
movzx eax, word [esp + 0x3c]
movsx ecx, ax
movzx eax, word [esp + 0x14]
mov edx, 0x93f0fce6
sub edx, ecx
movsx ecx, ax
mov dword [esp + 0x10], edx
add ecx, 0x6e9dabe6
mov ebx, 1
fild dword [esp + 0x10]
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
fadd qword [esp + 0x40]
add dword [esp + 0x3c], ebx
fcompp
fnstsw ax
test ah, 0x41
jne 0x4076a5
fld qword [0x4237c8]
mov dx, word [esp + 0x14]
fsub qword [0x41f7c8]
movsx eax, dx
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
faddp st(1)
fadd dword [esp + 0x2c]
fstp dword [esp + 0x2c]
jmp 0x4076d8
fld qword [0x425e08]
fsubr qword [0x41f7c0]
fcomp qword [0x41f7b8]
fnstsw ax
test ah, 0x44
jnp 0x4076ca
add dword [0x425750], 0x651284ba
jmp 0x4076d8
fld dword [esp + 0x24]
fmul qword [0x41f7b0]
fstp dword [esp + 0x24]
mov ecx, dword [esp + 0x18]
shl ebx, cl
inc ebp
cmp ebp, ebx
jge 0x407753
lea edi, [ebp + ebp*2]
lea edi, [esp + edi*4 + 0x90]
mov edi, edi
mov ecx, dword [esi + 4]
inc ecx
push ecx
push edi
call fcn.00401ba0
add esp, 8
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x407a58
fld qword [0x41f7a8]
lea edx, [edi - 0xc]
push edx
fstp qword [0x423640]
push edi
call fcn.00403d20
add esp, 8
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x407a58
mov ecx, dword [esp + 0x34]
lea eax, [esp + 0x48]
push eax
push ecx
push esi
lea edx, [esp + 0xa8]
push edx
push edi
call fcn.00402370
inc ebp
add esp, 0x14
add edi, 0xc
cmp ebp, ebx
jl 0x4076f0
mov ax, word [0x423a38]
mov ebx, dword [esp + 0x394]
movsx ecx, ax
add ecx, 0x1276771
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
fld dword [esp + 0x2c]
fucompp
fnstsw ax
test ah, 0x44
jp 0x407794
mov dx, word [str.:Jxku_]
movzx ecx, word [esp + 0x14]
movsx eax, dx
add ecx, eax
mov word [esp + 0x14], cx
fld qword [0x423848]
mov edx, dword [esp + 0x39c]
fsub qword [0x41f7a0]
mov eax, dword [edx + 4]
xor ebp, ebp
xor edi, edi
fstp qword [0x423848]
mov dword [esp + 0x64], eax
mov dword [esp + 0x38], ebp
mov dword [esp + 0x10], edi
cmp dword [esp + 0x38], 0
mov cx, word [esp + 0x14]
movsx edx, cx
mov dword [esp + 0x30], edx
fild dword [esp + 0x30]
fadd qword [esp + 0x6c]
fadd dword [esp + 0x24]
fstp dword [esp + 0x24]
fld qword [esp + 0x6c]
fadd qword [0x41f358]
fstp qword [esp + 0x6c]
jne 0x407840
movzx eax, word [esp + 0x28]
add eax, 0x68736dd0
mov word [esp + 0x28], ax
mov eax, dword [esp + 0x64]
mov ecx, eax
dec eax
mov dword [esp + 0x64], eax
test ecx, ecx
je 0x4079b2
fld dword [0x425fb0]
mov dx, word [0x425990]
movsx eax, dx
mov ecx, 0xb4f53bf
sub ecx, eax
mov dword [esp + 0x30], ecx
mov dword [esp + 0x38], 0x20
fisub dword [esp + 0x30]
fstp dword [0x425fb0]
mov edx, dword [esp + 0x39c]
mov eax, dword [edx + 8]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x64]
mov edx, dword [eax + edx*4]
dec ecx
shr edx, cl
mov dword [esp + 0x38], ecx
and edx, 1
jne 0x40789a
mov eax, dword [esp + 0x10]
test eax, eax
je 0x4077c0
cmp eax, 1
jne 0x40789a
mov ecx, dword [esp + 0x34]
lea eax, [esp + 0x48]
push eax
push ecx
push esi
push ebx
push ebx
call fcn.00402370
fld qword [esp + 0x54]
fmul qword [0x41f798]
add esp, 0x14
fstp qword [esp + 0x40]
jmp 0x4077c0
mov ax, word [esp + 0x14]
movsx ecx, ax
mov eax, dword [esp + 0x20]
dec dword [esp + 0x20]
cmp ecx, eax
mov dword [esp + 0x10], 2
jg 0x4078f5
fld qword [esp + 0x40]
fsub qword [esp + 0x6c]
fcomp qword [0x41f790]
fnstsw ax
test ah, 0x44
jp 0x4078db
mov cx, word [esp + 0x14]
mov ax, word [esp + 0x60]
dec dword [esp + 0x60]
jmp 0x4078f5
mov cx, word [esp + 0x28]
movsx eax, cx
mov ecx, dword [0x425e90]
lea eax, [eax + ecx + 0x1472c533]
mov dword [0x425e90], eax
mov eax, dword [esp + 0x18]
inc ebp
mov ecx, eax
sub ecx, ebp
shl edx, cl
or edi, edx
cmp ebp, eax
jne 0x40798d
dec dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
add ecx, dword [esp + 0x20]
mov dword [esp + 0x30], ecx
fild dword [esp + 0x30]
fadd dword [0x42313c]
mov ebp, dword [esp + 0x34]
fstp dword [0x42313c]
test eax, eax
jle 0x40794e
mov dword [esp + 0x10], eax
lea edx, [esp + 0x48]
push edx
push ebp
push esi
push ebx
push ebx
call fcn.00402370
add esp, 0x14
sub dword [esp + 0x10], 1
jne 0x407936
lea eax, [esp + 0x48]
push eax
push ebp
lea ecx, [edi + edi*2]
push esi
lea edx, [esp + ecx*4 + 0x9c]
push edx
push ebx
call fcn.00402370
mov ecx, dword [0x425750]
sub ecx, 0x3a1b183d
mov eax, 1
mov word [esp + 0x50], cx
add dword [0x425750], eax
add esp, 0x14
xor ebp, ebp
mov dword [esp + 0x10], eax
xor edi, edi
mov dx, word [esp + 0x3c]
movsx eax, dx
mov dword [esp + 0x30], eax
fild dword [esp + 0x30]
fadd qword [0x425a18]
call fcn.0040b510
mov dword [0x423674], eax
jmp 0x4077c0
mov ecx, dword [esp + 0x18]
mov eax, 1
rol eax, cl
mov dword [esp + 0x30], eax
test ebp, ebp
jle 0x407a0e
mov dword [esp + 0x10], ebp
lea esp, [esp]
mov ebp, dword [esp + 0x34]
lea ecx, [esp + 0x48]
push ecx
push ebp
push esi
push ebx
push ebx
call fcn.00402370
add edi, edi
add esp, 0x14
test dword [esp + 0x30], edi
je 0x407a05
lea edx, [esp + 0x48]
push edx
push ebp
push esi
lea eax, [esp + 0xa8]
push eax
push ebx
call fcn.00402370
add esp, 0x14
sub dword [esp + 0x10], 1
jne 0x4079d0
jmp 0x407a12
mov ebp, dword [esp + 0x34]
fldz
lea edx, [esp + 0x48]
push edx
fstp qword [esp + 0x70]
fldz
mov eax, 1
push ebp
fstp dword [esp + 0x70]
mov dword [esp + 0x8c], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x90], eax
push esi
lea eax, [esp + 0x90]
push eax
lea ecx, [esp + 0x78]
push ebx
mov dword [esp + 0xa0], ecx
call fcn.00402370
add esp, 0x14
mov ebp, dword [esp + 0x3a4]
mov esi, dword [esp + 0x18]
lea ecx, [esi - 1]
mov eax, 1
shl eax, cl
mov edx, 1
mov ecx, esi
shl edx, cl
cmp eax, edx
jge 0x407a9b
lea esi, [eax + eax*2]
sub edx, eax
lea esi, [esp + esi*4 + 0x90]
mov edi, edx
push 0
push esi
call fcn.00402890
add esp, 8
add esi, 0xc
sub edi, 1
jne 0x407a88
pop edi
push 0
lea ecx, [esp + 0x48]
lea edx, [esp + 0x9c]
test ebp, ebp
je 0x407ab9
push ecx
push edx
call fcn.00402890
add esp, 0xc
jmp 0x407ac8
lea eax, [esp + 0x54]
push eax
push ecx
push edx
call fcn.00402890
add esp, 0x10
fld qword [esp + 0x3c]
mov eax, dword [esp + 0x18]
fsub qword [0x41f358]
pop esi
pop ebp
pop ebx
fstp qword [esp + 0x30]
fld dword [esp + 0x1c]
fld qword [esp + 0x30]
fsub qword [0x41f788]
fsub qword [0x41f780]
fsubp st(1)
fstp dword [esp + 0x1c]
add esp, 0x380
ret
pop esi
pop ebp
mov eax, 0xfffffffc
pop ebx
add esp, 0x380
ret