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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0x3b4
fldz
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xc]
fld st(0)
mov edx, dword [eax + 0x14]
fst qword [esp + 0x84]
fld qword [0x6495c8]
push ebx
mov ebx, dword [eax + 0x10]
fst qword [esp + 0x48]
push esi
fxch st(2)
xor esi, esi
fst qword [esp + 0x6c]
cmp dword [ebx + 0x10], esi
push edi
mov dword [esp + 0x58], ecx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], edx
mov dword [ebx + 0x18], esi
mov dword [esp + 0x48], esi
jle 0x5a9ff4
fld1
mov dword [esp + 0x44], esi
mov dword [esp + 0x88], esi
mov edx, dword [ebx + 0x14]
add edx, dword [esp + 0x88]
xor eax, eax
cmp dword [edx + 0x10], eax
mov dword [esp + 0x90], edx
mov dword [edx + 0x1c], eax
mov dword [esp + 0x60], eax
jle 0x5a9f26
mov dword [esp + 0x98], eax
mov eax, dword [edx + 0x14]
add eax, dword [esp + 0x98]
mov dword [esp + 0x70], 0
cmp dword [eax + 0x18], 0
mov dword [esp + 0x4c], eax
jle 0x5a9f0a
add eax, 0x30
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x4c]
mov ecx, dword [eax + 0x14]
imul ecx, dword [eax + 0x10]
test ecx, ecx
mov dword [esp + 0x80], 0
jle 0x5a9eed
mov dword [esp + 0x6c], 0
mov eax, dword [esp + 0x68]
mov edi, dword [eax]
add edi, dword [esp + 0x6c]
mov dword [esp + 0x78], 0
mov ecx, dword [edi + 0x14]
imul ecx, dword [edi + 0x10]
test ecx, ecx
jle 0x5a9ec4
mov dword [esp + 0x5c], 0
mov esi, dword [edi + 0x18]
add esi, dword [esp + 0x5c]
xor ecx, ecx
mov eax, dword [esi + 0x32f0]
cmp eax, 4
jl 0x5a9e11
add eax, 0xfffffffd
mov dword [esp + 0x50], eax
test ecx, ecx
lea edx, [ecx + ecx*2]
mov eax, dword [esi + edx*8 + 0x32f8]
fld qword [esi + edx*8 + 0x3300]
lea edx, [esi + edx*8]
je 0x5a9ce8
sub eax, dword [edx + 0x32e0]
lea ebx, [ecx + ecx*2 + 0x65d]
fsub qword [esi + ebx*8]
test eax, eax
mov dword [esp + 0x38], eax
je 0x5a9d10
fidiv dword [esp + 0x38]
fcom st(4)
fnstsw ax
test ah, 5
jp 0x5a9d03
fstp st(4)
fld st(3)
fxch st(4)
fcom st(2)
fnstsw ax
test ah, 0x41
jne 0x5a9d10
fstp st(2)
jmp 0x5a9d12
fstp st(0)
fld qword [edx + 0x3318]
lea eax, [ecx + 1]
test eax, eax
mov eax, dword [edx + 0x3310]
je 0x5a9d35
sub eax, dword [edx + 0x32f8]
lea ebx, [ecx + ecx*2 + 0x660]
fsub qword [esi + ebx*8]
test eax, eax
mov dword [esp + 0x38], eax
je 0x5a9d5d
fidiv dword [esp + 0x38]
fcom st(4)
fnstsw ax
test ah, 5
jp 0x5a9d50
fstp st(4)
fld st(3)
fxch st(4)
fcom st(2)
fnstsw ax
test ah, 0x41
jne 0x5a9d5d
fstp st(2)
jmp 0x5a9d5f
fstp st(0)
fld qword [edx + 0x3330]
lea eax, [ecx + 2]
test eax, eax
mov eax, dword [edx + 0x3328]
je 0x5a9d82
sub eax, dword [edx + 0x3310]
lea ebx, [ecx + ecx*2 + 0x663]
fsub qword [esi + ebx*8]
test eax, eax
mov dword [esp + 0x38], eax
je 0x5a9daa
fidiv dword [esp + 0x38]
fcom st(4)
fnstsw ax
test ah, 5
jp 0x5a9d9d
fstp st(4)
fld st(3)
fxch st(4)
fcom st(2)
fnstsw ax
test ah, 0x41
jne 0x5a9daa
fstp st(2)
jmp 0x5a9dac
fstp st(0)
fld qword [edx + 0x3348]
lea eax, [ecx + 3]
test eax, eax
mov eax, dword [edx + 0x3340]
je 0x5a9dcf
sub eax, dword [edx + 0x3328]
lea ebx, [ecx + ecx*2 + 0x666]
fsub qword [esi + ebx*8]
test eax, eax
mov dword [esp + 0x38], eax
je 0x5a9df7
fidiv dword [esp + 0x38]
fcom st(4)
fnstsw ax
test ah, 5
jp 0x5a9dea
fstp st(4)
fld st(3)
fxch st(4)
fcom st(2)
fnstsw ax
test ah, 0x41
jne 0x5a9df7
fstp st(2)
jmp 0x5a9df9
fstp st(0)
add ecx, 4
cmp ecx, dword [esp + 0x50]
jl 0x5a9cc0
mov ebx, dword [esp + 0x3c]
mov edx, dword [esp + 0x90]
cmp ecx, dword [esi + 0x32f0]
jge 0x5a9e80
test ecx, ecx
lea edx, [ecx + ecx*2]
fld qword [esi + edx*8 + 0x3300]
lea eax, [esi + edx*8]
mov edx, dword [eax + 0x32f8]
je 0x5a9e40
sub edx, dword [eax + 0x32e0]
lea ebx, [ecx + ecx*2 + 0x65d]
fsub qword [esi + ebx*8]
test edx, edx
mov dword [esp + 0x38], edx
je 0x5a9e68
fidiv dword [esp + 0x38]
fcom st(4)
fnstsw ax
test ah, 5
jp 0x5a9e5b
fstp st(4)
fld st(3)
fxch st(4)
fcom st(2)
fnstsw ax
test ah, 0x41
jne 0x5a9e68
fstp st(2)
jmp 0x5a9e6a
fstp st(0)
add ecx, 1
cmp ecx, dword [esi + 0x32f0]
jl 0x5a9e19
mov ebx, dword [esp + 0x3c]
mov edx, dword [esp + 0x90]
mov eax, dword [esi + 8]
sub eax, dword [esi]
mov ecx, dword [esi + 0xc]
sub ecx, dword [esi + 4]
add dword [esp + 0x5c], 0x3c58
imul eax, ecx
add dword [ebx + 0x18], eax
mov eax, dword [esi + 8]
sub eax, dword [esi]
mov ecx, dword [esi + 0xc]
sub ecx, dword [esi + 4]
imul eax, ecx
add dword [edx + 0x1c], eax
mov ecx, dword [edi + 0x14]
imul ecx, dword [edi + 0x10]
mov eax, dword [esp + 0x78]
add eax, 1
cmp eax, ecx
mov dword [esp + 0x78], eax
jl 0x5a9ca1
mov ecx, dword [esp + 0x4c]
mov esi, dword [ecx + 0x14]
imul esi, dword [ecx + 0x10]
mov eax, dword [esp + 0x80]
add dword [esp + 0x6c], 0x24
add eax, 1
cmp eax, esi
mov dword [esp + 0x80], eax
jl 0x5a9c78
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x4c]
add dword [esp + 0x68], 0x20
add eax, 1
cmp eax, dword [ecx + 0x18]
mov dword [esp + 0x70], eax
jl 0x5a9c52
mov eax, dword [esp + 0x60]
add dword [esp + 0x98], 0x7c
add eax, 1
cmp eax, dword [edx + 0x10]
mov dword [esp + 0x60], eax
jl 0x5a9c2b
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 8]
mov esi, dword [esp + 0x44]
mov eax, dword [ecx + 0x18]
mov ecx, dword [eax + esi + 0x18]
mov eax, dword [esp + 0x48]
add dword [esp + 0x88], 0x20
mov edi, 1
shl edi, cl
add eax, 1
add esi, 0x30
cmp eax, dword [ebx + 0x10]
mov dword [esp + 0x50], edi
fild dword [esp + 0x50]
mov dword [esp + 0x48], eax
mov dword [esp + 0x44], esi
fsub st(1)
fmul st(0), st(0)
fimul dword [edx + 0x1c]
faddp st(3)
jl 0x5a9c01
fstp st(0)
xor esi, esi
fxch st(1)
fstp qword [esp + 0x90]
fst qword [esp + 0x70]
fxch st(1)
fst qword [esp + 0x50]
fxch st(1)
mov eax, dword [ebp + 0x14]
cmp eax, esi
je 0x5a9fdf
cmp dword [eax], esi
je 0x5a9fdf
mov ecx, dword [ebp + 8]
fstp st(1)
mov esi, dword [ecx + 0x18]
fstp st(0)
mov edx, dword [ebx + 0x18]
imul esi, esi, 0x238
add esi, dword [eax + 0x50]
mov eax, dword [esp + 0x40]
mov dword [esi + 0x228], edx
fld qword [ebx + 0x20]
fstp qword [esi + 0x230]
mov ecx, dword [eax + 0xc]
add ecx, ecx
add ecx, ecx
add ecx, ecx
push ecx
call fcn.005a3520
fld qword [esp + 0x74]
fld qword [esp + 0x54]
add esp, 4
mov dword [esi], eax
fxch st(1)
xor esi, esi
mov edx, dword [esp + 0x40]
cmp dword [edx + 0xc], esi
jle 0x5aa1fa
fld qword [0x659f50]
jmp 0x5aa010
fstp st(1)
jmp 0x5a9f8b
fld qword [0x659f50]
fld qword [esp + 0x70]
fld qword [esp + 0x50]
fxch st(2)
mov eax, dword [esp + 0x40]
fxch st(2)
mov edi, dword [eax + esi*4 + 0x14]
fstp qword [esp + 0x80]
test edi, edi
mov ebx, dword [ebp + 0x10]
fstp qword [esp + 0x78]
mov dword [esp + 0x48], 0
je 0x5aa03a
cmp edi, ebx
jge 0x5aa03a
mov ebx, edi
fldz
mov ecx, eax
fstp qword [esp + 0x88]
fld dword [ecx + esi*4 + 0x5c0]
fdiv st(1)
call fcn.005b90c0
fdivr qword [esp + 0x90]
test edi, edi
mov edx, dword [esp + 0x3c]
fsubr qword [edx + 0x20]
fstp qword [esp + 0x98]
jne 0x5aa07d
mov eax, dword [esp + 0x58]
cmp dword [eax], edi
je 0x5aa07d
fld qword [esp + 0x50]
jmp 0x5aa17c
mov ecx, dword [esp + 0x58]
mov eax, dword [ebp + 8]
mov edx, dword [eax + 8]
mov eax, dword [eax]
push ecx
push edx
push eax
call fcn.005adb60
add esp, 0xc
mov edi, eax
mov dword [esp + 0x44], 0x20
mov edi, edi
fld qword [esp + 0x78]
mov ecx, dword [ebp + 8]
fadd qword [esp + 0x80]
push 0
sub esp, 8
fmul qword [0x659f30]
fst qword [esp + 0x6c]
fstp qword [esp]
push esi
push ecx
call fcn.005a98f0
mov edx, dword [esp + 0x6c]
add esp, 0x14
cmp dword [edx + 8], 0
je 0x5aa111
test esi, esi
jne 0x5aa0e1
mov eax, dword [esp + 0x3c]
fld qword [eax + 0x28]
jmp 0x5aa0f0
fld qword [esp + esi*8 + 0x98]
mov ecx, dword [esp + 0x3c]
fadd qword [ecx + esi*8 + 0x28]
fcomp qword [esp + 0x98]
fnstsw ax
fld qword [esp + 0x60]
test ah, 5
jp 0x5aa108
fstp qword [esp + 0x78]
jmp 0x5aa15a
fst qword [esp + 0x80]
jmp 0x5aa14b
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 0xc]
push edx
mov edx, dword [esp + 0x40]
push ebx
push eax
mov eax, dword [ebp + 8]
lea ecx, [esi + 1]
push ecx
mov ecx, dword [eax + 0x18]
push edx
push ecx
push edi
call fcn.005ad860
fld qword [esp + 0x7c]
add esp, 0x1c
cmp eax, 0xfffffc19
jne 0x5aa147
fstp qword [esp + 0x80]
jmp 0x5aa15a
fst qword [esp + 0x78]
fstp qword [esp + 0x88]
mov dword [esp + 0x48], 1
sub dword [esp + 0x44], 1
jne 0x5aa0a0
push edi
call fcn.005b05f0
add esp, 4
cmp dword [esp + 0x48], 0
je 0x5aa1f1
fld qword [esp + 0x88]
mov eax, dword [ebp + 0x14]
test eax, eax
je 0x5aa19d
cmp dword [eax], 0
je 0x5aa19d
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x18]
mov edx, dword [eax + 0x50]
imul ecx, ecx, 0x238
mov eax, dword [ecx + edx]
fst qword [eax + esi*8]
mov ecx, dword [ebp + 8]
push 1
sub esp, 8
fstp qword [esp]
push esi
push ecx
call fcn.005a98f0
add esp, 0x14
test esi, esi
jne 0x5aa1bf
mov edx, dword [esp + 0x3c]
fld qword [edx + 0x28]
jmp 0x5aa1ce
fld qword [esp + esi*8 + 0x98]
mov eax, dword [esp + 0x3c]
fadd qword [eax + esi*8 + 0x28]
mov ecx, dword [esp + 0x40]
fstp qword [esp + esi*8 + 0xa0]
add esi, 1
cmp esi, dword [ecx + 0xc]
jl 0x5aa000
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
fstp st(1)
pop esi
fstp st(0)
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret