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

Disassembly:
sub esp, 0x8c
push esi
mov esi, ecx
mov ax, word [esi + 0x22]
cmp ax, 0x234
push edi
jne 0x6ae9bf
mov cl, byte [esi + 0x36]
and cl, 0xf8
cmp cl, 0x40
jne 0x6ae9bf
push 0
call fcn.0053fb70
add esp, 4
mov ecx, eax
call fcn.0053ffe0
test ax, ax
je 0x6af0fa
mov edx, dword [esi + 0x4d4]
mov ecx, dword [0x8d316c]
mov eax, dword [0xb7cb84]
add edx, ecx
cmp eax, edx
jbe 0x6af0fa
push 0x1388
push 0x26
lea ecx, [esp + 0x70]
call fcn.0073b430
fld dword [0xb7cb5c]
fmul dword [esi + 0x44]
mov ecx, dword [0x8d31a8]
mov eax, dword [0x8d31a4]
mov edx, dword [0x8d31ac]
fstp dword [esp + 8]
mov dword [esp + 0x34], ecx
fld dword [0xb7cb5c]
lea ecx, [esp + 0x30]
fmul dword [esi + 0x48]
mov dword [esp + 0x30], eax
mov eax, dword [esi + 0x14]
push ecx
fstp dword [esp + 0x10]
fld dword [0xb7cb5c]
mov dword [esp + 0x3c], edx
fmul dword [esi + 0x4c]
push eax
lea edx, [esp + 0x4c]
push edx
fstp dword [esp + 0x1c]
call fcn.0059c890
fld dword [esp + 0x14]
fadd dword [eax]
add esp, 0xc
push 1
push 0
fstp dword [esp + 0x20]
push 0
fld dword [esp + 0x18]
push 0
fadd dword [eax + 4]
push 0
fstp dword [esp + 0x30]
fld dword [esp + 0x24]
mov ecx, dword [esp + 0x30]
fadd dword [eax + 8]
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], ecx
lea eax, [esp + 0x44]
push eax
lea ecx, [esp + 0x48]
push ecx
fstp dword [esp + 0x3c]
mov edx, dword [esp + 0x3c]
push esi
lea ecx, [esp + 0x88]
mov dword [esp + 0x58], edx
call fcn.0073fb10
push 0x3ccccccd
lea edx, [esp + 0x40]
push edx
lea eax, [esp + 0x38]
push eax
push esi
lea ecx, [esp + 0x78]
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0x3dcccccd
call fcn.0073a3e0
push esi
push 0x26
push 0x91
mov ecx, 0xb6bc90
call fcn.00506f40
mov ecx, dword [0xb7cb84]
mov dword [esi + 0x4d4], ecx
pop edi
pop esi
add esp, 0x8c
ret
test byte [esi + 0x36], 0xf8
jne 0x6af0fa
cmp ax, 0x1b0
jne 0x6af0fa
mov al, byte [0x96a8b0]
test al, al
jne 0x6af0fa
mov ecx, dword [esi + 0x460]
test ecx, ecx
je 0x6af0fa
call fcn.005df8f0
test al, al
je 0x6af0fa
mov ecx, dword [esi + 0x460]
call fcn.00609560
mov edi, eax
test edi, edi
je 0x6af0fa
movzx eax, byte [0xb6f081]
imul eax, eax, 0x238
cmp word [eax + 0xb6f1a8], 0x12
jne 0x6aeb8b
lea edx, [eax + 0xb6f32c]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [esp + 8], eax
mov eax, dword [esi + 0x14]
push eax
lea eax, [esp + 0xc]
mov dword [esp + 0x10], ecx
push eax
lea ecx, [esp + 0x4c]
push ecx
mov dword [esp + 0x1c], edx
call fcn.0059c810
mov edx, dword [eax]
mov dword [esp + 0x14], edx
fld dword [esp + 0x14]
mov ecx, dword [eax + 4]
fchs
mov dword [esp + 0x18], ecx
fld dword [esp + 0x18]
fpatan
mov edx, dword [eax + 8]
mov dword [esp + 0x1c], edx
add esp, 0xc
fld dword [esp + 0x10]
fld dword [esp + 8]
fmul dword [esp + 8]
fld dword [esp + 0xc]
fmul dword [esp + 0xc]
faddp st(1)
fsqrt
fxch st(1)
fxch st(1)
fpatan
fadd dword [0x871068]
fstp dword [esp + 0x3c]
fld dword [esi + 0x94c]
fadd dword [0x858cb8]
fld st(1)
fcompp
fnstsw ax
test ah, 0x41
jne 0x6aeac2
fsub dword [0x858cbc]
jmp 0x6aeadf
fld dword [esi + 0x94c]
fsub dword [0x858cb8]
fld st(1)
fcompp
fnstsw ax
test ah, 5
jp 0x6aeadf
fadd dword [0x858cbc]
fld st(0)
fsub dword [esi + 0x94c]
fld dword [0xb7cb5c]
fmul dword [0x87106c]
fstp dword [esp + 0x14]
fcom dword [esp + 0x14]
fnstsw ax
test ah, 0x41
jne 0x6aeb12
fstp st(0)
fstp st(0)
fld dword [esp + 0x14]
fadd dword [esi + 0x94c]
jmp 0x6aeb2f
fld dword [esp + 0x14]
fchs
fxch st(1)
fcompp
fnstsw ax
test ah, 5
jp 0x6aeb2f
fstp st(0)
fld dword [esi + 0x94c]
fsub dword [esp + 0x14]
fstp dword [esi + 0x94c]
fld dword [esp + 0x3c]
fsub dword [esi + 0x950]
fld dword [0xb7cb5c]
fmul dword [0x871070]
fstp dword [esp + 0x14]
fcom dword [esp + 0x14]
fnstsw ax
test ah, 0x41
jne 0x6aeb62
fstp st(0)
fld dword [esp + 0x14]
jmp 0x6aebdf
fld dword [esp + 0x14]
fchs
fxch st(1)
fcompp
fnstsw ax
test ah, 5
jp 0x6aeb7f
fld dword [esi + 0x950]
fsub dword [esp + 0x14]
jmp 0x6aebe5
mov eax, dword [esp + 0x3c]
mov dword [esi + 0x950], eax
jmp 0x6aebeb
mov ecx, edi
call fcn.0053fc50
movsx ecx, ax
mov dword [esp + 0x3c], ecx
mov ecx, edi
fild dword [esp + 0x3c]
fmul dword [0xb7cb5c]
fmul dword [0x87106c]
fmul dword [0x858b88]
fsubr dword [esi + 0x94c]
fstp dword [esi + 0x94c]
call fcn.0053fc10
movsx edx, ax
mov dword [esp + 0x3c], edx
fild dword [esp + 0x3c]
fmul dword [0xb7cb5c]
fmul dword [0x871070]
fmul dword [0x858b88]
fadd dword [esi + 0x950]
fstp dword [esi + 0x950]
fld dword [esi + 0x94c]
fcomp dword [0x858cc0]
fld dword [esi + 0x94c]
fnstsw ax
test ah, 5
jp 0x6aec0c
fadd dword [0x858cbc]
jmp 0x6aec25
fcomp dword [0x858cb8]
fnstsw ax
test ah, 0x41
jne 0x6aec2b
fld dword [esi + 0x94c]
fsub dword [0x858cbc]
fstp dword [esi + 0x94c]
fld dword [esi + 0x950]
fcomp dword [0x871074]
fnstsw ax
test ah, 0x41
jne 0x6aec4e
mov eax, dword [0x871074]
mov dword [esi + 0x950], eax
jmp 0x6aecdf
fld dword [esi + 0x94c]
fcomp dword [0x858fe4]
fnstsw ax
test ah, 0x41
je 0x6aec95
fld dword [esi + 0x94c]
fcomp dword [0x859998]
fnstsw ax
test ah, 5
jnp 0x6aec95
fld dword [esi + 0x950]
fcomp dword [0x871078]
fnstsw ax
test ah, 5
jp 0x6aecdf
mov ecx, dword [0x871078]
mov dword [esi + 0x950], ecx
jmp 0x6aecdf
fld dword [esi + 0x94c]
push ecx
fcos
fmul dword [0x859918]
fstp dword [esp]
push 0xbf800000
call fcn.00420800
fld dword [0x87107c]
fsub dword [0x871078]
add esp, 8
fmulp st(1)
fsubr dword [0x871078]
fcom dword [esi + 0x950]
fnstsw ax
test ah, 0x41
jne 0x6aecdd
fstp dword [esi + 0x950]
jmp 0x6aecdf
fstp st(0)
mov ecx, edi
call fcn.0053ffe0
test ax, ax
je 0x6af0fa
movzx eax, byte [0xb7cd74]
mov ecx, dword [0xb7cb84]
imul eax, eax, 0x190
mov edx, dword [eax + 0xb7ce84]
lea eax, [eax + 0xb7ce84]
add edx, 0x320
cmp ecx, edx
jbe 0x6af0fa
mov dword [eax], ecx
fld dword [esi + 0x94c]
fchs
mov eax, dword [esi + 0x14]
fsin
lea ecx, [esp + 0x30]
push ecx
push eax
lea edx, [esp + 0x4c]
push edx
fstp dword [esp + 0x3c]
fld dword [esi + 0x94c]
fcos
fstp dword [esp + 0x40]
fld dword [esi + 0x950]
fsin
fstp dword [esp + 0x44]
call fcn.0059c790
mov ecx, dword [eax]
mov dword [esp + 0x3c], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x40], edx
mov eax, dword [eax + 8]
mov dword [esp + 0x44], eax
mov eax, dword [esi + 0x6a0]
add esp, 0xc
test eax, eax
je 0x6aee2b
push eax
call fcn.007f0990
mov ecx, dword [eax + 0x30]
add eax, 0x30
mov dword [esp + 0x1c], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x20], edx
mov eax, dword [eax + 8]
mov dword [esp + 0x24], eax
mov eax, dword [esi + 0x14]
add esp, 4
test eax, eax
je 0x6aeda9
add eax, 0x30
jmp 0x6aedac
lea eax, [esi + 4]
push eax
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x4c]
push edx
call fcn.0040fe60
mov ecx, eax
mov edx, dword [ecx]
mov dword [esp + 0x14], edx
mov edx, dword [ecx + 4]
mov dword [esp + 0x18], edx
mov ecx, dword [ecx + 8]
mov dword [esp + 0x1c], ecx
mov ecx, dword [eax]
mov edx, esp
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [edx + 4], ecx
lea ecx, [esp + 0x50]
push ecx
mov ecx, esi
mov dword [edx + 8], eax
call fcn.00542ce0
mov edx, dword [eax]
mov dword [esp + 8], edx
mov ecx, dword [eax + 4]
mov dword [esp + 0xc], ecx
mov edx, dword [eax + 8]
mov eax, dword [0xb7cb5c]
push eax
lea ecx, [esp + 0xc]
mov dword [esp + 0x14], edx
push ecx
lea edx, [esp + 0x4c]
push edx
call fcn.0040fec0
add esp, 0xc
push eax
lea ecx, [esp + 0x1c]
call fcn.00411a00
jmp 0x6aeead
fld dword [esi + 0x94c]
mov ecx, dword [esi + 0x14]
fsin
lea eax, [esp + 8]
push eax
push ecx
lea edx, [esp + 0x4c]
push edx
fld dword [esi + 0x94c]
fcos
fld dword [0xc1c208]
fmul st(1)
fld st(2)
fmul dword [0xc1c20c]
fsubp st(1)
fstp dword [esp + 0x14]
fmul dword [0xc1c20c]
fxch st(1)
fmul dword [0xc1c208]
faddp st(1)
fld dword [0xc1c210]
fsub dword [0x858624]
fld dword [esp + 0x14]
fadd dword [0x8d318c]
fstp dword [esp + 0x14]
fld dword [0x8d3190]
fadd st(2)
fstp dword [esp + 0x18]
fld dword [0x8d3194]
fadd st(1)
fstp dword [esp + 0x1c]
fstp st(0)
fstp st(0)
call fcn.0059c890
add esp, 0xc
mov eax, dword [esi + 0x14]
test eax, eax
je 0x6aeeb9
add eax, 0x30
jmp 0x6aeebc
lea eax, [esi + 4]
push eax
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x4c]
push ecx
call fcn.0040fe60
fld dword [0x871080]
fmul dword [esi + 0x8c]
mov edi, eax
mov edx, eax
mov eax, dword [edx]
mov dword [esp + 0x14], eax
mov ecx, dword [edx + 4]
add esp, 0xc
lea eax, [esp + 0x30]
push eax
push ecx
mov dword [esp + 0x14], ecx
fstp dword [esp]
mov edx, dword [edx + 8]
lea ecx, [esp + 0x58]
push ecx
mov dword [esp + 0x1c], edx
call fcn.0040fe90
mov ecx, dword [edi]
add esp, 0xc
push 1
sub esp, 0xc
mov edx, esp
mov dword [edx], ecx
mov ecx, dword [edi + 4]
mov dword [edx + 4], ecx
mov ecx, dword [edi + 8]
mov dword [edx + 8], ecx
mov ecx, dword [eax]
sub esp, 0xc
mov edx, esp
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [edx + 4], ecx
mov ecx, esi
mov dword [edx + 8], eax
call fcn.00542b50
fld dword [esp + 0x30]
fmul dword [0x858b34]
mov eax, dword [esi + 0x460]
fld dword [esp + 0x34]
lea ecx, [esp + 0x24]
fmul dword [0x858b34]
push ecx
fld dword [esp + 0x3c]
lea edx, [esp + 0x1c]
fmul dword [0x858b34]
push edx
push eax
push esi
fstp dword [esp + 0x68]
fxch st(1)
fadd dword [esp + 0x28]
fstp dword [esp + 0x34]
fld dword [esp + 0x2c]
fadd st(1)
fstp dword [esp + 0x38]
fstp st(0)
fld dword [esp + 0x30]
fadd dword [esp + 0x68]
fstp dword [esp + 0x3c]
call fcn.0073d1e0
push 0
push 0
push 1
push 1
push 1
mov dword [esp + 0x60], 0
mov dword [0xb7cd68], esi
push 1
push 1
push 1
lea ecx, [esp + 0x6c]
push ecx
lea edx, [esp + 0x9c]
push edx
lea eax, [esp + 0x5c]
push eax
lea ecx, [esp + 0x54]
push ecx
call fcn.0056ba00
mov eax, dword [esp + 0x7c]
add esp, 0x40
test eax, eax
mov dword [0xb7cd68], 0
je 0x6af087
fld dword [esp + 0x68]
mov edx, dword [esp + 0x68]
fsub dword [esp + 0x18]
mov eax, dword [esp + 0x6c]
fld dword [esp + 0x6c]
mov ecx, dword [esp + 0x70]
fsub dword [esp + 0x1c]
mov dword [esp + 0x24], edx
fld dword [esp + 0x70]
mov dword [esp + 0x28], eax
fsub dword [esp + 0x20]
push 0
push 0xbf800000
mov dword [esp + 0x34], ecx
fstp dword [esp + 0x60]
fxch st(1)
push 1
fmul dword [0x858cec]
push 0
sub esp, 0xc
mov edx, esp
fstp dword [esp + 0x60]
fmul dword [0x858cec]
fld dword [esp + 0x74]
fmul dword [0x858cec]
fld dword [esp + 0x84]
fsub dword [esp + 0x60]
fstp dword [esp + 0x40]
mov eax, dword [esp + 0x40]
fld dword [esp + 0x44]
mov dword [edx], eax
fsub st(2)
fstp dword [esp + 0x44]
mov ecx, dword [esp + 0x44]
fld dword [esp + 0x48]
mov dword [edx + 4], ecx
fsub st(1)
fstp dword [esp + 0x48]
mov eax, dword [esp + 0x48]
mov dword [edx + 8], eax
fstp st(0)
fstp st(0)
jmp 0x6af0ab
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
push 0
push 0xbf800000
push 1
push 0
sub esp, 0xc
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [esp + 0x48]
mov dword [ecx + 4], eax
mov dword [ecx + 8], edx
push 0xa
push 0xffffffffffffffff
call fcn.0056e210
add esp, 4
push eax
push 0
call fcn.00736a50
fld dword [esp + 0x4c]
fsub dword [esp + 0x40]
add esp, 0x28
lea eax, [esp + 0x5c]
push eax
fstp dword [esp + 0x60]
lea ecx, [esp + 0x1c]
fld dword [esp + 0x2c]
push ecx
fsub dword [esp + 0x24]
mov ecx, 0xa9ae00
fstp dword [esp + 0x68]
fld dword [esp + 0x34]
fsub dword [esp + 0x28]
fstp dword [esp + 0x6c]
call fcn.004a0fa0
pop edi
pop esi
add esp, 0x8c
ret