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

Disassembly:
sub esp, 0x44
mov edx, dword [0x9b38c0]
push ebx
push esi
mov esi, ecx
movsx ebx, word [esi + 0x8e]
imul ebx, ebx, 0x16
push edi
lea eax, [esp + 0x28]
push eax
lea ecx, [esi + 0xbc]
add ebx, edx
push ecx
mov dword [esp + 0x54], ebx
call fcn.0040fe20
mov eax, dword [esp + 0x5c]
mov edx, dword [eax + 4]
fld dword [eax]
mov eax, dword [eax + 8]
fsub dword [esi + 0x98]
mov dword [esp + 0x4c], edx
fld dword [esp + 0x4c]
mov dword [esp + 0x50], eax
fsub dword [esi + 0x9c]
add esp, 8
fld dword [esp + 0x48]
push 0
fsub dword [esi + 0xa0]
fstp dword [esp + 0x40]
mov ecx, dword [esp + 0x40]
fxch st(1)
mov dword [esp + 0x4c], ecx
fstp dword [esp + 0x44]
mov edx, dword [esp + 0x44]
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x2c]
fstp dword [esp + 0x48]
mov eax, dword [esp + 0x48]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x40], ecx
mov ecx, edx
mov dword [esp + 0x44], edx
mov edx, eax
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x30], edx
fld dword [esp + 0x30]
mov edx, eax
mov dword [esp + 0x44], eax
mov eax, ecx
mov dword [esp + 0x38], edx
fmul dword [esp + 0x38]
mov dword [esp + 0x3c], eax
fld dword [esp + 0x3c]
fmul dword [esp + 0x2c]
mov dword [esp + 0x48], ecx
mov ecx, esi
fsubp st(1)
fstp dword [esp + 0x14]
mov edi, dword [esp + 0x14]
push edi
push ebx
call fcn.0076f4a0
push 1
push edi
push ebx
mov ecx, esi
call fcn.0076f4a0
mov eax, edi
mov dword [esi + 0x2c8], eax
cmp dword [esi + 0x78], 1
mov ecx, edi
mov edx, edi
mov dword [esi + 0x2c4], ecx
mov dword [esi + 0x2cc], edx
jne 0x777a76
movsx ecx, byte [esi + 0x8c]
cmp ecx, 1
sete dl
xor edi, edi
mov di, word [ebx + 0xa]
push ebp
mov ebp, ecx
xor ebp, 1
test ecx, ecx
mov byte [esp + 0x13], dl
mov eax, edi
jne 0x7778ac
shr eax, 0xa
jmp 0x7778af
shr eax, 9
and al, 1
test ebp, ebp
mov byte [esp + 0x58], al
mov eax, edi
jne 0x7778c0
shr eax, 0xa
jmp 0x7778c3
shr eax, 9
movzx ecx, word [ebx + ecx*2]
mov edi, dword [0x9b38bc]
shl ecx, 5
and al, 1
add ecx, edi
je 0x7778f1
mov cx, word [ecx + 0xe]
test cx, cx
jl 0x7778f1
movsx ecx, cx
shl ecx, 6
add ecx, dword [0x9b38b8]
mov dword [esp + 0x18], ecx
jmp 0x7778f9
mov dword [esp + 0x18], 0x9b3830
movzx ecx, word [ebx + ebp*2]
shl ecx, 5
add ecx, edi
je 0x77791d
mov cx, word [ecx + 0xe]
test cx, cx
jl 0x77791d
movsx edi, cx
mov ecx, dword [0x9b38b8]
shl edi, 6
add edi, ecx
jmp 0x777922
mov edi, 0x9b3830
xor al, dl
mov ecx, edi
mov byte [esp + 0x44], al
push eax
call fcn.0076e890
mov cl, byte [esp + 0x13]
mov ebp, eax
xor eax, eax
mov al, byte [esp + 0x58]
xor al, cl
mov ecx, dword [esp + 0x18]
mov byte [esp + 0x38], al
push eax
call fcn.0076e890
cmp eax, ebp
jge 0x777956
mov dword [esp + 0x1c], eax
jmp 0x77795c
mov dword [esp + 0x1c], ebp
mov eax, ebp
test eax, eax
jle 0x777a75
xor ebp, ebp
test eax, eax
mov byte [esp + 0x58], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0
jle 0x777a57
jmp 0x777990
mov ecx, dword [esp + 0x38]
push ecx
mov ecx, dword [esp + 0x1c]
push ebp
call fcn.0076e980
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x44]
mov ebx, eax
mov eax, dword [edx + ebx*4 + 4]
sar eax, 0x12
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
push ecx
push ebp
mov ecx, edi
fmul dword [0x9b3a68]
call fcn.0076e980
mov edx, dword [edi + eax*4 + 4]
sar edx, 0x12
mov dword [esp + 0x20], edx
fild dword [esp + 0x20]
mov al, byte [esp + 0x58]
test al, al
fmul dword [0x9b3a68]
fld st(1)
fsub st(1)
fmul dword [esi + 0x90]
fadd st(1)
fld dword [esp + 0x14]
fsub st(1)
fabs
fstp dword [esp + 0x20]
je 0x777a0b
fld dword [esp + 0x20]
fcomp dword [esp + 0x24]
fnstsw ax
test ah, 5
jp 0x777a40
mov eax, dword [esp + 0x20]
fst dword [esi + 0x2c4]
fst dword [esi + 0x2cc]
mov byte [esi + 0x2c3], bl
fstp dword [esi + 0x2c8]
mov byte [esi + 0x2c1], bl
mov dword [esp + 0x24], eax
fstp dword [esp + 0x2c]
mov byte [esp + 0x58], 1
fstp dword [esp + 0x28]
jmp 0x777a46
fstp st(0)
fstp st(0)
fstp st(0)
mov eax, dword [esp + 0x1c]
inc ebp
cmp ebp, eax
jl 0x777990
mov ebx, dword [esp + 0x50]
mov ecx, dword [esp + 0x28]
push 0
push ecx
push ebx
mov ecx, esi
call fcn.0076f4a0
mov edx, dword [esp + 0x2c]
push 1
push edx
push ebx
mov ecx, esi
call fcn.0076f4a0
pop ebp
push 1
push ebx
mov ecx, esi
call fcn.0076f140
push 0
push ebx
mov ecx, esi
call fcn.0076f140
push ebx
mov ecx, esi
call fcn.00765c30
push ebx
mov ecx, esi
call fcn.007753e0
pop edi
pop esi
pop ebx
add esp, 0x44
ret 4