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

Disassembly:
sub esp, 0x68
push ebx
mov ebx, dword [esp + 0x70]
push ebp
mov ebp, dword [esp + 0x78]
add ebp, 0xfffffffe
test ebp, ebp
push esi
push edi
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
jle 0x4abac4
mov edi, 2
lea esi, [ebx + 8]
lea ebx, [ebx]
lea eax, [edi - 1]
cdq
idiv dword [esp + 0x80]
lea eax, [edx + edx*2]
lea ecx, [ebx + eax*4]
mov eax, edi
cdq
idiv dword [esp + 0x80]
lea edx, [edx + edx*2]
fld dword [ebx + edx*4]
lea eax, [ebx + edx*4]
fsub dword [ecx]
lea edx, [esp + 0x60]
fstp dword [esp + 0x48]
fld dword [eax + 4]
fsub dword [ecx + 4]
fstp dword [esp + 0x4c]
fld dword [eax + 8]
lea eax, [esp + 0x48]
fsub dword [ecx + 8]
push eax
fstp dword [esp + 0x54]
fld dword [ecx]
fsub dword [esi - 8]
fstp dword [esp + 0x40]
fld dword [ecx + 4]
fsub dword [esi - 4]
fstp dword [esp + 0x44]
fld dword [ecx + 8]
lea ecx, [esp + 0x40]
fsub dword [esi]
push ecx
push edx
fstp dword [esp + 0x50]
call fcn.004ab210
fld dword [esp + 0x30]
fadd dword [eax]
add esp, 0xc
inc edi
add esi, 0xc
dec ebp
fstp dword [esp + 0x30]
fld dword [esp + 0x28]
fadd dword [eax + 4]
fstp dword [esp + 0x34]
fld dword [esp + 0x2c]
mov ecx, dword [esp + 0x34]
fadd dword [eax + 8]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], ecx
fstp dword [esp + 0x38]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x2c], edx
jne 0x4aba10
lea eax, [esp + 0x24]
push eax
call fcn.004ab100
fcom dword [0x7440fc]
add esp, 4
fnstsw ax
test ah, 5
jnp 0x4abdb7
fdivr dword [0x73d764]
mov ecx, dword [esp + 0x84]
fld dword [esp + 0x24]
fmul st(1)
fstp dword [esp + 0x18]
fld dword [esp + 0x28]
fmul st(1)
fstp dword [esp + 0x1c]
fld dword [esp + 0x2c]
fmul st(1)
fstp dword [esp + 0x20]
fstp st(0)
fld dword [esp + 0x20]
fmul dword [ebx + 8]
fld dword [esp + 0x1c]
fmul dword [ebx + 4]
faddp st(1)
fld dword [esp + 0x18]
fmul dword [ebx]
faddp st(1)
fchs
fld dword [esp + 0x20]
fmul dword [ecx + 8]
fld dword [esp + 0x1c]
fmul dword [ecx + 4]
faddp st(1)
fld dword [esp + 0x18]
fmul dword [ecx]
faddp st(1)
fadd st(1)
fst dword [esp + 0x10]
fcomp dword [0x73d700]
fnstsw ax
test ah, 5
jnp 0x4abdb7
mov esi, dword [esp + 0x88]
fld dword [esp + 0x20]
fmul dword [esi + 8]
fld dword [esp + 0x1c]
fmul dword [esi + 4]
faddp st(1)
fld dword [esp + 0x18]
fmul dword [esi]
faddp st(1)
fadd st(1)
fstp dword [esp + 0x14]
fstp st(0)
fld dword [esp + 0x14]
fcomp dword [0x73d700]
fnstsw ax
test ah, 0x41
je 0x4abdb9
fld dword [esp + 0x10]
fcomp dword [esp + 0x14]
fnstsw ax
test ah, 0x44
jnp 0x4abdb9
test byte [0x831fa0], 1
jne 0x4abbd5
or dword [0x831fa0], 1
mov dword [0x831f94], 0
mov dword [0x831f98], 0
mov dword [0x831f9c], 0
fld dword [esp + 0x10]
mov edi, ebx
fsub dword [esp + 0x14]
fdivr dword [esp + 0x10]
fld st(0)
fmul dword [esi]
fld st(1)
fmul dword [esi + 4]
fstp dword [esp + 0x4c]
fld st(1)
fmul dword [esi + 8]
fstp dword [esp + 0x50]
fld dword [0x73d764]
fsub st(2)
fld st(0)
fmul dword [ecx]
fstp dword [esp + 0x30]
fld st(0)
fmul dword [ecx + 4]
fstp dword [esp + 0x34]
fmul dword [ecx + 8]
fstp dword [esp + 0x38]
fld dword [esp + 0x30]
fadd st(1)
fstp dword [esp + 0x24]
mov ecx, dword [esp + 0x24]
mov dword [0x831f94], ecx
fstp st(0)
xor ecx, ecx
fstp st(0)
fld dword [esp + 0x34]
fadd dword [esp + 0x4c]
fstp dword [esp + 0x28]
fld dword [esp + 0x38]
mov edx, dword [esp + 0x28]
fadd dword [esp + 0x50]
mov dword [0x831f98], edx
fstp dword [esp + 0x2c]
mov eax, dword [esp + 0x2c]
mov dword [0x831f9c], eax
mov eax, 1
cmp ecx, dword [esp + 0x80]
jge 0x4abd67
mov edx, edi
fld dword [esp + 0x24]
mov eax, dword [edx]
mov dword [esp + 0x30], eax
fsub dword [esp + 0x30]
mov eax, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [esp + 0x34], eax
fstp dword [esp + 0x54]
lea esi, [ecx + 1]
fld dword [esp + 0x28]
mov dword [esp + 0x38], edx
fsub dword [esp + 0x34]
mov eax, esi
cdq
idiv dword [esp + 0x80]
fstp dword [esp + 0x58]
fld dword [esp + 0x2c]
fsub dword [esp + 0x38]
fstp dword [esp + 0x5c]
lea eax, [edx + edx*2]
lea ecx, [ebx + eax*4]
mov edx, dword [ecx]
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov dword [esp + 0x3c], edx
fld dword [esp + 0x3c]
fsub dword [esp + 0x30]
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], ecx
lea edx, [esp + 0x54]
fstp dword [esp + 0x60]
push edx
fld dword [esp + 0x44]
lea eax, [esp + 0x64]
fsub dword [esp + 0x38]
push eax
lea ecx, [esp + 0x74]
push ecx
fstp dword [esp + 0x70]
fld dword [esp + 0x50]
fsub dword [esp + 0x44]
fstp dword [esp + 0x74]
call fcn.004ab210
mov edx, dword [eax]
mov ecx, dword [eax + 4]
mov dword [esp + 0x54], edx
mov edx, dword [eax + 8]
mov dword [esp + 0x5c], edx
fld dword [esp + 0x5c]
fmul dword [esp + 0x2c]
mov dword [esp + 0x58], ecx
fld dword [esp + 0x58]
add esp, 0xc
fmul dword [esp + 0x1c]
faddp st(1)
fld dword [esp + 0x48]
fmul dword [esp + 0x18]
faddp st(1)
fcomp qword [0x73edf8]
fnstsw ax
test ah, 1
jne 0x4abd50
mov eax, 1
jmp 0x4abd52
xor eax, eax
add edi, 0xc
test eax, eax
mov ecx, esi
jne 0x4abc63
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x68
ret
test eax, eax
je 0x4abdbb
mov ecx, dword [esp + 0x90]
test ecx, ecx
je 0x4abd8a
mov edx, dword [esp + 0x18]
mov dword [ecx], edx
mov edx, dword [esp + 0x1c]
mov dword [ecx + 4], edx
mov edx, dword [esp + 0x20]
mov dword [ecx + 8], edx
mov ecx, dword [esp + 0x8c]
test ecx, ecx
je 0x4abdbb
mov edx, dword [0x831f94]
mov dword [ecx], edx
mov edx, dword [0x831f98]
pop edi
pop esi
mov dword [ecx + 4], edx
mov edx, dword [0x831f9c]
pop ebp
mov dword [ecx + 8], edx
pop ebx
add esp, 0x68
ret
fstp st(0)
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x68
ret