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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push esi
push edi
push ebx
sub esp, 0xcc
fld dword [0x46a72c]
mov eax, dword [ebp + 8]
fild dword [eax + 0x40]
fmul st(1), st(0)
mov ecx, dword [eax + 0x4c]
mov edx, dword [eax + 0x14844]
mov dword [esp + 0xc4], edx
mov esi, dword [eax + 0x48]
lea ebx, [ecx + ecx*8]
mov edi, dword [eax + 0x3c]
shl ebx, 6
fstp dword [esp + 8]
call fcn.0040c080
cmp edi, eax
jl 0x418653
fld dword [esp + 8]
fmul dword [0x46a73c]
call fcn.0040c080
cmp edi, eax
jg 0x418653
mov eax, dword [ebp + 0x14]
cmp ebx, eax
mov dword [esp + 0xc8], esi
jl 0x4185f9
mov ebx, eax
xor edi, edi
mov dword [esp + 0xac], ebx
lea eax, [ebx*4]
mov esi, dword [ebp + 0xc]
mov ebx, eax
mov edx, dword [esi + edi*4]
mov ecx, dword [esp + 0xc4]
push ebx
lea ecx, [edx + ecx*4]
mov edx, dword [ebp + 0x10]
push dword [edx + edi*4]
push ecx
call fcn.0040c050
add esp, 0xc
inc edi
cmp edi, dword [esp + 0xc8]
jl 0x41860e
mov eax, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x18]
mov ebx, dword [esp + 0xac]
mov dword [eax], ebx
mov dword [edx], ebx
add esp, 0xcc
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
fld qword [0x46a6d0]
fstp st(0)
fldz
mov dword [esp + 0xc8], esi
xor edi, edi
mov dword [esp + 0xac], ebx
fstp dword [esp + 0xb4]
fld1
fstp dword [esp + 0xb0]
fld dword [0x46a734]
fstp st(0)
fld qword [0x46a6e8]
fstp st(0)
fld qword [0x46a6f0]
fstp st(0)
fld qword [0x46a6f8]
fstp st(0)
fld dword [0x46a738]
fstp st(0)
mov esi, dword [ebp + 8]
fild dword [esi + 0x3c]
fild dword [esi + 0x40]
fdivp st(1)
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0xc4]
fstp qword [esp + 0x20]
mov edx, dword [eax + edi*4]
mov eax, dword [ebp + 0x10]
lea ebx, [edx + ecx*4]
mov ecx, dword [esi + 0x3c]
mov edx, dword [eax + edi*4]
test ecx, ecx
mov dword [esp + 0x84], ebx
mov dword [esp + 0x74], edx
mov ebx, dword [esi + 0x40]
je 0x4186ef
mov eax, ebx
cdq
idiv ecx
mov eax, ecx
call fcn.00418e00
mov ecx, eax
jmp 0x4186f1
mov ecx, ebx
fld qword [0x46a6d0]
mov eax, ebx
fld qword [esp + 0x20]
cdq
fadd st(1), st(0)
idiv ecx
fld qword [0x46a6d8]
cmp eax, 0x140
jl 0x418714
mov eax, 0x140
mov dword [esp + 0x38], eax
xor ecx, ecx
fxch st(2)
fld st(0)
frndint
fcom st(1)
fnstsw ax
sahf
fstp st(1)
jbe 0x41872d
fld1
fsubp st(1)
fsubp st(1)
fabs
fxch st(1)
fcompp
fnstsw ax
sahf
seta cl
mov dword [esp + 0x90], ecx
fild dword [esp + 0x90]
fadd dword [0x46a730]
call fcn.0040c080
mov dword [esp + 0xc0], eax
cmp dword [esi + 0xc], 0
lea ebx, [eax + 1]
mov dword [esp + 0x40], ebx
je 0x41876f
xor ecx, ecx
jmp 0x418a3c
push 4
push dword [esp + 0x44]
call fcn.0044e712
mov dword [esi + 0x9140], eax
push 4
push dword [esp + 0x4c]
call fcn.0044e712
add esp, 0x10
mov dword [esi + 0x9144], eax
mov eax, dword [esp + 0x38]
add eax, eax
mov dword [esp + 0x44], eax
js 0x4187cd
mov dword [esp + 0x8c], edi
xor ebx, ebx
mov edi, dword [esp + 0x40]
push 4
push edi
call fcn.0044e712
add esp, 8
mov dword [esi + ebx*4 + 0x9148], eax
inc ebx
cmp ebx, dword [esp + 0x44]
jle 0x4187ad
mov edi, dword [esp + 0x8c]
fld dword [esp + 0xb4]
xor ecx, ecx
fst qword [esi + 0x9130]
fstp qword [esi + 0x9138]
cmp dword [esp + 0x44], 0
js 0x418a35
fld dword [esp + 0xb0]
mov ebx, ecx
fld st(0)
fdiv qword [esp + 0x20]
mov edx, dword [esp + 0x38]
fcom st(1)
fnstsw ax
fld qword [0x46a6e0]
mov dword [esp + 0x90], edx
sahf
mov eax, dword [esp + 0xc0]
fxch st(2)
jbe 0x41881f
fst st(1)
fstp st(0)
fmul st(1)
neg edx
fild dword [esp + 0x90]
mov dword [esp + 0x90], eax
fadd st(0)
fild dword [esp + 0x90]
fld st(0)
fmul st(3)
mov dword [esp + 0x8c], edi
fstp dword [esp + 0x88]
fxch st(2)
fdiv st(3)
fstp qword [esp + 0x48]
fxch st(1)
fstp dword [esp + 0xb8]
fild dword [esp + 0x90]
fmulp st(2)
mov edi, dword [esp + 0x44]
fxch st(1)
fstp qword [esp + 0x50]
fld dword [esp + 0xb4]
fxch st(1)
mov dword [esp + 0x90], edx
fld st(1)
fild dword [esp + 0x90]
fdiv st(2)
test eax, eax
jl 0x418de4
mov dword [esp + 0x34], edx
xor esi, esi
fxch st(1)
fstp dword [esp + 0xbc]
fstp qword [esp + 0x98]
fstp qword [esp + 8]
mov edi, dword [ebp + 8]
fstp st(0)
fld dword [esp + 0xb4]
fld dword [esp + 0xb0]
fld qword [0x46a6e8]
mov dword [esp + 0x90], esi
fild dword [esp + 0x90]
fsub qword [esp + 0x98]
fdiv dword [esp + 0xb8]
fcom st(3)
fnstsw ax
sahf
fxch st(3)
jae 0x4188f1
jp 0x4188f1
fst st(3)
fstp st(0)
fxch st(2)
fcom st(1)
fnstsw ax
sahf
fxch st(1)
jbe 0x418900
fst st(1)
fstp st(0)
fld st(0)
fsub dword [0x46a734]
fst qword [esp + 0xa0]
fabs
fcomp st(2)
fnstsw ax
fxch st(1)
fstp st(0)
sahf
jae 0x41892b
jp 0x41892b
fstp st(0)
fld qword [esp + 0x48]
jmp 0x4189b2
fld st(0)
fadd st(1)
fmul qword [0x46a6e0]
fstp qword [esp]
fstp qword [esp + 0x60]
call fcn.0043dd60
fld qword [esp + 0x60]
fmul dword [0x46a738]
fmul qword [0x46a6e0]
fstp qword [esp]
fstp qword [esp + 0x68]
call fcn.0043dd60
fld qword [esp + 0x68]
fxch st(1)
fstp qword [esp + 0x58]
fld dword [esp + 0x88]
fmul qword [esp + 0xa0]
fstp qword [esp]
fstp qword [esp + 0x68]
call fcn.0043de60
fld qword [esp + 0x68]
fld qword [esp + 0x58]
fld qword [esp + 0xa0]
fmul qword [esp + 0x50]
fxch st(2)
fmul qword [0x46a6d0]
fxch st(1)
fmul qword [0x46a6f8]
fxch st(1)
fsubr qword [0x46a6f0]
faddp st(1)
fmulp st(2)
fdivp st(1)
fld dword [esp + 0xbc]
mov eax, dword [edi + ebx*4 + 0x9148]
fadd st(1)
fstp dword [esp + 0xbc]
fstp dword [eax + esi*4]
inc esi
cmp esi, dword [esp + 0xc0]
jle 0x4188b4
fld dword [esp + 0xbc]
xor ecx, ecx
fld qword [esp + 8]
xor esi, esi
fld dword [esp + 0xb4]
mov eax, dword [esp + 0xc0]
mov edi, dword [ebp + 8]
mov edx, dword [edi + ebx*4 + 0x9148]
inc ecx
fld dword [edx + esi]
fdiv st(3)
fstp dword [edx + esi]
add esi, 4
cmp ecx, eax
jle 0x4189fa
fstp st(2)
mov edx, dword [esp + 0x34]
mov edi, dword [esp + 0x44]
inc ebx
inc edx
cmp ebx, edi
jle 0x41887b
fstp st(0)
mov edi, dword [esp + 0x8c]
mov ecx, ebx
mov esi, dword [ebp + 8]
fstp st(0)
mov dword [esi + 0xc], 1
mov edx, dword [esi + edi*4 + 0x9140]
xor ebx, ebx
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0xc0]
mov eax, edx
shr eax, 0x1f
add eax, edx
sar eax, 1
sub edx, eax
mov dword [esp + 0x78], eax
mov dword [esp + 0xa8], edx
cmp dword [esp + 0xac], 0
jle 0x418dd6
mov eax, dword [esp + 0xc0]
and eax, 0x80000001
jge 0x418a89
sub eax, 1
or eax, 0xfffffffe
inc eax
fld qword [esp + 0x20]
fld dword [esp + 0xb4]
fld qword [0x46a6d0]
mov dword [esp + 0x90], eax
fild dword [esp + 0x90]
fmul st(1)
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0xc0]
mov eax, dword [esp + 0x38]
mov dword [esp + 0x90], eax
fild dword [esp + 0x90]
mov dword [esp + 0x8c], edi
lea eax, [edx + ecx*4]
mov dword [esp + 0x70], eax
mov dword [esp + 0x90], ebx
fild dword [esp + 0x90]
mov edx, dword [esp + 0x8c]
fmul st(5)
fld qword [esi + edx*8 + 0x9130]
fld st(0)
fsubr st(2)
fnstcw word [esp + 0x28]
movzx eax, word [esp + 0x28]
and eax, 0xfffff3ff
or eax, 0x400
mov dword [esp + 0x30], eax
fldcw word [esp + 0x30]
fistp dword [esp + 0x90]
fldcw word [esp + 0x28]
mov edx, dword [esp + 0x90]
mov eax, dword [esp + 0xa8]
lea ecx, [eax + edx]
cmp ecx, dword [ebp + 0x14]
jge 0x418dbe
mov dword [esp + 0x90], edx
fxch st(1)
fsub st(3)
cmp dword [esp + 0xc0], 0
fsubrp st(1)
fild dword [esp + 0x90]
fsubp st(1)
fld st(4)
jl 0x418ded
sub edx, dword [esp + 0x78]
xor edi, edi
mov dword [esp + 0x80], ecx
fxch st(1)
fadd st(0)
fmul st(2)
mov dword [esp + 0x7c], ebx
fadd st(2)
fadd st(4)
fnstcw word [esp + 0x28]
movzx eax, word [esp + 0x28]
and eax, 0xfffff3ff
or eax, 0x400
mov dword [esp + 0x30], eax
fldcw word [esp + 0x30]
fistp dword [esp + 0x90]
fldcw word [esp + 0x28]
mov eax, dword [esp + 0x90]
mov eax, dword [esi + eax*4 + 0x9148]
mov esi, dword [esp + 0x74]
mov ebx, edx
add ebx, edi
js 0x418bbb
fld dword [esi + ebx*4]
jmp 0x418bc3
mov ecx, dword [esp + 0x70]
fld dword [ecx + ebx*4 + 4]
fmul dword [eax + edi*4]
inc edi
cmp edi, dword [esp + 0xc0]
faddp st(1)
jle 0x418bb0
mov ecx, dword [esp + 0x80]
mov ebx, dword [esp + 0x7c]
mov esi, dword [ebp + 8]
mov eax, dword [esp + 0x84]
fstp dword [eax + ebx*4]
inc ebx
cmp ebx, dword [esp + 0xac]
jl 0x418ad5
fstp st(1)
fstp st(0)
mov dword [esp + 0x90], ebx
fild dword [esp + 0x90]
fmul qword [esp + 0x20]
mov edi, dword [esp + 0x8c]
fstp st(1)
fstp st(1)
fstp st(1)
mov eax, dword [ebp + 0x14]
cmp ecx, eax
mov edx, dword [ebp + 0x18]
jl 0x418c27
mov ecx, eax
mov dword [edx], ecx
mov dword [esp + 0x90], ecx
fild dword [esp + 0x90]
fxch st(1)
fsubr qword [esi + edi*8 + 0x9130]
faddp st(1)
fstp qword [esi + edi*8 + 0x9130]
mov edx, dword [edx]
cmp edx, dword [esp + 0x40]
jl 0x418ca4
cmp dword [esp + 0x40], 0
jle 0x418d6f
mov dword [esp + 0x7c], ebx
xor eax, eax
mov dword [esp + 0x8c], edi
mov ebx, dword [esp + 0x3c]
mov edi, dword [esp + 0x40]
mov ecx, dword [esp + 0x74]
mov esi, dword [ebp + 0x18]
sub edx, dword [esp + 0xc0]
add edx, eax
mov edx, dword [ecx + edx*4 - 4]
mov dword [ebx + eax*4], edx
inc eax
cmp eax, edi
jge 0x418c91
mov edx, dword [esi]
jmp 0x418c78
mov ebx, dword [esp + 0x7c]
mov edi, dword [esp + 0x8c]
mov esi, dword [ebp + 8]
jmp 0x418d6f
mov ecx, dword [esp + 0xc0]
xor eax, eax
sub ecx, edx
inc ecx
test ecx, ecx
jle 0x418cdf
mov dword [esp + 0x8c], edi
mov esi, ecx
mov edi, dword [esp + 0x3c]
mov ecx, dword [ebp + 0x18]
add edx, eax
mov edx, dword [edi + edx*4]
mov dword [edi + eax*4], edx
inc eax
cmp eax, esi
jge 0x418cd5
mov edx, dword [ecx]
jmp 0x418cc4
mov edi, dword [esp + 0x8c]
mov esi, dword [ebp + 8]
cmp eax, dword [esp + 0x40]
jge 0x418d6f
mov edx, dword [esp + 0xc0]
sub edx, eax
mov dword [esp + 0xc0], edx
lea ecx, [edx + 1]
mov dword [esp + 0x10], ecx
cmp ecx, 0x18
jle 0x418d8f
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x8c], edi
mov edi, edx
mov dword [esp + 0x7c], ebx
lea edx, [ecx + eax*4]
mov ecx, dword [esp + 0x74]
sub ecx, edx
lea ebx, [edi*4 + 4]
mov edi, ecx
neg edi
mov dword [esp + 0x14], edx
xor edx, edx
cmp edi, ebx
mov dword [esp + 0x1c], eax
setg dl
xor eax, eax
cmp ecx, ebx
mov dword [esp + 0x18], ebx
setg al
mov ebx, dword [esp + 0x7c]
or edx, eax
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0x8c]
je 0x418d8f
push dword [esp + 0x18]
push dword [esp + 0x78]
push dword [esp + 0x1c]
call fcn.0040c050
add esp, 0xc
inc edi
cmp edi, dword [esp + 0xc8]
jl 0x4186a8
mov eax, dword [ebp + 0x1c]
mov dword [eax], ebx
add esp, 0xcc
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x3c]
xor edx, edx
mov dword [esp + 0x8c], edi
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x74]
lea eax, [ecx + eax*4]
mov ecx, dword [edi + edx*4]
mov dword [eax + edx*4], ecx
inc edx
cmp edx, esi
jb 0x418da7
mov edi, dword [esp + 0x8c]
mov esi, dword [ebp + 8]
jmp 0x418d6f
fstp st(3)
fstp st(5)
fstp st(0)
fstp st(0)
mov edi, dword [esp + 0x8c]
fstp st(0)
fstp st(0)
jmp 0x418c1b
add ecx, dword [esp + 0xa8]
fldz
jmp 0x418c1b
fstp st(1)
fstp st(0)
jmp 0x418a1b
fstp st(1)
jmp 0x418be0