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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x38
push ebx
push ebp
xor ebp, ebp
push esi
mov esi, ecx
movzx eax, word [esi + 0x13c]
add word [esi + 0x81c], 0xffff
cmp ax, 0x31
push edi
mov dword [esi + 0x7c4], ebp
mov dword [esi + 0x7c8], ebp
mov dword [esi + 0x754], ebp
mov dword [esi + 0x758], ebp
mov dword [esi + 0x75c], ebp
mov dword [esi + 0x760], ebp
mov dword [esi + 0x764], ebp
mov dword [esi + 0x768], ebp
mov dword [esi + 0x76c], ebp
mov dword [esi + 0x770], ebp
jle 0x69a39b
cmp ax, 0x96
jge 0x69a39b
mov word [esi + 0x820], bp
mov word [esi + 0x81e], bp
mov word [esi + 0x81a], bp
mov word [esi + 0x81c], bp
mov word [esi + 0x818], bp
cmp ax, 0xc7
jg 0x69a3af
mov word [esi + 0x820], bp
mov word [esi + 0x818], bp
mov ebx, 1
cmp byte [esi + 0x5e6], bl
jl case.0x69a8c7.16
push ebp
lea ecx, [esi + 0x5e8]
call fcn.00456c80
movsx eax, word [eax]
cmp eax, 0xb
jg 0x69a8b2
cmp eax, 8
jge 0x69a857
cmp eax, 7
ja case.0x69a8c7.16
movzx eax, byte [eax + 0x69ad4c]
jmp dword [eax*4 + 0x69ad44]
movzx ecx, word [esi + 0x81e]
cmp cx, bp
jne 0x69a433
movzx eax, word [esi + 0x13c]
cmp ax, 0x2bc
je 0x69a416
cmp ax, bp
jne 0x69a433
mov edx, dword [esi]
mov eax, dword [edx + 8]
push 0x302
mov ecx, esi
call eax
mov word [esi + 0x81e], bx
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
cmp cx, bx
jne 0x69a470
movzx eax, word [esi + 0x13c]
cmp ax, 0x2bc
je 0x69a44a
cmp ax, bp
jne 0x69a470
mov ecx, esi
call fcn.00487c20
mov edx, dword [esi]
mov eax, dword [edx + 8]
push 0x2c6
mov ecx, esi
call eax
mov word [esi + 0x81e], 2
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
cmp cx, 2
jne case.0x69a8c7.16
movzx eax, word [esi + 0x13c]
cmp ax, 0x2bc
je 0x69a490
cmp ax, bp
jne case.0x69a8c7.16
fld dword [0x8575a4]
push 8
fcomp dword [esi + 0xec]
fnstsw ax
test ah, 1
jne 0x69a4e4
call fcn.004099f0
test eax, eax
mov dword [esp + 0x28], eax
fild dword [esp + 0x28]
jge 0x69a4bc
fadd dword [0x871554]
movsx ecx, byte [esi + 0x104]
mov dword [esp + 0x24], ecx
push 4
fild dword [esp + 0x28]
fmulp st(1)
fstp dword [esi + 0x85c]
call fcn.004099f0
mov dword [esp + 0x2c], eax
fild dword [esp + 0x2c]
jmp 0x69a523
call fcn.004099f0
test eax, eax
mov dword [esp + 0x28], eax
fild dword [esp + 0x28]
jge 0x69a4fb
fadd dword [0x871554]
movsx edx, byte [esi + 0x104]
fchs
mov dword [esp + 0x24], edx
push 4
fild dword [esp + 0x28]
fmulp st(1)
fstp dword [esi + 0x85c]
call fcn.004099f0
mov dword [esp + 0x2c], eax
fild dword [esp + 0x2c]
add esp, 8
test eax, eax
jge 0x69a530
fadd dword [0x871554]
fadd qword [0x858eb8]
mov eax, dword [esi]
mov edx, dword [eax + 8]
push 0x2bd
fstp dword [esi + 0x860]
mov ecx, esi
fld dword [0x85ad04]
fstp dword [esi + 0x864]
call edx
mov word [esi + 0x81e], bx
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
movzx eax, word [esi + 0x81e]
cmp ax, bp
jne 0x69a5a1
movzx ecx, word [esi + 0x13c]
cmp cx, 0x2bc
je 0x69a584
cmp cx, bp
jne 0x69a5a1
mov eax, dword [esi]
mov edx, dword [eax + 8]
push 0x302
mov ecx, esi
call edx
mov word [esi + 0x81e], bx
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
cmp ax, bx
mov edi, 2
jne 0x69a817
movzx eax, word [esi + 0x13c]
cmp ax, 0x2bc
je 0x69a5c5
cmp ax, bp
jne 0x69a817
mov ecx, esi
call fcn.00487c20
push 3
call fcn.004099f0
mov word [esi + 0x820], ax
mov eax, dword [0x8971d4]
add esp, 4
cmp eax, ebp
je 0x69a5ea
cmp eax, ebx
jne 0x69a5f1
mov word [esi + 0x820], bp
movzx eax, word [esi + 0x820]
cmp ax, bp
jne 0x69a673
push 8
call fcn.004099f0
test eax, eax
mov dword [esp + 0x28], eax
fild dword [esp + 0x28]
jge 0x69a616
fadd dword [0x871554]
fsubr qword [0x859910]
push 4
fstp dword [esi + 0x85c]
call fcn.004099f0
mov dword [esp + 0x2c], eax
fild dword [esp + 0x2c]
add esp, 8
test eax, eax
jge 0x69a63e
fadd dword [0x871554]
fadd qword [0x858eb8]
mov eax, dword [esi]
mov edx, dword [eax + 8]
push 0x2bd
fstp dword [esi + 0x860]
mov ecx, esi
fld dword [0x85ad04]
fstp dword [esi + 0x864]
call edx
mov word [esi + 0x81e], di
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
cmp ax, bx
jne 0x69a773
push 4
call fcn.004099f0
test eax, eax
mov dword [esp + 0x28], eax
fild dword [esp + 0x28]
jge 0x69a695
fadd dword [0x871554]
fadd qword [0x858eb8]
mov eax, dword [esi + 0x170]
push 6
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fst dword [esi + 0x860]
fld dword [0x85ad04]
fstp dword [esi + 0x864]
fld dword [eax + 0xec]
fsub dword [esi + 0xec]
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fabs
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fxch st(1)
fadd st(0), st(0)
fmul qword [0x857f50]
fdivp st(1)
fstp dword [esi + 0x85c]
call fcn.004099f0
sub eax, 3
add esp, 8
test eax, eax
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
jge 0x69a70a
fadd dword [0x871554]
fadd dword [esi + 0x85c]
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fst dword [esi + 0x85c]
fld dword [0x86782c]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jp 0x69a737
fstp dword [esi + 0x85c]
jmp 0x69a739
fstp st(0)
fld dword [0x85b908]
fcom dword [esi + 0x85c]
fnstsw ax
test ah, 1
jne 0x69a754
fstp dword [esi + 0x85c]
jmp 0x69a756
fstp st(0)
mov edx, dword [esi]
mov eax, dword [edx + 8]
push 0x2bd
mov ecx, esi
call eax
mov word [esi + 0x81e], di
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
cmp ax, di
jne 0x69a817
fld dword [0x8575a4]
push 8
fcomp dword [esi + 0xec]
fnstsw ax
test ah, 1
jne 0x69a7d3
call fcn.004099f0
test eax, eax
mov dword [esp + 0x28], eax
fild dword [esp + 0x28]
jge 0x69a7a8
fadd dword [0x871554]
movsx ecx, byte [esi + 0x104]
mov dword [esp + 0x24], ecx
push 4
fild dword [esp + 0x28]
fmulp st(1)
fstp dword [esi + 0x85c]
call fcn.004099f0
mov dword [esp + 0x2c], eax
fild dword [esp + 0x2c]
jmp 0x69a631
call fcn.004099f0
test eax, eax
mov dword [esp + 0x28], eax
fild dword [esp + 0x28]
jge 0x69a7ea
fadd dword [0x871554]
movsx edx, byte [esi + 0x104]
fchs
mov dword [esp + 0x24], edx
push 4
fild dword [esp + 0x28]
fmulp st(1)
fstp dword [esi + 0x85c]
call fcn.004099f0
mov dword [esp + 0x2c], eax
fild dword [esp + 0x2c]
jmp 0x69a631
cmp word [esi + 0x81e], di
jne case.0x69a8c7.16
movzx eax, word [esi + 0x13c]
cmp ax, 0x2bc
je 0x69a83a
cmp ax, bp
jne case.0x69a8c7.16
mov eax, dword [esi]
mov edx, dword [eax + 8]
push 0x2d0
mov ecx, esi
call edx
mov word [esi + 0x81e], bx
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
movzx ecx, word [esi + 0x81e]
cmp cx, bp
jne 0x69a87d
movzx eax, word [esi + 0x13c]
cmp ax, 0x2bc
je 0x69a584
cmp ax, bp
je 0x69a584
cmp cx, bx
jne case.0x69a8c7.16
movzx eax, word [esi + 0x13c]
cmp ax, 0x2bc
je 0x69a89c
cmp ax, bp
jne case.0x69a8c7.16
mov eax, dword [esi]
mov edx, dword [eax + 8]
push 0x2da
mov ecx, esi
call edx
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
sub eax, 0xc
cmp eax, 0xf3
ja case.0x69a8c7.16
movzx eax, byte [eax + 0x69ad60]
jmp dword [eax*4 + 0x69ad54]
cmp word [esi + 0x13c], 0x2bc
jne 0x69a8e3
mov edx, dword [esi]
mov eax, dword [edx + 8]
push ebp
mov ecx, esi
call eax
mov edx, dword [esi]
mov eax, dword [edx + 0x58]
mov ecx, esi
call eax
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
movzx ecx, word [esi + 0x81e]
cmp cx, bp
jne 0x69a925
movzx eax, word [esi + 0x13c]
cmp ax, 0x2bc
je 0x69a93f
cmp ax, bp
je 0x69a93f
mov edi, 2
mov word [esi + 0x51c], di
mov word [esi + 0x520], di
cmp cx, bx
jne case.0x69a8c7.16
mov eax, dword [0x8971d4]
cmp eax, 3
ja case.default.0x69a938
jmp dword [eax*4 + 0x69ae54]
mov edx, dword [esi]
mov eax, dword [edx + 8]
push 0x2e4
mov ecx, esi
mov word [esi + 0x81e], bx
call eax
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
fld dword [0x858830]
mov edi, 0x78
fstp dword [esp + 0x10]
lea ecx, [edi + 0x78]
jmp 0x69a9ba
fld dword [0x858830]
mov edi, 0x82
fstp dword [esp + 0x10]
mov ecx, 0x12c
jmp 0x69a9ba
fld dword [0x86782c]
mov edi, 0x8c
fstp dword [esp + 0x10]
mov ecx, 0x12c
jmp 0x69a9ba
fld dword [0x86782c]
mov edi, 0x96
fstp dword [esp + 0x10]
mov ecx, 0x12c
jmp 0x69a9ba
mov edi, dword [esp + 0x24]
mov ecx, dword [esp + 0x24]
add dword [esi + 0x890], ebx
mov eax, dword [esi + 0x890]
cdq
idiv ecx
test edx, edx
jne 0x69ab76
cmp dword [0x8971d4], ebp
je 0x69ab76
push ebp
mov ecx, esi
call fcn.00464980
push 0x1e
call fcn.004099f0
add esp, 4
test eax, eax
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
jge 0x69aa01
fadd dword [0x871554]
fstp dword [esp + 0x20]
fldz
fstp dword [esp + 0x1c]
fld dword [esp + 0x10]
fld st(0)
fst qword [esp + 0x30]
fcomp qword [0x8677b0]
fnstsw ax
test ah, 0x41
jne 0x69aab3
fdivr qword [0x8581e8]
fstp qword [esp + 0x28]
fld dword [esp + 0x1c]
fmul qword [esp + 0x28]
movzx edx, byte [esi + 0x104]
push 3
lea ecx, [esp + 0x40]
fadd dword [esp + 0x24]
push ecx
push ebx
push edx
fstp dword [esp + 0x4c]
sub esp, 8
fld dword [0x867860]
mov ecx, esi
fstp dword [esp + 0x58]
fldz
fstp dword [esp + 0x5c]
fld dword [esi + 0xf0]
fadd qword [0x857b20]
fstp dword [esp + 0x3c]
fld dword [esp + 0x3c]
fstp dword [esp + 4]
fld dword [esi + 0xec]
fstp dword [esp]
push 0x3a2
call fcn.0046eb30
fld dword [esp + 0x1c]
fadd qword [0x8677c8]
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fcom qword [esp + 0x30]
fnstsw ax
test ah, 5
jnp 0x69aa34
fstp st(0)
fld dword [esp + 0x10]
cmp dword [0x8971d4], 3
jne 0x69ab74
fldz
fstp dword [esp + 0x1c]
fld st(0)
fst qword [esp + 0x10]
fcomp qword [0x8677b0]
fnstsw ax
test ah, 0x41
jne 0x69ab74
fld st(0)
fdivr qword [0x8581e8]
fstp qword [esp + 0x28]
fdivr qword [0x871510]
fstp qword [esp + 0x30]
fld dword [esp + 0x1c]
fmul qword [esp + 0x28]
movzx ecx, byte [esi + 0x104]
push 3
lea eax, [esp + 0x40]
fadd dword [esp + 0x24]
push eax
push ebx
push ecx
fadd qword [esp + 0x40]
sub esp, 8
mov ecx, esi
fstp dword [esp + 0x54]
fld dword [0x85bca4]
fstp dword [esp + 0x58]
fldz
fstp dword [esp + 0x5c]
fld dword [esi + 0xf0]
fadd qword [0x857b20]
fstp dword [esp + 0x3c]
fld dword [esp + 0x3c]
fstp dword [esp + 4]
fld dword [esi + 0xec]
fstp dword [esp]
push 0x3a2
call fcn.0046eb30
fld dword [esp + 0x1c]
fadd qword [0x8677c8]
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fcom qword [esp + 0x10]
fnstsw ax
test ah, 5
jnp 0x69aaf7
fstp st(0)
mov eax, dword [esi + 0x890]
cdq
idiv edi
cmp edx, 0x3c
jne 0x69abe4
fldz
movzx eax, byte [esi + 0x104]
fst dword [esp + 0x3c]
push 3
fstp dword [esp + 0x44]
lea edx, [esp + 0x40]
fld dword [0x867860]
push edx
fstp dword [esp + 0x4c]
push ebx
fld dword [esi + 0xf0]
push eax
fadd qword [0x857b20]
sub esp, 8
mov ecx, esi
mov dword [esi + 0x894], ebx
mov dword [esi + 0x898], ebp
fstp dword [esp + 0x3c]
fld dword [esp + 0x3c]
fstp dword [esp + 4]
fld dword [esi + 0xec]
fstp dword [esp]
push 0x3a2
call fcn.0046eb30
cmp dword [esi + 0x894], ebp
jle case.0x69a8c7.16
mov eax, dword [0x8971d4]
cmp eax, 3
ja case.default.0x69abfa
jmp dword [eax*4 + 0x69ae64]
fld dword [0x867810]
jmp 0x69ac1f
fld dword [0x85882c]
jmp 0x69ac1f
fld dword [0x85bca4]
jmp 0x69ac1f
fld dword [0x867860]
fstp dword [esp + 0x1c]
mov ecx, dword [esi + 0x898]
and ecx, 0x80000003
jns 0x69ac36
dec ecx
or ecx, 0xfffffffc
inc ecx
jne 0x69ad10
push 0x168
call fcn.004099f0
test eax, eax
mov dword [esp + 0x28], eax
fild dword [esp + 0x28]
jge 0x69ac58
fadd dword [0x871554]
push 0x1e0
fstp dword [esp + 0x44]
call fcn.004099f0
add esp, 8
test eax, eax
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
jge 0x69ac7b
fadd dword [0x871554]
fadd qword [0x8581f8]
movzx eax, byte [esi + 0x104]
push 3
lea edx, [esp + 0x40]
fstp dword [esp + 0x44]
push edx
fld dword [0x8589f0]
push ebx
fstp dword [esp + 0x50]
push eax
fld dword [esp + 0x4c]
push ecx
fchs
fstp dword [esp]
call fcn.004095f0
fmul dword [esp + 0x54]
fadd dword [esi + 0xf0]
fadd qword [0x857b20]
fstp dword [esp + 0x38]
fld dword [esp + 0x38]
fstp dword [esp]
push ecx
fld dword [esp + 0x54]
fchs
fstp dword [esp]
call fcn.004095f0
movsx ecx, byte [esi + 0x104]
fmul dword [esp + 0x58]
mov dword [esp + 0x3c], ecx
mov ecx, esi
fild dword [esp + 0x3c]
fmulp st(1)
fadd dword [esi + 0xec]
fstp dword [esp + 0x3c]
fld dword [esp + 0x3c]
fstp dword [esp]
push 0x3a2
call fcn.0046eb30
add dword [esi + 0x894], ebx
mov edx, dword [esi + 0x894]
sub edx, ebx
mov dword [esp + 0x24], edx
fild dword [esp + 0x24]
fld dword [esp + 0x1c]
fcompp
fnstsw ax
test ah, 5
jp 0x69ad33
mov dword [esi + 0x894], ebp
add dword [esi + 0x898], ebx
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret