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

Disassembly:
push 0xffffffffffffffff
push 0x7789b5
mov eax, dword fs:[0]
push eax
sub esp, 0x50
mov eax, dword [0x867e6c]
xor eax, esp
mov dword [esp + 0x48], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x867e6c]
xor eax, esp
push eax
lea eax, [esp + 0x64]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x74]
mov esi, ecx
push ebp
mov dword [esp + 0x3c], esi
mov dword [esp + 0x40], ebp
call fcn.00430aa0
mov dword [esp + 0x6c], 0
fld dword [0x82df20]
push ecx
fstp dword [esp]
push esi
call fcn.0066a630
fstp st(0)
fld1
fcom dword [esi + 0x6d0]
fnstsw ax
test ah, 0x44
jnp 0x66f931
fcomp dword [esi + 0x6cc]
fnstsw ax
test ah, 0x44
jnp 0x66f933
jmp 0x66fc85
fstp st(0)
mov cl, 1
mov eax, ebp
call fcn.00430cc0
fldz
fld qword [esp + 0x78]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x66f9e7
fmul qword [0x82dc80]
call fcn.0076f850
push eax
mov ecx, 0xaa66ff
lea eax, [esp + 0x20]
call fcn.00434860
mov ecx, ebp
call fcn.00430c20
fld1
mov eax, dword [0x88b12c]
mov edi, dword [eax + 0x9e0]
mov ecx, dword [esi + 0x6ac]
imul ecx, edi
mov eax, 0x1b4e81b5
imul ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov dword [esp + 0x18], ecx
mov ecx, dword [esi + 0x6a8]
imul ecx, edi
mov edi, dword [esi + 0x6c4]
mov eax, 0x1b4e81b5
imul ecx
sub esp, 0x10
sar edx, 7
mov eax, edx
fst dword [esp + 0xc]
shr eax, 0x1f
fstp dword [esp + 8]
add eax, edx
fild dword [esp + 0x28]
mov dword [esp + 0x28], eax
mov eax, ebp
fstp dword [esp + 4]
fild dword [esp + 0x28]
fstp dword [esp]
call fcn.006f1400
add esp, 0x10
jmp 0x66f9e9
fstp st(0)
fldz
fld qword [esp + 0x80]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x66faad
mov ecx, 1
mov eax, ebp
call fcn.00430ca0
fmul qword [0x82dc80]
call fcn.0076f850
push eax
mov ecx, 0xddaaff
lea eax, [esp + 0x20]
call fcn.00434860
mov ecx, ebp
call fcn.00430c20
fld1
mov ecx, dword [0x88b12c]
mov edi, dword [ecx + 0x9e0]
mov ecx, dword [esi + 0x6ac]
imul ecx, edi
mov eax, 0x1b4e81b5
imul ecx
mov ecx, dword [esi + 0x6a8]
imul ecx, edi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x18], eax
mov edi, dword [esi + 0x6c8]
mov eax, 0x1b4e81b5
imul ecx
sub esp, 0x10
sar edx, 7
mov ecx, edx
fst dword [esp + 0xc]
shr ecx, 0x1f
fstp dword [esp + 8]
add ecx, edx
fild dword [esp + 0x28]
mov dword [esp + 0x28], ecx
mov eax, ebp
fstp dword [esp + 4]
fild dword [esp + 0x28]
fstp dword [esp]
call fcn.006f1400
add esp, 0x10
xor ecx, ecx
mov eax, ebp
call fcn.00430ca0
jmp 0x66faaf
fstp st(0)
or ecx, 0xffffffff
lea eax, [esp + 0x1c]
call fcn.00434820
mov ecx, ebp
call fcn.00430c20
xor cl, cl
mov eax, ebp
call fcn.00430cc0
fldz
fcomp qword [esp + 0x88]
fnstsw ax
test ah, 5
jp 0x66fc85
push ebp
mov ebx, esi
call fcn.006668f0
fld qword [esp + 0x88]
fmul qword [0x82dc80]
call fcn.0076f850
push eax
mov ecx, 0xffffff
lea eax, [esp + 0x20]
call fcn.00434860
mov ecx, ebp
call fcn.00430c20
xor eax, eax
jmp 0x66fb17
mov esi, dword [esp + 0x38]
mov edx, dword [esi + 0x750]
inc eax
push eax
mov dword [esp + 0x1c], eax
mov eax, dword [edx*4 + 0x879520]
push eax
push str.IMAGE_QUESTOBJECT__s_GREEN_GLASS__i
lea esi, [esp + 0x4c]
call fcn.00439900
add esp, 0xc
mov byte [esp + 0x6c], 1
mov edx, dword [esp + 0x44]
mov edi, 0x10
cmp dword [esp + 0x58], edi
jae 0x66fb54
lea edx, [esp + 0x44]
mov eax, edx
mov dword [esp + 0x34], 0xf
mov dword [esp + 0x30], 0
mov byte [esp + 0x20], 0
lea esi, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x66fb70
sub eax, esi
push eax
push edx
lea ecx, [esp + 0x24]
call fcn.004016e0
mov byte [esp + 0x6c], 2
mov eax, dword [esp + 0x20]
cmp dword [esp + 0x34], edi
jae 0x66fb97
lea eax, [esp + 0x20]
push eax
call fcn.006e14f0
add esp, 4
mov esi, eax
cmp esi, 0xffffffff
setne bl
mov byte [esp + 0x6c], 1
cmp dword [esp + 0x34], edi
jb 0x66fbc0
mov ecx, dword [esp + 0x20]
push ecx
call fcn.006441c7
add esp, 4
mov dword [esp + 0x34], 0xf
mov dword [esp + 0x30], 0
mov byte [esp + 0x20], 0
test bl, bl
je 0x66fc4b
mov ecx, dword [esi*4 + 0x883088]
test ecx, ecx
jne 0x66fbe8
xor eax, eax
jmp 0x66fbeb
mov eax, dword [ecx + 4]
test ecx, ecx
jne 0x66fbf3
xor edi, edi
jmp 0x66fbf5
mov edi, dword [ecx]
cmp esi, 0xffffffff
jne 0x66fbfe
xor ebx, ebx
jmp 0x66fc07
mov edx, dword [esi*4 + 0x879598]
mov ebx, dword [edx]
mov ecx, dword [0x88b12c]
mov ecx, dword [ecx + 0x9e0]
mov edx, ecx
imul ecx, edi
imul edx, eax
mov eax, 0x1b4e81b5
imul edx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
mov eax, 0x1b4e81b5
imul ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
push ecx
mov eax, ebp
call fcn.00431710
mov edi, 0x10
mov byte [esp + 0x6c], 0
cmp dword [esp + 0x58], edi
jb 0x66fc63
mov edx, dword [esp + 0x44]
push edx
call fcn.006441c7
add esp, 4
mov eax, dword [esp + 0x18]
cmp eax, 4
mov dword [esp + 0x58], 0xf
mov dword [esp + 0x54], 0
mov byte [esp + 0x44], 0
jl 0x66fb13
mov ebx, ebp
mov dword [esp + 0x6c], 0xffffffff
call fcn.00430bb0
mov ecx, dword [esp + 0x64]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x48]
xor ecx, esp
call fcn.00643db8
add esp, 0x5c
ret 0x1c