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

Disassembly:
push edi
push esi
push ebp
push ebx
mov edi, dword [esp + 0x34]
sub esp, 0x9c
mov ebp, ecx
mov ebx, 0x10
mov dword [esp + 0x78], ebp
mov dword [esp + 0x80], eax
mov dword [esp + 0x4c], edx
add ebx, ebx
mov eax, ebx
sar eax, 2
shr eax, 0x1d
add eax, ebx
mov esi, eax
sar esi, 3
mov dword [esp + 8], esi
fild dword [esp + 8]
fdivr dword [0x61f5c4]
fstp qword [esp]
call fcn.00592db9
fstp qword [esp + 0x20]
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
mov edx, eax
shr edx, 0x14
and edx, 0x7ff
cmp edx, 0x3fe
jle 0x591ab0
mov ebp, 0x41e
mov edi, eax
shld edi, ecx, 0xb
mov ecx, ebp
sub ecx, edx
or edi, 0x80000000
mov edx, eax
mov eax, edi
shr eax, cl
test edx, edx
jge 0x591ab2
neg eax
jmp 0x591ab2
xor eax, eax
mov edx, eax
mov dword [esp + 8], eax
mov eax, edx
shl eax, 4
sub eax, edx
sub eax, edx
cmp ebx, eax
jl 0x591a44
mov ebp, dword [esp + 0x78]
mov dword [esp + 0x2c], esi
mov edi, dword [esp + 0xd0]
mov dword [esp], ebp
call fcn.004ea440
mov ebx, eax
mov dword [esp], ebp
call fcn.004e7530
mov dword [esp + 8], ebx
mov edx, dword [0x606064]
fild dword [esp + 8]
fdivr dword [0x61f5c8]
mov dword [esp + 8], eax
mov ebp, dword [edx]
fild dword [esp + 8]
fdivr dword [0x61f5d0]
fxch st(1)
mov dword [esp], ebp
fstp qword [esp + 0x68]
fstp qword [esp + 0x60]
call fcn.004e9d90
mov ebx, eax
mov dword [esp], ebx
call fcn.004ea440
mov dword [esp + 0x40], eax
mov dword [esp], ebx
call fcn.004e7530
mov dword [esp + 0x30], eax
call fcn.004eb4b0
mov dword [esp], ebp
fstp qword [esp + 0x78]
call fcn.004e9df0
fdivr dword [0x61f5dc]
test edi, edi
fstp qword [esp + 0x70]
je 0x591e70
xor eax, eax
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x44], eax
xor eax, eax
test edx, edx
jbe 0x591e31
mov esi, dword [esp + 0x80]
mov edi, dword [esp + 0xc4]
mov ebp, dword [esp + 0xc0]
movsx ecx, byte [esi + eax]
movsx edx, byte [0x5ed870]
cmp ecx, edx
je 0x591e20
mov edx, dword [esp + 0xbc]
lea ebx, [eax*8 + 8]
mov dword [esp + 0x48], ebp
add ebx, edx
lea edx, [edx + eax*8]
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], edx
lea edx, [ebp + 0xe]
lea ebx, [eax + 1]
mov eax, dword [esp + 0x40]
mov dword [esp + 0x58], edx
cmp ebp, eax
jge 0x591e23
mov eax, edx
test eax, eax
jle 0x591e23
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x30]
cmp eax, edx
jge 0x591e23
mov eax, dword [esp + 0x50]
test eax, eax
jle 0x591e23
add ecx, 0xffffffe0
xor edx, edx
mov eax, ecx
mov dword [esp + 0x84], edi
mov edi, dword [esp + 0x2c]
div edi
imul edi, eax
sub ecx, edi
mov edi, dword [esp + 0x84]
mov edx, ecx
shl edx, 3
lea ecx, [ecx*8 + 8]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x38], ecx
mov edx, eax
shl edx, 4
sub edx, eax
mov ecx, edx
sub ecx, eax
mov eax, 0xe
add eax, ecx
test ebp, ebp
mov dword [esp + 0x34], eax
jl 0x591e60
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x58]
dec eax
cmp edx, eax
jle 0x591c63
mov edx, dword [esp + 0x48]
mov dword [esp + 0x58], eax
sub eax, edx
add eax, ecx
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x54]
test eax, eax
jl 0x591e40
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x50]
dec eax
cmp edx, eax
jle 0x591c90
mov edx, dword [esp + 0x54]
mov dword [esp + 0x50], eax
sub eax, edx
mov edx, dword [esp + 0x3c]
add eax, edx
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x34]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x38]
fild dword [esp + 8]
fmul qword [esp + 0x60]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x54]
fild dword [esp + 8]
fmul qword [esp + 0x68]
mov dword [esp + 8], edx
mov edx, dword [esp + 0x48]
fild dword [esp + 8]
fmul qword [esp + 0x68]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x58]
fild dword [esp + 8]
fmul qword [esp + 0x60]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x50]
fild dword [esp + 8]
fadd dword [0x61f5e0]
mov dword [esp + 8], edx
mov edx, dword [esp + 0x44]
fild dword [esp + 8]
fadd dword [0x61f5e4]
mov dword [esp + 8], eax
fild dword [esp + 8]
fadd dword [0x61f5e8]
mov dword [esp + 8], ecx
mov ecx, 0xffffffff
fild dword [esp + 8]
fadd dword [0x61f5ec]
fxch st(7)
imul eax, edx, 0x80
fst dword [edi + eax + 0x18]
fstp dword [edi + eax + 0x38]
fst dword [edi + eax + 0x24]
fstp dword [edi + eax + 0x44]
fst dword [edi + eax + 4]
fstp dword [edi + eax + 0x64]
fst dword [edi + eax]
fstp dword [edi + eax + 0x20]
fst dword [edi + eax + 0x58]
fstp dword [edi + eax + 0x78]
fst dword [edi + eax + 0x3c]
fstp dword [edi + eax + 0x5c]
fst dword [edi + eax + 0x1c]
fstp dword [edi + eax + 0x7c]
fst dword [edi + eax + 0x40]
fstp dword [edi + eax + 0x60]
lea edx, [edi + eax + 0x80]
add eax, edi
fld qword [esp + 0x78]
fld qword [esp + 0x70]
fst dword [eax + 0xc]
mov dword [eax + 0x10], ecx
fxch st(1)
fst dword [eax + 8]
add eax, 0x20
cmp edx, eax
fxch st(1)
ja 0x591d75
fstp qword [esp + 0x70]
fstp qword [esp + 0x78]
movzx eax, word [esp + 0xcc]
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0xc8]
mov dword [esp + 0x84], edi
lea edi, [eax + edx*4]
mov dword [esp + 0x88], esi
and edi, 0xffff
lea esi, [edx*8]
lea esi, [esi + edx*4]
mov word [ecx + esi], di
mov word [esi + ecx + 6], di
lea edi, [edx*4 + 1]
add edi, eax
mov word [esi + ecx + 2], di
lea edi, [edx*4 + 2]
add edi, eax
and edi, 0xffff
mov word [esi + ecx + 8], di
mov word [esi + ecx + 4], di
lea edi, [edx*4 + 3]
inc edx
add edi, eax
mov dword [esp + 0x44], edx
mov word [esi + ecx + 0xa], di
mov edi, dword [esp + 0x84]
mov esi, dword [esp + 0x88]
jmp 0x591e23
lea ebx, [eax + 1]
mov eax, dword [esp + 0x4c]
cmp ebx, eax
mov eax, ebx
jb 0x591b86
mov eax, dword [esp + 0x44]
add esp, 0x9c
pop ebx
pop ebp
pop esi
pop edi
ret
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x54]
sub eax, edx
xor edx, edx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x54], edx
jmp 0x591c6f
xor eax, eax
sub ecx, ebp
mov dword [esp + 0x48], eax
jmp 0x591c46
mov byte [0x5ed870], 0
jmp 0x591b5d