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

Disassembly:
mov eax, dword [0x91cfa4]
mov al, byte [eax + 0x19]
sub esp, 0x10
test al, al
push esi
mov esi, dword [esp + 0x18]
je 0x785bbf
cmp byte [esi], al
je 0x785bbf
xor al, al
pop esi
add esp, 0x10
ret
mov al, byte [esi + 0xd9]
xor ecx, ecx
test al, al
sete cl
push ebx
push ebp
push edi
lea ecx, [ecx + ecx - 1]
mov dword [esp + 0x1c], ecx
fild dword [esp + 0x1c]
fmul dword [esi + 0x2c4]
call fcn.0043bd30
movzx edi, byte [esp + 0x28]
mov edx, dword [0x91d3f0]
push 0xfffffc90
push esi
mov dword [esp + 0x18], eax
mov dword [esp + 0x20], edi
lea ebx, [edx + edi*4 + 0x7b4]
call fcn.006b3af0
mov dword [esp + 0x24], eax
add esp, 8
fild dword [esp + 0x1c]
fcomp dword [ebx]
fnstsw ax
test ah, 0x41
je 0x785d11
mov al, byte [esi + 0xd6]
test al, al
mov ebp, dword [0x91cfa4]
mov ebx, dword [0x91d3f0]
je 0x785c73
cmp byte [ebx + 0x78], 2
jne 0x785c73
movzx eax, byte [esi + 0xd8]
cmp byte [eax + ebp + 0x35], 1
jne 0x785c73
fild dword [esp + 0x10]
fcom dword [0x8cba44]
fnstsw ax
test ah, 0x41
jnp 0x785d0f
fcomp dword [0x8d3a74]
fnstsw ax
test ah, 1
je 0x785d11
mov cl, byte [ebp + 0xf]
cmp cl, byte [esi]
je 0x785c8f
cmp word [ebx + 0x8c], 0xb
je 0x785c8f
cmp word [ebp + 0xc], 0xc
jle 0x785d11
fld dword [ebx + edi*4 + 0x434]
call fcn.0043bd30
fld dword [ebx + edi*4 + 0x7b4]
mov dword [esp + 0x10], eax
call fcn.0043bd30
fld dword [ebx + edi*4 + 0xb34]
mov dword [esp + 0x14], eax
call fcn.0043bd30
fld dword [ebp + 0x40]
mov edx, dword [esp + 0x10]
mov ebx, eax
push ebx
push edx
call fcn.0043bd30
fld dword [ebp + 0x38]
push eax
call fcn.0043bd30
push eax
call fcn.00644320
mov ebp, eax
mov al, byte [esp + 0x40]
add esp, 0x10
cmp al, 0x80
jne 0x785cef
cmp ebp, 0x400
jg 0x785d11
cmp ebp, 0x640
jl 0x786002
cmp al, 0xfe
jne 0x785d1b
cmp ebp, dword [esp + 0x34]
jge 0x785d1f
pop edi
pop ebp
pop ebx
mov al, 2
pop esi
add esp, 0x10
ret
fstp st(0)
pop edi
pop ebp
pop ebx
xor al, al
pop esi
add esp, 0x10
ret
test al, al
je 0x785d11
fild dword [esp + 0x18]
mov ecx, dword [0x91cfa4]
mov eax, dword [esp + 0x10]
push ebx
fstp dword [esp + 0x1c]
push eax
fld dword [esp + 0x20]
fmul dword [esi + 0x2d8]
fadd dword [ecx + 0x40]
call fcn.0043bd30
fld dword [esp + 0x20]
fmul dword [esi + 0x2d0]
mov edx, dword [0x91cfa4]
push eax
fadd dword [edx + 0x38]
call fcn.0043bd30
push eax
call fcn.00644320
add esp, 0x10
cmp ebp, eax
mov dword [esp + 0x1c], eax
jle 0x785d9f
push esi
call fcn.00674a60
add esp, 4
cmp eax, 0x40000
jle 0x785d8d
mov eax, dword [0x91d3f0]
cmp dword [eax + 0x58], 0x3800
jl 0x785d11
mov eax, dword [esp + 0x34]
cmp ebp, eax
jle 0x785d9f
cmp dword [esp + 0x1c], eax
jg 0x785d11
mov al, byte [esp + 0x2c]
test al, al
mov ebp, dword [0x91cfa4]
je 0x785dc8
fild dword [esp + 0x14]
fsubr dword [ebp + 0x3c]
call fcn.0043bd30
test eax, eax
jg 0x785dbf
neg eax
cmp eax, 0x78
jg 0x785d11
mov ecx, dword [0x91d3f0]
fld dword [ecx + edi*4 + 0xb38]
call fcn.0043bd30
mov edx, dword [0x91d3f0]
fld dword [edx + edi*4 + 0x438]
push eax
call fcn.0043bd30
fld dword [esp + 0x1c]
fmul dword [esi + 0x2d8]
push eax
fadd dword [ebp + 0x40]
call fcn.0043bd30
fld dword [esp + 0x20]
fmul dword [esi + 0x2d0]
push eax
fadd dword [ebp + 0x38]
call fcn.0043bd30
push eax
call fcn.00644320
mov ecx, dword [esp + 0x2c]
add esp, 0x10
cmp ecx, eax
jge 0x785d11
mov ebp, dword [0x91d3f0]
cmp dword [ebp + 0x58], 0x2800
jle 0x785d11
fld dword [ebp + edi*4 + 0xb38]
call fcn.0043bd30
fld dword [ebp + edi*4 + 0x438]
push eax
call fcn.0043bd30
fld dword [esi + 0x2cc]
push eax
call fcn.0043bd30
fld dword [esi + 0x2c4]
push eax
call fcn.0043bd30
push eax
call fcn.00644320
fld dword [esi + 0x2cc]
mov ebp, eax
mov eax, dword [esp + 0x20]
push ebx
push eax
call fcn.0043bd30
fld dword [esi + 0x2c4]
push eax
call fcn.0043bd30
push eax
call fcn.00644320
add eax, 0x100
add esp, 0x20
cmp eax, ebp
jae 0x785d11
movzx eax, byte [esi + 0xd8]
movzx edx, byte [esi + 0xd7]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
imul eax, eax, 0x110
mov ecx, dword [eax + 0xeb6620]
shr ecx, 0x1a
add ecx, 0x94
imul ecx, ecx, 0x220
mov eax, 0xb30f6353
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov ecx, dword [esp + 0x14]
mov eax, 0xffffff00
sub eax, edx
cmp ecx, eax
jle 0x785d11
fild dword [esp + 0x14]
mov ecx, dword [0x91cfa4]
fsubr dword [ecx + 0x3c]
fcomp dword [0x87b79c]
fnstsw ax
test ah, 5
jp 0x785d11
cmp byte [esp + 0x30], 0xff
je 0x7860d1
mov eax, dword [0x91d3f0]
mov edx, dword [eax + edi*4 + 0xb34]
mov eax, dword [eax + edi*4 + 0x434]
push edx
mov edx, dword [ecx + 0x40]
push eax
mov eax, dword [ecx + 0x38]
push edx
push eax
call fcn.006442f0
xor ecx, ecx
mov cx, word [esi + 0xec]
push eax
push ecx
call fcn.006442a0
mov ecx, dword [esi + 0xe0]
add esp, 0x18
mov ebx, eax
movzx eax, byte [esi + 0x124]
lea edx, [eax + eax*2]
shl edx, 2
mov eax, 0x1900
sub eax, edx
cmp ecx, eax
jl 0x785fc3
cmp bx, 0x10
jb 0x785fc3
mov eax, dword [0x91d3f0]
mov ecx, dword [eax + edi*4 + 0xb38]
mov edx, dword [eax + edi*4 + 0x438]
mov eax, dword [0x91cfa4]
push ecx
mov ecx, dword [eax + 0x40]
push edx
mov edx, dword [eax + 0x38]
push ecx
push edx
call fcn.006442f0
push eax
xor eax, eax
mov ax, word [esi + 0xec]
push eax
call fcn.006442a0
add esp, 0x18
cmp bx, ax
ja 0x785d11
movzx ecx, byte [esi + 0xd8]
mov edx, dword [0x91cfa4]
mov al, byte [ecx + edx + 0x35]
cmp al, 1
je 0x7860d1
test al, al
jne 0x785d11
mov eax, dword [0x91d3f0]
mov ecx, dword [eax + 0x58]
cmp ecx, dword [esi + 0x120]
jg 0x7860d1
pop edi
pop ebp
pop ebx
xor al, al
pop esi
add esp, 0x10
ret
mov al, byte [esp + 0x2c]
test al, al
je 0x7860d1
movzx eax, al
sub eax, 2
mov ebx, 0x34
jne 0x786020
mov ebx, 0x58
fild dword [esp + 0x14]
mov ebp, dword [0x91cfa4]
fstp dword [esp + 0x1c]
fld dword [ebp + 0x3c]
fsub dword [esp + 0x1c]
fld st(0)
call fcn.0043bd30
mov dl, byte [esp + 0x30]
cmp dl, 0x80
mov ecx, eax
jne 0x78605e
fcomp dword [0x8d2c40]
fnstsw ax
test ah, 1
jne 0x786060
pop edi
pop ebp
pop ebx
xor al, al
pop esi
add esp, 0x10
ret
fstp st(0)
test ecx, ecx
mov eax, ecx
jg 0x786068
neg eax
cmp eax, ebx
jge 0x78608b
mov eax, ecx
cdq
idiv edi
pop edi
pop ebp
pop ebx
neg eax
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
mov al, 1
fstp dword [esi + 0x2d4]
pop esi
add esp, 0x10
ret
cmp dl, 0x80
je 0x785d11
cmp dl, 1
je 0x7860a7
cmp dl, 0xfe
je 0x7860a7
cmp dl, 0xff
jne 0x785d11
cmp dword [esp + 0x14], 0xfffffdb0
jge 0x785d11
fld dword [ebp + 0x3c]
fcomp dword [esp + 0x1c]
fnstsw ax
test ah, 5
jp 0x785d11
mov dword [esi + 0x2d4], 0
pop edi
pop ebp
pop ebx
mov al, 2
pop esi
add esp, 0x10
ret