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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xc4
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
test edi, edi
je 0x469ce2
mov esi, dword [ebp + 0xc]
test esi, esi
je 0x469ce2
lea ecx, [esp + 0x80]
call fcn.0064dc20
lea ecx, [esp + 0xb8]
call fcn.0064dc20
mov eax, dword [edi]
lea ecx, [esp + 0x48]
push ecx
mov ecx, edi
call dword [eax + 0x7c]
mov edx, dword [eax]
mov ecx, dword [eax + 4]
mov dword [esp + 0x80], edx
mov dword [esp + 0x84], ecx
mov edx, dword [eax + 8]
mov ecx, dword [eax + 0xc]
mov dword [esp + 0x88], edx
mov dword [esp + 0x8c], ecx
mov edx, dword [eax + 0x10]
mov eax, dword [eax + 0x14]
mov dword [esp + 0x94], eax
mov dword [esp + 0x90], edx
mov edx, dword [edi]
lea eax, [esp + 0x48]
push eax
mov ecx, edi
call dword [edx + 0x84]
fld qword [eax]
xor ebx, ebx
fst qword [esp + 0xb8]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0xc]
mov dword [esp + 0xc0], ecx
mov dword [esp + 0xc4], edx
mov ecx, dword [eax + 0x10]
mov edx, dword [eax + 0x14]
mov eax, dword [esp + 0x80]
mov dword [esp + 0xc8], ecx
mov ecx, dword [esp + 0x84]
mov dword [esp + 0xcc], edx
mov edx, dword [esp + 0x88]
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0xc0]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0xc4]
mov dword [esp + 0x48], ecx
fstp qword [esp + 0x28]
mov ecx, esi
mov dword [esp + 0x14], eax
mov dword [esp + 0x4c], edx
mov dword [esp + 0x30], ebx
call fcn.004fe620
fstp qword [esp + 0x20]
lea eax, [esp + 0x78]
lea ecx, [esp + 0x60]
push eax
lea edx, [esp + 0x6c]
push ecx
lea eax, [esp + 0x78]
push edx
push eax
push edi
call fcn.00469020
lea ecx, [esp + 0xc4]
lea edx, [esp + 0xb4]
push ecx
lea eax, [esp + 0xb0]
push edx
lea ecx, [esp + 0xc4]
push eax
push ecx
push esi
call fcn.00469020
fld qword [esp + 0x38]
fsub qword [esp + 0x70]
add esp, 0x28
fabs
fcomp qword [0x691f50]
fnstsw ax
test ah, 1
je 0x46964b
mov edi, dword [ebp + 0x1c]
cmp edi, 2
je 0x469379
fld qword [esp + 0xa0]
fsub qword [0x693230]
fcomp qword [esp + 0x10]
fnstsw ax
test ah, 0x41
je 0x469ce2
fld qword [esp + 0xb0]
fadd qword [0x693230]
fcomp qword [esp + 0x10]
fnstsw ax
test ah, 1
jne 0x469ce2
mov ecx, esi
call fcn.004fe4e0
fsubr qword [esp + 0x10]
fst qword [esp + 0x18]
fabs
fld qword [esp + 0x20]
fadd qword [0x693230]
fcompp
fnstsw ax
test ah, 1
jne 0x469ce2
fld qword [esp + 0x20]
fsub qword [0x693230]
fcomp qword [esp + 0x18]
fnstsw ax
test ah, 1
je 0x46946c
cmp edi, 3
je 0x469ce2
cmp edi, 4
je 0x469ce2
cmp edi, 1
jne 0x46940d
mov ecx, esi
call fcn.00531210
fld qword [esp + 0x70]
fsub qword [0x693230]
fcompp
fnstsw ax
test ah, 0x41
je 0x469ce2
mov ecx, esi
call fcn.00531210
fld qword [esp + 0x68]
fadd qword [0x693230]
fcompp
fnstsw ax
test ah, 1
jne 0x469ce2
fld qword [0x706cb0]
fmul qword [0x691ac8]
cmp edi, 2
fstp qword [esp + 0x10]
je 0x469439
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push esi
push edx
push eax
call fcn.00469070
add esp, 0xc
test eax, eax
je 0x469463
mov ecx, esi
call fcn.00531210
mov ecx, dword [ebp + 0x10]
fstp qword [ecx]
mov ecx, esi
call fcn.004fe4e0
fadd qword [esp + 0x20]
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x18]
mov ebx, 0x101
fstp qword [edx]
fld qword [esp + 0x10]
fstp qword [eax]
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
fld qword [0x693230]
fsub qword [esp + 0x20]
fcomp qword [esp + 0x18]
fnstsw ax
test ah, 0x41
jne 0x469537
cmp edi, 3
je 0x469ce2
cmp edi, 4
je 0x469ce2
cmp edi, 1
jne 0x4694d8
mov ecx, esi
call fcn.00531210
fld qword [esp + 0x70]
fsub qword [0x693230]
fcompp
fnstsw ax
test ah, 0x41
je 0x469ce2
mov ecx, esi
call fcn.00531210
fld qword [esp + 0x68]
fadd qword [0x693230]
fcompp
fnstsw ax
test ah, 1
jne 0x469ce2
fld qword [0x706cb0]
fmul qword [0x691ad8]
cmp edi, 2
fstp qword [esp + 0x10]
je 0x469504
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
push esi
push ecx
push edx
call fcn.00469070
add esp, 0xc
test eax, eax
je 0x46952e
mov ecx, esi
call fcn.00531210
mov eax, dword [ebp + 0x10]
mov ecx, esi
fstp qword [eax]
call fcn.004fe4e0
fsub qword [esp + 0x20]
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 0x18]
mov ebx, 0x101
fstp qword [ecx]
fld qword [esp + 0x10]
fstp qword [edx]
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
fld qword [esp + 0x20]
fmul qword [esp + 0x20]
fld qword [esp + 0x18]
fmul qword [esp + 0x18]
mov edi, dword [ebp + 0x14]
mov eax, dword [ebp + 0x10]
sub eax, edi
lea ebx, [esp + 0x48]
fsubp st(1)
mov dword [esp + 0x40], eax
mov eax, dword [ebp + 0x18]
sub eax, edi
mov dword [esp + 0x34], 2
fsqrt
mov dword [esp + 0x44], eax
fst qword [esp + 0x48]
fchs
fstp qword [esp + 0x50]
mov eax, dword [ebp + 0x1c]
cmp eax, 1
je 0x469583
cmp eax, 4
jne 0x4695bf
mov ecx, esi
call fcn.00531210
fadd qword [ebx]
fld qword [esp + 0x70]
fsub qword [0x693230]
fcompp
fnstsw ax
test ah, 0x41
je 0x46962e
mov ecx, esi
call fcn.00531210
fadd qword [ebx]
fld qword [esp + 0x68]
fadd qword [0x693230]
fcompp
fnstsw ax
test ah, 1
jne 0x46962e
fld qword [esp + 0x18]
fld qword [ebx]
fpatan
sub esp, 8
fstp qword [esp]
call fcn.00657310
mov eax, dword [ebp + 0x1c]
add esp, 8
fstp qword [esp + 0x10]
cmp eax, 2
je 0x4695f8
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
push esi
push eax
push ecx
call fcn.00469070
add esp, 0xc
test eax, eax
je 0x46962e
mov ecx, esi
call fcn.00531210
fadd qword [ebx]
mov edx, dword [esp + 0x40]
mov ecx, esi
fstp qword [edx + edi]
call fcn.004fe4e0
fadd qword [esp + 0x18]
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x30]
inc ecx
add edi, 8
mov dword [esp + 0x30], ecx
fstp qword [edi - 8]
fld qword [esp + 0x10]
fstp qword [eax + edi - 8]
mov eax, dword [esp + 0x34]
add ebx, 8
dec eax
mov dword [esp + 0x34], eax
jne 0x469576
mov eax, dword [esp + 0x30]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
fld qword [esp + 0x38]
fsub qword [esp + 0x28]
fabs
fcomp qword [0x691f50]
fnstsw ax
test ah, 1
je 0x469956
mov edi, dword [ebp + 0x1c]
cmp edi, 2
je 0x4696a6
fld qword [esp + 0x38]
fsub qword [esp + 0xa8]
fcomp qword [0x69dc20]
fnstsw ax
test ah, 1
jne 0x469ce2
fld qword [esp + 0x98]
fsub qword [esp + 0x38]
fcomp qword [0x69dc20]
fnstsw ax
test ah, 1
jne 0x469ce2
mov ecx, esi
call fcn.00531210
fsubr qword [esp + 0x38]
fst qword [esp + 0x28]
fabs
fld qword [esp + 0x20]
fadd qword [0x693230]
fcompp
fnstsw ax
test ah, 1
jne 0x469ce2
fld qword [esp + 0x20]
fsub qword [esp + 0x28]
fcomp qword [0x693230]
fnstsw ax
test ah, 1
je 0x46978f
cmp edi, 3
je 0x469ce2
cmp edi, 4
je 0x469ce2
cmp edi, 1
jne 0x46973f
mov ecx, esi
call fcn.004fe4e0
fld qword [esp + 0x60]
fsub qword [0x693230]
fcompp
fnstsw ax
test ah, 0x41
je 0x469ce2
mov ecx, esi
call fcn.004fe4e0
fld qword [esp + 0x78]
fadd qword [0x693230]
fcompp
fnstsw ax
test ah, 1
je 0x469744
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp edi, 2
je 0x469755
push esi
push 0
push 0
call fcn.00469070
add esp, 0xc
test eax, eax
je 0x469786
mov ecx, esi
call fcn.00531210
fadd qword [esp + 0x20]
mov ecx, dword [ebp + 0x10]
fstp qword [ecx]
mov ecx, esi
call fcn.004fe4e0
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x18]
mov ebx, 0x101
fstp qword [edx]
mov dword [eax], 0
mov dword [eax + 4], 0
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
fld qword [0x693230]
fsub qword [esp + 0x20]
fcomp qword [esp + 0x28]
fnstsw ax
test ah, 0x41
jne 0x469844
cmp edi, 3
je 0x469ce2
cmp edi, 4
je 0x469ce2
cmp edi, 1
jne 0x4697fb
mov ecx, esi
call fcn.004fe4e0
fld qword [esp + 0x60]
fsub qword [0x693230]
fcompp
fnstsw ax
test ah, 0x41
je 0x469ce2
mov ecx, esi
call fcn.004fe4e0
fld qword [esp + 0x78]
fadd qword [0x693230]
fcompp
fnstsw ax
test ah, 1
jne 0x469ce2
mov eax, dword [0x706cb0]
mov ecx, dword [0x706cb4]
cmp edi, 2
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
je 0x469828
mov edx, ecx
push esi
push edx
push eax
call fcn.00469070
add esp, 0xc
test eax, eax
je 0x469463
mov ecx, esi
call fcn.00531210
fsub qword [esp + 0x20]
mov ecx, dword [ebp + 0x10]
fstp qword [ecx]
mov ecx, esi
call fcn.004fe4e0
jmp 0x469450
fld qword [esp + 0x20]
fmul qword [esp + 0x20]
fld qword [esp + 0x28]
fmul qword [esp + 0x28]
mov edi, dword [ebp + 0x14]
mov eax, dword [ebp + 0x10]
sub eax, edi
lea ebx, [esp + 0x48]
fsubp st(1)
mov dword [esp + 0x40], eax
mov eax, dword [ebp + 0x18]
sub eax, edi
mov dword [esp + 0x34], 2
fsqrt
mov dword [esp + 0x44], eax
fst qword [esp + 0x48]
fchs
fstp qword [esp + 0x50]
mov eax, dword [ebp + 0x1c]
cmp eax, 1
je 0x469890
cmp eax, 4
jne 0x4698cc
mov ecx, esi
call fcn.004fe4e0
fadd qword [ebx]
fld qword [esp + 0x60]
fsub qword [0x693230]
fcompp
fnstsw ax
test ah, 0x41
je 0x469939
mov ecx, esi
call fcn.004fe4e0
fadd qword [ebx]
fld qword [esp + 0x78]
fadd qword [0x693230]
fcompp
fnstsw ax
test ah, 1
jne 0x469939
fld qword [ebx]
fld qword [esp + 0x28]
fpatan
sub esp, 8
fstp qword [esp]
call fcn.00657310
mov eax, dword [ebp + 0x1c]
add esp, 8
fstp qword [esp + 0x10]
cmp eax, 2
je 0x469905
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
push esi
push ecx
push edx
call fcn.00469070
add esp, 0xc
test eax, eax
je 0x469939
mov ecx, esi
call fcn.00531210
fadd qword [esp + 0x28]
mov eax, dword [esp + 0x40]
mov ecx, esi
fstp qword [edi + eax]
call fcn.004fe4e0
fadd qword [ebx]
mov ecx, dword [esp + 0x44]
fstp qword [edi]
fld qword [esp + 0x10]
fstp qword [edi + ecx]
mov ecx, dword [esp + 0x30]
inc ecx
add edi, 8
mov dword [esp + 0x30], ecx
mov eax, dword [esp + 0x34]
add ebx, 8
dec eax
mov dword [esp + 0x34], eax
jne 0x469883
mov eax, dword [esp + 0x30]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, dword [ebp + 0x1c]
cmp ebx, 1
jne 0x4699cc
fld qword [esp + 0x98]
fadd qword [0x693230]
fcomp qword [esp + 0x70]
fnstsw ax
test bl, ah
jne 0x469ce2
fld qword [esp + 0xa8]
fsub qword [0x693230]
fcomp qword [esp + 0x68]
fnstsw ax
test ah, 0x41
je 0x469ce2
fld qword [esp + 0xb0]
fadd qword [0x693230]
fcomp qword [esp + 0x60]
fnstsw ax
test bl, ah
jne 0x469ce2
fld qword [esp + 0xa0]
fsub qword [0x693230]
fcomp qword [esp + 0x78]
fnstsw ax
test ah, 0x41
je 0x469ce2
fld qword [esp + 0x48]
fsub qword [esp + 0x10]
fld qword [esp + 0x28]
fsub qword [esp + 0x38]
fchs
fstp qword [esp + 0x18]
fld st(0)
fmul st(1)
fld qword [esp + 0x18]
fmul qword [esp + 0x18]
faddp st(1)
fsqrt
fst qword [esp + 0x48]
fabs
fcomp qword [0x693230]
fnstsw ax
test ah, 1
jne 0x469ce0
fdiv qword [esp + 0x48]
mov ecx, esi
fstp qword [esp + 0x28]
fld qword [esp + 0x18]
fdiv qword [esp + 0x48]
fstp qword [esp + 0x18]
call fcn.00531210
fsubr qword [esp + 0x38]
mov ecx, esi
fmul qword [esp + 0x28]
fstp qword [esp + 0x48]
call fcn.004fe4e0
fsubr qword [esp + 0x10]
fmul qword [esp + 0x18]
fadd qword [esp + 0x48]
fcom qword [0x691ac0]
fnstsw ax
test ah, 1
je 0x469a66
fld qword [esp + 0x28]
fchs
fstp qword [esp + 0x28]
fld qword [esp + 0x18]
fchs
fstp qword [esp + 0x18]
fchs
fld qword [esp + 0x20]
fadd qword [0x693230]
fld st(1)
fcompp
fnstsw ax
test ah, 0x41
je 0x469ce0
fld qword [esp + 0x18]
fld qword [esp + 0x28]
fpatan
fstp qword [esp + 0x48]
fld qword [esp + 0x20]
fsub qword [0x693230]
fld st(1)
fcompp
fnstsw ax
test ah, 0x41
jne 0x469b63
cmp ebx, 3
fstp st(0)
je 0x469ce2
cmp ebx, 4
je 0x469ce2
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x48]
push edx
push eax
call fcn.00657310
mov ecx, dword [ebp + 0x18]
add esp, 8
fstp qword [ecx]
mov ecx, esi
call fcn.00531210
fld qword [esp + 0x28]
fmul qword [esp + 0x20]
mov edx, dword [ebp + 0x10]
mov ecx, esi
faddp st(1)
fstp qword [edx]
call fcn.004fe4e0
fld qword [esp + 0x18]
fmul qword [esp + 0x20]
mov eax, dword [ebp + 0x14]
cmp ebx, 2
faddp st(1)
fstp qword [eax]
jne 0x469b0e
mov eax, 0x101
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x18]
push esi
mov ecx, dword [eax + 0xc]
mov edx, dword [eax + 8]
push ecx
push edx
call fcn.00469070
add esp, 0xc
test eax, eax
je 0x469ce2
cmp ebx, 1
jne 0x469b57
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0xc]
mov edx, dword [eax + 8]
mov eax, dword [ebp + 0x10]
push ecx
push edx
mov ecx, dword [eax + 0xc]
mov edx, dword [eax + 8]
push ecx
push edx
push edi
call fcn.00469130
add esp, 0x14
cmp eax, 0x6e
je 0x469ce2
mov eax, 0x101
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
fdiv qword [esp + 0x20]
fst qword [esp + 0x38]
fabs
fcomp qword [0x69dc18]
fld qword [esp + 0x38]
fnstsw ax
test ah, 1
jne 0x469bb2
fcomp qword [0x691ac0]
fnstsw ax
test ah, 0x41
jne 0x469b9d
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
jmp 0x469bbb
mov eax, dword [0x706cb0]
mov ecx, dword [0x706cb4]
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], ecx
jmp 0x469bbb
call fcn.0065f6e4
fstp qword [esp + 0x38]
mov edi, dword [ebp + 0x14]
mov eax, dword [ebp + 0x10]
sub eax, edi
mov dword [esp + 0x34], 0
mov dword [esp + 0x40], eax
mov eax, dword [ebp + 0x18]
sub eax, edi
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x34]
test eax, eax
jne 0x469bea
fld qword [esp + 0x38]
fadd qword [esp + 0x48]
jmp 0x469bf2
fld qword [esp + 0x48]
fsub qword [esp + 0x38]
fstp qword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
push edx
push eax
call fcn.00657310
fstp qword [esp + 0x18]
add esp, 8
mov ecx, esi
call fcn.00531210
fld qword [esp + 0x18]
fcos
mov ecx, esi
fmul qword [esp + 0x20]
faddp st(1)
fstp qword [esp + 0x28]
call fcn.004fe4e0
fld qword [esp + 0x18]
fsin
cmp ebx, 1
fmul qword [esp + 0x20]
faddp st(1)
fstp qword [esp + 0x18]
je 0x469c4e
cmp ebx, 3
je 0x469c4e
cmp ebx, 4
je 0x469c4e
cmp ebx, 5
jne 0x469c94
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
push esi
push ecx
push edx
call fcn.00469070
add esp, 0xc
test eax, eax
je 0x469cc3
cmp ebx, 1
je 0x469c6f
cmp ebx, 4
jne 0x469c94
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x2c]
push eax
mov eax, dword [esp + 0x2c]
push ecx
mov ecx, dword [ebp + 8]
push edx
push eax
push ecx
call fcn.00469130
add esp, 0x14
cmp eax, 0x6e
je 0x469cc3
fld qword [esp + 0x28]
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
fstp qword [edx + edi]
fld qword [esp + 0x10]
mov edx, dword [esp + 0x44]
mov dword [edi], eax
mov dword [edi + 4], ecx
mov ecx, dword [esp + 0x30]
fstp qword [edx + edi]
inc ecx
add edi, 8
mov dword [esp + 0x30], ecx
mov eax, dword [esp + 0x34]
inc eax
cmp eax, 1
mov dword [esp + 0x34], eax
jle 0x469bd8
mov eax, dword [esp + 0x30]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
fstp st(0)
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret