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

Disassembly:
sub esp, 0x80
mov eax, dword [0x608798]
push ebx
push ebp
push esi
mov esi, dword [esp + 0x90]
push edi
or ecx, 0xffffffff
xor edi, edi
mov edx, dword [esi + 4]
mov ebx, eax
test edx, edx
mov dword [esp + 0x20], ecx
jle 0x45b44c
lea ebp, [esi + 8]
mov eax, dword [ebp]
sub esp, 8
fld dword [eax + 0x18]
fstp qword [esp]
call fcn.004b8890
add esp, 8
call fcn.004b78c0
cmp eax, ebx
jge 0x45b42e
mov dword [esp + 0x64], edi
mov ebx, eax
cmp dword [esp + 0x20], eax
jg 0x45b438
mov dword [esp + 0x20], eax
mov eax, dword [esi + 4]
inc edi
add ebp, 4
cmp edi, eax
jl 0x45b40b
mov eax, dword [0x608798]
mov ecx, dword [esp + 0x20]
cmp ebx, eax
jge 0x45bc62
test ecx, ecx
jl 0x45bc62
cmp ecx, eax
jl 0x45b464
mov dword [esp + 0x20], eax
mov eax, ebx
mov ecx, dword [0x6087a4]
imul eax, dword [0x6087a0]
mov ebp, dword [esp + 0x64]
add eax, ecx
mov dword [esp + 0x44], eax
lea eax, [ebx - 1]
mov dword [esp + 0x50], eax
mov dword [esp + 0x4c], eax
mov eax, ebp
mov dword [esp + 0x48], ebx
mov dword [esp + 0x28], ebp
mov dword [esp + 0x24], eax
jmp 0x45b49c
mov eax, dword [esp + 0x24]
cmp ebx, dword [esp + 0x4c]
jle 0x45b562
mov edi, eax
dec eax
mov dword [esp + 0x24], eax
jns 0x45b4b6
add eax, dword [esi + 4]
mov dword [esp + 0x24], eax
mov ecx, dword [esi + eax*4 + 8]
sub esp, 8
fld dword [ecx + 0x18]
fstp qword [esp]
call fcn.004b8890
add esp, 8
call fcn.004b78c0
mov ecx, eax
mov eax, dword [esi + edi*4 + 8]
mov dword [esp + 0x4c], ecx
mov edx, dword [eax + 0x14]
mov dword [esp + 0x2c], edx
mov edx, dword [eax + 0x20]
mov dword [esp + 0x14], edx
mov edx, dword [eax + 0x24]
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], eax
mov eax, ecx
sub eax, ebx
test eax, eax
mov dword [esp + 0x10], eax
jle 0x45b562
mov ecx, dword [esp + 0x24]
fild dword [esp + 0x10]
mov eax, dword [esi + ecx*4 + 8]
fld dword [eax + 0x14]
fxch st(1)
fdivr qword [0x4c56a0]
fld dword [eax + 0x20]
fld dword [eax + 0x24]
fld dword [eax + 0x1c]
fxch st(4)
fsub dword [esp + 0x2c]
fxch st(2)
fsub dword [esp + 0x14]
fxch st(1)
fsub dword [esp + 0x18]
fxch st(4)
fsub dword [esp + 0x1c]
fxch st(2)
fmul st(3)
fxch st(1)
fmul st(3)
fxch st(4)
fmul st(3)
fxch st(2)
fmul st(3)
fxch st(1)
fstp dword [esp + 0x70]
fxch st(3)
fstp dword [esp + 0x74]
fstp dword [esp + 0x78]
fxch st(1)
fstp dword [esp + 0x7c]
fstp st(0)
cmp ebx, dword [esp + 0x50]
jle 0x45b634
mov eax, dword [esi + 4]
mov edi, ebp
inc ebp
cmp ebp, eax
mov dword [esp + 0x28], ebp
jl 0x45b580
sub ebp, eax
mov dword [esp + 0x28], ebp
mov edx, dword [esi + ebp*4 + 8]
sub esp, 8
fld dword [edx + 0x18]
fstp qword [esp]
call fcn.004b8890
add esp, 8
call fcn.004b78c0
mov ecx, eax
mov eax, dword [esi + edi*4 + 8]
mov dword [esp + 0x50], ecx
mov edx, dword [eax + 0x14]
mov dword [esp + 0x30], edx
mov edx, dword [eax + 0x20]
mov dword [esp + 0x34], edx
mov edx, dword [eax + 0x24]
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], eax
mov eax, ecx
sub eax, ebx
test eax, eax
mov dword [esp + 0x10], eax
jle 0x45b634
mov eax, dword [esi + ebp*4 + 8]
fild dword [esp + 0x10]
fld dword [eax + 0x14]
fxch st(1)
fdivr qword [0x4c56a0]
fld dword [eax + 0x20]
fld dword [eax + 0x24]
fld dword [eax + 0x1c]
fxch st(4)
fsub dword [esp + 0x30]
fxch st(2)
fsub dword [esp + 0x34]
fxch st(1)
fsub dword [esp + 0x38]
fxch st(4)
fsub dword [esp + 0x3c]
fxch st(2)
fmul st(3)
fxch st(1)
fmul st(3)
fxch st(4)
fmul st(3)
fxch st(2)
fmul st(3)
fxch st(1)
fstp dword [esp + 0x80]
fxch st(3)
fstp dword [esp + 0x84]
fstp dword [esp + 0x88]
fxch st(1)
fstp dword [esp + 0x8c]
fstp st(0)
test ebx, ebx
jl 0x45bbbf
fld dword [esp + 0x2c]
sub esp, 8
fstp qword [esp]
call fcn.004b8890
add esp, 8
call fcn.004b78c0
fld dword [esp + 0x30]
sub esp, 8
mov edi, eax
mov dword [esp + 0x5c], edi
fstp qword [esp]
call fcn.004b8890
fisub dword [esp + 0x5c]
add esp, 8
call fcn.004b78c0
mov ecx, dword [0x60879c]
mov dword [esp + 0x10], eax
cmp edi, ecx
jge 0x45bbbf
test eax, eax
jle 0x45bbbf
fild dword [esp + 0x10]
fld dword [esp + 0x34]
fld dword [esp + 0x38]
fxch st(2)
fdivr dword [0x4c56a8]
lea edx, [eax + edi]
cmp edx, ecx
fld dword [esp + 0x3c]
fxch st(2)
fsub dword [esp + 0x14]
fxch st(3)
fsub dword [esp + 0x18]
fxch st(2)
fsub dword [esp + 0x1c]
fxch st(1)
fstp dword [esp + 0x40]
fld dword [esp + 0x14]
fld dword [esp + 0x18]
fld dword [esp + 0x1c]
fxch st(5)
fmul dword [esp + 0x40]
fxch st(4)
fmul dword [esp + 0x40]
fxch st(3)
fmul dword [esp + 0x40]
fxch st(4)
fstp dword [esp + 0x58]
fxch st(2)
fstp dword [esp + 0x5c]
fxch st(2)
fstp dword [esp + 0x40]
fxch st(1)
fxch st(2)
jl 0x45b701
sub ecx, edi
mov eax, ecx
mov dword [esp + 0x10], eax
test edi, edi
jge 0x45b74d
fstp st(0)
add eax, edi
fstp st(0)
test eax, eax
fstp st(0)
mov dword [esp + 0x10], eax
jle 0x45bbbf
fild dword [esp + 0x54]
xor edi, edi
fmul dword [0x4c56ac]
fld st(0)
fld st(1)
fxch st(1)
fmul dword [esp + 0x58]
fxch st(1)
fmul dword [esp + 0x5c]
fxch st(1)
fsubr dword [esp + 0x14]
fxch st(2)
fmul dword [esp + 0x40]
fxch st(1)
fsubr dword [esp + 0x18]
fxch st(1)
fsubr dword [esp + 0x1c]
fld st(0)
fdivr qword [0x4c56b0]
mov ecx, dword [esp + 0x44]
lea esi, [ecx + edi]
fld st(3)
fld st(3)
fxch st(1)
fmul st(2)
fxch st(1)
fmul st(2)
fxch st(1)
fsub qword [0x4c56b8]
fxch st(1)
fsub qword [0x4c56b8]
fxch st(1)
fstp dword [esp + 0x68]
mov ecx, dword [esp + 0x68]
fstp dword [esp + 0x6c]
mov edx, dword [esp + 0x6c]
fstp st(0)
fadd dword [esp + 0x40]
fld dword [esp + 0x5c]
fld dword [esp + 0x58]
faddp st(4)
fld st(1)
fdivr qword [0x4c56b0]
fxch st(1)
faddp st(3)
fld st(3)
fxch st(1)
fstp dword [esp + 0x54]
fld st(2)
fxch st(1)
fmul dword [esp + 0x54]
fxch st(1)
fmul dword [esp + 0x54]
fxch st(1)
fsub qword [0x4c56b8]
fxch st(1)
fsub qword [0x4c56b8]
fxch st(1)
fstp dword [esp + 0x60]
mov edi, dword [esp + 0x60]
fstp dword [esp + 0x64]
mov ebp, dword [esp + 0x64]
sub edi, ecx
sub ebp, edx
and ecx, 0x3fff
sar edi, 5
sar ebp, 5
cmp eax, 0x20
jl 0x45bb83
mov eax, edx
mov ebx, ecx
and eax, 0x3f80
add ecx, edi
sar ebx, 7
or eax, ebx
add edx, ebp
mov ebx, ecx
inc esi
mov al, byte [eax + 0x5585a0]
add ecx, edi
mov byte [esi - 1], al
mov eax, edx
and eax, 0x3f80
add edx, ebp
sar ebx, 7
or eax, ebx
mov ebx, ecx
sar ebx, 7
mov al, byte [eax + 0x5585a0]
add ecx, edi
mov byte [esi], al
mov eax, edx
and eax, 0x3f80
inc esi
or eax, ebx
add edx, ebp
mov ebx, ecx
inc esi
mov al, byte [eax + 0x5585a0]
add ecx, edi
mov byte [esi - 1], al
mov eax, edx
and eax, 0x3f80
add edx, ebp
sar ebx, 7
or eax, ebx
mov ebx, ecx
sar ebx, 7
mov al, byte [eax + 0x5585a0]
add ecx, edi
mov byte [esi], al
mov eax, edx
and eax, 0x3f80
inc esi
or eax, ebx
add edx, ebp
mov ebx, ecx
inc esi
mov al, byte [eax + 0x5585a0]
add ecx, edi
mov byte [esi - 1], al
mov eax, edx
and eax, 0x3f80
add edx, ebp
sar ebx, 7
or eax, ebx
mov ebx, ecx
sar ebx, 7
mov al, byte [eax + 0x5585a0]
add ecx, edi
mov byte [esi], al
mov eax, edx
and eax, 0x3f80
inc esi
or eax, ebx
add edx, ebp
mov ebx, ecx
inc esi
mov al, byte [eax + 0x5585a0]
add ecx, edi
mov byte [esi - 1], al
mov eax, edx
and eax, 0x3f80
sar ebx, 7
or eax, ebx
inc esi
add edx, ebp
mov al, byte [eax + 0x5585a0]
mov byte [esi - 1], al
mov eax, edx
mov ebx, ecx
and eax, 0x3f80
sar ebx, 7
or eax, ebx
add ecx, edi
add edx, ebp
mov ebx, ecx
mov al, byte [eax + 0x5585a0]
add ecx, edi
mov byte [esi], al
mov eax, edx
and eax, 0x3f80
inc esi
sar ebx, 7
or eax, ebx
add edx, ebp
mov ebx, ecx
inc esi
mov al, byte [eax + 0x5585a0]
add ecx, edi
mov byte [esi - 1], al
mov eax, edx
and eax, 0x3f80
add edx, ebp
sar ebx, 7
or eax, ebx
mov ebx, ecx
sar ebx, 7
mov al, byte [eax + 0x5585a0]
add ecx, edi
mov byte [esi], al
mov eax, edx
and eax, 0x3f80
inc esi
or eax, ebx
add edx, ebp
mov ebx, ecx
inc esi
mov al, byte [eax + 0x5585a0]
add ecx, edi
mov byte [esi - 1], al
mov eax, edx
and eax, 0x3f80
add edx, ebp
sar ebx, 7
or eax, ebx
mov ebx, ecx
sar ebx, 7
mov al, byte [eax + 0x5585a0]
add ecx, edi
mov byte [esi], al
mov eax, edx
and eax, 0x3f80
inc esi
or eax, ebx
add edx, ebp
mov ebx, ecx
inc esi
mov al, byte [eax + 0x5585a0]
add ecx, edi
mov byte [esi - 1], al
mov eax, edx
and eax, 0x3f80
add edx, ebp
sar ebx, 7
or eax, ebx
mov ebx, ecx
sar ebx, 7
mov al, byte [eax + 0x5585a0]
add ecx, edi
mov byte [esi], al
mov eax, edx
and eax, 0x3f80
inc esi
or eax, ebx
add edx, ebp
inc esi
mov al, byte [eax + 0x5585a0]
mov byte [esi - 1], al
mov eax, edx
and eax, 0x3f80
mov ebx, ecx
add ecx, edi
sar ebx, 7
or eax, ebx
add edx, ebp
mov ebx, ecx
inc esi
mov al, byte [eax + 0x5585a0]
add ecx, edi
mov byte [esi - 1], al
mov eax, edx
and eax, 0x3f80
add edx, ebp
sar ebx, 7
or eax, ebx
mov ebx, ecx
sar ebx, 7
mov al, byte [eax + 0x5585a0]
add ecx, edi
mov byte [esi], al
mov eax, edx
and eax, 0x3f80
inc esi
or eax, ebx
add edx, ebp
mov ebx, ecx
inc esi
mov al, byte [eax + 0x5585a0]
add ecx, edi
mov byte [esi - 1], al
mov eax, edx
and eax, 0x3f80
add edx, ebp
sar ebx, 7
or eax, ebx
mov ebx, ecx
sar ebx, 7
mov al, byte [eax + 0x5585a0]
add ecx, edi
mov byte [esi], al
mov eax, edx
and eax, 0x3f80
inc esi
or eax, ebx
add edx, ebp
mov ebx, ecx
inc esi
mov al, byte [eax + 0x5585a0]
add ecx, edi
mov byte [esi - 1], al
mov eax, edx
and eax, 0x3f80
add edx, ebp
sar ebx, 7
or eax, ebx
mov ebx, ecx
sar ebx, 7
mov al, byte [eax + 0x5585a0]
add ecx, edi
mov byte [esi], al
mov eax, edx
and eax, 0x3f80
inc esi
or eax, ebx
add edx, ebp
mov ebx, ecx
inc esi
mov al, byte [eax + 0x5585a0]
add ecx, edi
mov byte [esi - 1], al
mov eax, edx
and eax, 0x3f80
add edx, ebp
sar ebx, 7
or eax, ebx
inc esi
mov ebx, ecx
mov al, byte [eax + 0x5585a0]
mov byte [esi - 1], al
mov eax, edx
and eax, 0x3f80
sar ebx, 7
or eax, ebx
add ecx, edi
add edx, ebp
mov ebx, ecx
mov al, byte [eax + 0x5585a0]
add ecx, edi
mov byte [esi], al
mov eax, edx
and eax, 0x3f80
inc esi
sar ebx, 7
or eax, ebx
add edx, ebp
mov ebx, ecx
inc esi
mov al, byte [eax + 0x5585a0]
add ecx, edi
mov byte [esi - 1], al
mov eax, edx
and eax, 0x3f80
add edx, ebp
sar ebx, 7
or eax, ebx
mov ebx, ecx
sar ebx, 7
mov al, byte [eax + 0x5585a0]
add ecx, edi
mov byte [esi], al
mov eax, edx
and eax, 0x3f80
inc esi
or eax, ebx
add edx, ebp
mov ebx, ecx
inc esi
mov al, byte [eax + 0x5585a0]
add ecx, edi
mov byte [esi - 1], al
mov eax, edx
and eax, 0x3f80
add edx, ebp
sar ebx, 7
or eax, ebx
mov ebx, ecx
sar ebx, 7
mov al, byte [eax + 0x5585a0]
add ecx, edi
mov byte [esi], al
mov eax, edx
and eax, 0x3f80
inc esi
or eax, ebx
add edx, ebp
mov ebx, ecx
add ebp, edx
mov al, byte [eax + 0x5585a0]
add edi, ecx
mov byte [esi], al
mov eax, edx
and eax, 0x3f80
inc esi
sar ebx, 7
or eax, ebx
and ebp, 0x3f80
sar edi, 7
mov al, byte [eax + 0x5585a0]
or ebp, edi
mov edx, dword [esp + 0x64]
mov byte [esi], al
mov cl, byte [ebp + 0x5585a0]
mov eax, dword [esp + 0x10]
inc esi
sub eax, 0x20
mov dword [esp + 0x10], eax
mov byte [esi], cl
mov ecx, dword [esp + 0x60]
inc esi
test eax, eax
jg 0x45b78c
fstp st(0)
fstp st(0)
fstp st(0)
jmp 0x45bbb0
fstp st(0)
fstp st(0)
fstp st(0)
mov eax, edx
mov ebx, ecx
and eax, 0x3f80
add ecx, edi
sar ebx, 7
or eax, ebx
inc esi
add edx, ebp
mov al, byte [eax + 0x5585a0]
mov byte [esi - 1], al
mov eax, dword [esp + 0x10]
dec eax
mov dword [esp + 0x10], eax
jne 0x45bb89
mov esi, dword [esp + 0x94]
mov ebx, dword [esp + 0x48]
mov ebp, dword [esp + 0x28]
fld dword [esp + 0x70]
fld dword [esp + 0x74]
fld dword [esp + 0x78]
fld dword [esp + 0x7c]
fld dword [esp + 0x80]
fld dword [esp + 0x84]
fxch st(5)
fadd dword [esp + 0x2c]
mov ecx, dword [0x6087a0]
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x20]
add edx, ecx
inc ebx
mov dword [esp + 0x44], edx
fstp dword [esp + 0x2c]
fld dword [esp + 0x88]
fxch st(4)
fadd dword [esp + 0x14]
cmp ebx, eax
mov dword [esp + 0x48], ebx
fstp dword [esp + 0x14]
fld dword [esp + 0x8c]
fxch st(3)
fadd dword [esp + 0x18]
fstp dword [esp + 0x18]
fxch st(1)
fadd dword [esp + 0x1c]
fxch st(1)
fadd dword [esp + 0x30]
fxch st(4)
fadd dword [esp + 0x34]
fxch st(3)
fadd dword [esp + 0x38]
fxch st(2)
fadd dword [esp + 0x3c]
fxch st(1)
fstp dword [esp + 0x1c]
fxch st(3)
fstp dword [esp + 0x30]
fxch st(1)
fstp dword [esp + 0x34]
fstp dword [esp + 0x38]
fstp dword [esp + 0x3c]
jl 0x45b498
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x80
ret