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

Disassembly:
sub esp, 0x4c
mov eax, dword [esp + 0x54]
push ebp
mov ebp, dword [esp + 0x54]
push esi
mov esi, dword [eax + 0x30]
push edi
mov edi, dword [esp + 0x70]
mov edx, 2
sub edx, dword [edi + 0x19e4]
mov edi, dword [edi + 0x538]
xor ecx, ecx
mov dword [esp + 0x48], edx
mov edx, dword [eax]
sub esi, 1
cmp dword [esp + 0x74], 2
mov dword [esp + 0x20], ecx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x54], edx
mov dword [esp + 0x4c], esi
mov dword [esp + 0x3c], edi
jne 0x45f1c6
mov ecx, dword [esp + 0x78]
mov dword [ecx], 0
xor ecx, ecx
test edx, edx
mov dword [esp + 0x38], ecx
jle 0x45f8b2
fldz
fld dword [0x489614]
fld1
fld dword [0x4a88f8]
jmp 0x45f1f6
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x4c]
mov edi, dword [esp + 0x3c]
mov edx, dword [eax + ecx*4 + 4]
imul edx, edi
mov dword [esp + 0x10], edx
mov edx, dword [eax + ecx*4 + 8]
mov eax, dword [eax + ecx*4 + 0x1c]
imul edx, edi
cmp ecx, esi
mov edi, dword [esp + 0x6c]
mov dword [esp + 0x30], eax
mov eax, dword [edi + eax*4 + 4]
mov dword [esp + 0xc], edx
mov dword [esp + 0x34], eax
jne 0x45f22c
sub edx, dword [esp + 0x3c]
mov dword [esp + 0xc], edx
test eax, eax
mov dword [esp + 0x2c], 0
jle 0x45f82e
mov eax, dword [esp + 0xc]
fild dword [esp + 0x48]
sub eax, dword [esp + 0x10]
fstp dword [esp + 0x50]
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x30]
fld st(3)
mov edx, dword [esp + 0x6c]
fld st(4)
mov eax, dword [edx + ecx*4 + 0x18]
mov esi, dword [esp + 0x2c]
movzx edi, byte [eax + esi]
add eax, esi
cmp ecx, 1
movzx eax, byte [eax + 1]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x14], eax
jne 0x45f288
test esi, esi
jne 0x45f29c
mov ecx, eax
sub ecx, edi
cmp ecx, 1
jmp 0x45f293
test esi, esi
jne 0x45f29c
mov ecx, eax
sub ecx, edi
cmp ecx, 2
jle 0x45f29c
add edi, 1
mov dword [esp + 0x1c], edi
mov ecx, dword [esp + 0x70]
cmp dword [ecx + 0x18c8], 0
mov dword [esp + 0x24], 0
je 0x45f696
cmp dword [esp + 0x30], 1
jne 0x45f2ce
mov edx, ecx
cmp byte [esi + edx + 0x18cc], 0
je 0x45f696
jmp 0x45f335
mov eax, dword [edx + 0x18]
add eax, esi
mov esi, dword [edx + 0x1c]
mov dl, byte [esi]
mov dword [esp + 0x40], eax
mov al, byte [eax]
xor ecx, ecx
cmp dl, al
mov dword [esp + 0x28], ecx
jae 0x45f2f0
add ecx, 1
cmp byte [esi + ecx], al
jb 0x45f2e8
mov eax, dword [esp + 0x40]
mov al, byte [eax + 1]
cmp dl, al
mov edx, dword [esp + 0x28]
jae 0x45f307
add edx, 1
cmp byte [esi + edx], al
jb 0x45f2ff
cmp ecx, edx
jge 0x45f692
mov esi, dword [esp + 0x70]
mov eax, dword [esp + 0x24]
cmp byte [esi + ecx + 0x18cc], 0
je 0x45f326
mov eax, 1
add ecx, 1
cmp ecx, edx
jl 0x45f317
test eax, eax
je 0x45f692
mov eax, dword [esp + 0x18]
cmp eax, 4
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x40], eax
jl 0x45f394
lea esi, [ecx + 2]
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
mov edx, dword [ebp + eax*4]
lea eax, [esi - 1]
fadd dword [edx + edi*4]
cdq
sub eax, edx
sar eax, 1
mov eax, dword [ebp + eax*4]
add ecx, 4
fadd dword [eax + edi*4]
mov eax, esi
cdq
sub eax, edx
sar eax, 1
mov edx, dword [ebp + eax*4]
lea eax, [esi + 1]
add esi, 4
fadd dword [edx + edi*4]
cdq
sub eax, edx
sar eax, 1
mov eax, dword [ebp + eax*4]
fadd dword [eax + edi*4]
mov eax, dword [esp + 0xc]
add eax, 0xfffffffd
cmp ecx, eax
jl 0x45f349
cmp ecx, dword [esp + 0xc]
jge 0x45f3b3
mov esi, dword [esp + 0xc]
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
mov edx, dword [ebp + eax*4]
add ecx, 1
cmp ecx, esi
fadd dword [edx + edi*4]
jl 0x45f39e
lea eax, [edi + 1]
cmp eax, dword [esp + 0x14]
mov dword [esp + 0x28], eax
jge 0x45f46e
mov ecx, eax
mov eax, dword [esp + 0x14]
sub eax, ecx
lea esi, [ecx*4]
mov dword [esp + 0x24], eax
cmp dword [esp + 0x18], 4
fld st(5)
mov ecx, dword [esp + 0x10]
jl 0x45f434
mov edi, ecx
add edi, 2
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
mov eax, dword [ebp + eax*4]
add ecx, 4
fadd dword [eax + esi]
lea eax, [edi - 1]
cdq
sub eax, edx
sar eax, 1
mov edx, dword [ebp + eax*4]
mov eax, edi
fadd dword [edx + esi]
cdq
sub eax, edx
sar eax, 1
mov eax, dword [ebp + eax*4]
fadd dword [eax + esi]
lea eax, [edi + 1]
cdq
sub eax, edx
sar eax, 1
mov edx, dword [ebp + eax*4]
mov eax, dword [esp + 0xc]
fadd dword [edx + esi]
add eax, 0xfffffffd
add edi, 4
cmp ecx, eax
jl 0x45f3e9
mov edi, dword [esp + 0xc]
cmp ecx, edi
jge 0x45f451
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
mov eax, dword [ebp + eax*4]
add ecx, 1
cmp ecx, edi
fadd dword [eax + esi]
jl 0x45f43c
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x45f45e
fstp st(1)
jmp 0x45f460
fstp st(0)
add esi, 4
sub dword [esp + 0x24], 1
jne 0x45f3d7
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x1c]
sub eax, esi
cmp eax, 2
mov dword [esp + 0x24], eax
jle 0x45f489
fmul dword [0x4a88f4]
jmp 0x45f490
cmp eax, 1
jle 0x45f490
fmul st(4)
cmp dword [esp + 0x74], 2
jne 0x45f5f5
cmp dword [esp + 0x18], 4
mov ecx, dword [esp + 0x10]
jl 0x45f4f6
lea edi, [ecx + 2]
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
mov edx, dword [ebx + eax*4]
lea eax, [edi - 1]
fld dword [edx + esi*4]
cdq
sub eax, edx
faddp st(2)
sar eax, 1
fxch st(1)
mov eax, dword [ebx + eax*4]
add ecx, 4
fadd dword [eax + esi*4]
mov eax, edi
cdq
sub eax, edx
sar eax, 1
mov edx, dword [ebx + eax*4]
lea eax, [edi + 1]
add edi, 4
fadd dword [edx + esi*4]
cdq
sub eax, edx
sar eax, 1
mov eax, dword [ebx + eax*4]
fadd dword [eax + esi*4]
mov eax, dword [esp + 0xc]
add eax, 0xfffffffd
fxch st(1)
cmp ecx, eax
jl 0x45f4a9
cmp ecx, dword [esp + 0xc]
jge 0x45f516
mov edi, dword [esp + 0xc]
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
mov edx, dword [ebx + eax*4]
add ecx, 1
cmp ecx, edi
fld dword [edx + esi*4]
faddp st(2)
jl 0x45f500
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x28], eax
jge 0x45f5c7
mov ecx, dword [esp + 0x28]
sub eax, ecx
lea esi, [ecx*4]
mov dword [esp + 0x28], eax
cmp dword [esp + 0x18], 4
fld st(5)
mov ecx, dword [esp + 0x10]
jl 0x45f58e
mov edi, ecx
add edi, 2
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
mov edx, dword [ebx + eax*4]
lea eax, [edi - 1]
fadd dword [edx + esi]
cdq
sub eax, edx
sar eax, 1
mov eax, dword [ebx + eax*4]
add ecx, 4
fadd dword [eax + esi]
mov eax, edi
cdq
sub eax, edx
sar eax, 1
mov edx, dword [ebx + eax*4]
lea eax, [edi + 1]
add edi, 4
fadd dword [edx + esi]
cdq
sub eax, edx
sar eax, 1
mov eax, dword [ebx + eax*4]
fadd dword [eax + esi]
mov eax, dword [esp + 0xc]
add eax, 0xfffffffd
cmp ecx, eax
jl 0x45f547
mov edi, dword [esp + 0xc]
cmp ecx, edi
jge 0x45f5aa
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
mov edx, dword [ebx + eax*4]
add ecx, 1
cmp ecx, edi
fadd dword [edx + esi]
jl 0x45f596
fcom st(2)
fnstsw ax
test ah, 0x41
jne 0x45f5b7
fstp st(2)
jmp 0x45f5b9
fstp st(0)
add esi, 4
sub dword [esp + 0x28], 1
jne 0x45f535
mov eax, dword [esp + 0x24]
fxch st(1)
cmp eax, 2
jle 0x45f5da
fmul dword [0x4a88f4]
jmp 0x45f5e1
cmp eax, 1
jle 0x45f5e1
fmul st(4)
fld st(1)
fxch st(2)
fadd st(1)
fmul st(5)
fxch st(2)
fadd st(4)
fxch st(1)
fadd st(4)
fdivp st(1)
fxch st(1)
mov eax, dword [esp + 0x40]
shl eax, 6
mov dword [esp + 0x40], eax
fidiv dword [esp + 0x40]
fadd dword [0x4a88f0]
fldln2
fxch st(1)
fyl2x
fmul st(2)
fcom st(5)
fnstsw ax
test ah, 0x41
je 0x45f61f
fstp st(0)
fld st(4)
fld dword [esp + 0x50]
fld st(0)
fmulp st(2)
fxch st(1)
fadd st(5)
call fcn.0046d390
cmp dword [esp + 0x74], 2
mov ecx, dword [esp + 0x64]
mov esi, dword [esp + 0x20]
mov dword [ecx + esi*4], eax
jne 0x45f80e
fldln2
mov eax, dword [esp + 0x70]
fxch st(1)
mov ecx, dword [eax + 0x19e4]
fxch st(2)
lea edx, [esp + 0x44]
fyl2x
push edx
push ecx
fmul st(2)
fmulp st(1)
call fcn.0046d390
mov edx, eax
call fcn.0045eea0
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0x80]
mov dword [edx + esi*4], eax
mov eax, dword [esp + 0x4c]
add esp, 8
cmp eax, dword [ecx]
jle 0x45f812
mov dword [ecx], eax
jmp 0x45f812
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ecx, eax
sub ecx, edi
imul edx, ecx
cmp edi, eax
mov dword [esp + 0x24], ecx
mov dword [esp + 0x40], edx
jge 0x45f745
mov esi, dword [esp + 0x1c]
add esi, esi
mov eax, ecx
add esi, esi
mov dword [esp + 0x28], eax
cmp dword [esp + 0x18], 4
mov ecx, dword [esp + 0x10]
jl 0x45f71a
mov edi, ecx
add edi, 2
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
mov edx, dword [ebp + eax*4]
lea eax, [edi - 1]
fadd dword [edx + esi]
cdq
sub eax, edx
sar eax, 1
mov eax, dword [ebp + eax*4]
add ecx, 4
fadd dword [eax + esi]
mov eax, edi
cdq
sub eax, edx
sar eax, 1
mov edx, dword [ebp + eax*4]
lea eax, [edi + 1]
add edi, 4
fadd dword [edx + esi]
cdq
sub eax, edx
sar eax, 1
mov eax, dword [ebp + eax*4]
fadd dword [eax + esi]
mov eax, dword [esp + 0xc]
add eax, 0xfffffffd
cmp ecx, eax
jl 0x45f6cf
mov edi, dword [esp + 0xc]
cmp ecx, edi
jge 0x45f737
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
mov edx, dword [ebp + eax*4]
add ecx, 1
cmp ecx, edi
fadd dword [edx + esi]
jl 0x45f722
add esi, 4
sub dword [esp + 0x28], 1
jne 0x45f6bf
cmp dword [esp + 0x74], 2
jne 0x45f5f5
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x1c], eax
jge 0x45f7f7
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
add esi, esi
add esi, esi
mov dword [esp + 0x28], ecx
cmp dword [esp + 0x18], 4
mov ecx, dword [esp + 0x10]
jl 0x45f7cb
mov edi, ecx
add edi, 2
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
mov edx, dword [ebx + eax*4]
lea eax, [edi - 1]
fld dword [edx + esi]
cdq
sub eax, edx
faddp st(2)
sar eax, 1
fxch st(1)
mov eax, dword [ebx + eax*4]
add ecx, 4
fadd dword [eax + esi]
mov eax, edi
cdq
sub eax, edx
sar eax, 1
mov edx, dword [ebx + eax*4]
lea eax, [edi + 1]
add edi, 4
fadd dword [edx + esi]
cdq
sub eax, edx
sar eax, 1
mov eax, dword [ebx + eax*4]
fadd dword [eax + esi]
mov eax, dword [esp + 0xc]
add eax, 0xfffffffd
fxch st(1)
cmp ecx, eax
jl 0x45f77e
mov edi, dword [esp + 0xc]
cmp ecx, edi
jge 0x45f7e9
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
mov edx, dword [ebx + eax*4]
add ecx, 1
cmp ecx, edi
fld dword [edx + esi]
faddp st(2)
jl 0x45f7d3
add esi, 4
sub dword [esp + 0x28], 1
jne 0x45f76e
fld st(0)
fxch st(1)
fadd st(2)
fmul st(5)
fxch st(1)
fadd st(4)
fxch st(2)
fadd st(4)
fdivp st(2)
jmp 0x45f5f5
fstp st(1)
fstp st(0)
mov eax, dword [esp + 0x2c]
add eax, 1
add esi, 1
cmp eax, dword [esp + 0x34]
mov dword [esp + 0x20], esi
mov dword [esp + 0x2c], eax
jl 0x45f250
mov eax, dword [esp + 0x6c]
cmp dword [eax + 0x2c], 0
je 0x45f895
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x34]
sub ecx, edx
xor edi, edi
test edx, edx
mov dword [esp + 0x20], ecx
jle 0x45f895
mov esi, dword [esp + 0x64]
cmp dword [esp + 0x30], 1
jne 0x45f87a
mov eax, dword [esp + 0x70]
mov al, byte [edi + eax + 0x4e4]
test al, al
je 0x45f87a
movsx eax, al
cdq
xor eax, edx
sub eax, edx
imul eax, dword [esp + 0x48]
sub dword [esi + ecx*4], eax
mov edx, dword [esp + 0x34]
cmp dword [esi + ecx*4], 0
jge 0x45f887
mov dword [esi + ecx*4], 0
add edi, 1
add ecx, 1
cmp edi, edx
jl 0x45f850
mov dword [esp + 0x20], ecx
mov eax, dword [esp + 0x38]
add eax, 1
cmp eax, dword [esp + 0x54]
mov dword [esp + 0x38], eax
jl 0x45f1e6
fstp st(3)
fstp st(1)
fstp st(0)
fstp st(0)
pop edi
pop esi
pop ebp
add esp, 0x4c
ret