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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
push 0xffffffffffffffff
push 0x77f055
mov eax, dword fs:[0]
push eax
sub esp, 0x34
mov eax, 0x2ef4
call fcn.00660af0
push ebx
push esi
push edi
mov eax, dword [0x867e6c]
xor eax, esp
push eax
lea eax, [esp + 0x2f38]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [esp + 0x38], ebx
cmp dword [ebx + 0x24], 0
je 0x767f4f
cmp dword [ebx + 0x48], 0
je 0x769599
mov edi, dword [ebp + 8]
mov eax, edi
call fcn.00430930
mov dword [esp + 0x68], eax
test eax, eax
je 0x767fa6
lea eax, [esp + 0xd0]
call fcn.0057e350
fld qword [ebx + 0x270]
fstp dword [esp + 0x2c]
sub esp, 8
fld dword [esp + 0x34]
mov esi, eax
fstp dword [esp + 4]
fld qword [ebx + 0x268]
fstp dword [esp + 0x34]
fld dword [esp + 0x34]
fstp dword [esp]
call fcn.0057e370
mov eax, esi
mov esi, dword [esp + 0x68]
push eax
call fcn.00433f30
push edi
call fcn.00430aa0
fild dword [ebx + 0x4c]
fld qword [0x87d2f0]
lea eax, [ebx + 0x4c]
sub esp, 8
fmul st(1), st(0)
lea ecx, [ebx + 0x48]
fxch st(1)
mov dword [esp + 0x80], eax
mov eax, edi
fstp dword [esp + 0x34]
mov dword [esp + 0x88], ecx
fld dword [esp + 0x34]
fstp dword [esp + 4]
fimul dword [ecx]
fstp dword [esp + 0x34]
fld dword [esp + 0x34]
fstp dword [esp]
call fcn.004329e0
cmp byte [ebx + 0x47c], 0
jne 0x7680a7
cmp byte [ebx + 0x47d], 0
je 0x7680a7
lea ecx, [ebx + 0x2f0]
call fcn.00436230
mov ecx, dword [0x88b12c]
fimul dword [ecx + 0x9e0]
lea esi, [ebx + 0x188]
mov ecx, esi
fdiv qword [0x82dcf8]
fstp qword [esp + 0xbc]
call fcn.00436230
fstp qword [esp + 0x44]
lea ecx, [ebx + 0x280]
call fcn.00436230
mov edx, dword [0x88b12c]
fimul dword [edx + 0x9e0]
push ecx
mov ecx, esi
fdiv qword [0x82dcf8]
fstp qword [esp + 0xb8]
fld qword [0x7a8008]
fsub qword [esp + 0x48]
fmul qword [esp + 0xc0]
fstp dword [esp + 0x30]
fld dword [esp + 0x30]
fstp dword [esp]
call fcn.00436230
fsubr qword [0x7a8008]
push ecx
mov eax, edi
fmul qword [esp + 0xbc]
fstp dword [esp + 0x34]
fld dword [esp + 0x34]
fstp dword [esp]
call fcn.004329e0
lea ecx, [ebx + 0x1f8]
call fcn.00436230
fstp dword [esp + 0x40]
fldz
fcomp dword [ebx + 0x278]
fnstsw ax
test ah, 5
jp 0x7680d9
fld dword [ebx + 0x278]
fdivr qword [0x82e788]
fmul dword [esp + 0x40]
fstp dword [esp + 0x40]
fld dword [esp + 0x40]
lea esi, [ebx + 0x188]
fmul qword [0x82e780]
mov ecx, esi
mov dword [esp + 0x7c], esi
fstp qword [esp + 0x44]
call fcn.00436230
fstp dword [esp + 0x2c]
mov ecx, esi
fld dword [esp + 0x2c]
fmul qword [0x87d2f0]
fadd qword [0x7a8008]
fmul qword [esp + 0x44]
fstp dword [esp + 0xa4]
call fcn.00436230
fstp dword [esp + 0x2c]
mov dword [esp + 0x34], 3
fld dword [esp + 0x2c]
fmul qword [0x82dfb8]
fadd qword [0x7a8008]
fmul qword [esp + 0x44]
fstp dword [esp + 0xac]
jmp 0x768154
mov esi, dword [esp + 0x7c]
mov ecx, esi
call fcn.00436230
fstp dword [esp + 0x2c]
fld dword [esp + 0x2c]
fsubr qword [0x7a8008]
fstp dword [esp + 0x2c]
fld dword [esp + 0x2c]
fmul qword [0x82dc80]
fldz
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x768186
fstp st(1)
jmp 0x768188
fstp st(0)
call fcn.0076f850
mov edx, eax
push edx
mov ecx, edx
lea eax, [esp + 0x48]
call fcn.00434890
mov esi, dword [eax]
mov ecx, dword [ebx + 0x180]
add ecx, 0xf48
mov dword [ecx], esi
mov esi, dword [eax + 4]
mov dword [ecx + 4], esi
mov esi, dword [eax + 8]
mov dword [ecx + 8], esi
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
push edx
mov ecx, edx
lea eax, [esp + 0xc0]
call fcn.00434890
mov ecx, dword [ebx + 0x17c]
mov edx, dword [eax]
add ecx, 0xf48
sub dword [esp + 0x34], 1
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
jne 0x768150
cmp byte [ebx + 0x47c], 0
jne 0x76828d
mov eax, dword [ebx + 0x180]
add eax, 0xf78
call fcn.0057e0f0
mov ecx, dword [0x88b12c]
fild dword [ecx + 0x9e0]
sub esp, 8
mov esi, dword [ebx + 0x180]
add esi, 0xf78
fstp dword [esp + 0x34]
fld dword [esp + 0x34]
fld st(0)
fmul dword [esp + 0xb4]
fld qword [0x82dcf8]
fdiv st(1), st(0)
fxch st(1)
fstp dword [esp + 0x34]
fld dword [esp + 0x34]
fstp dword [esp + 4]
fld dword [esp + 0xac]
fmulp st(2)
fdivp st(1)
fstp dword [esp + 0x34]
fld dword [esp + 0x34]
fstp dword [esp]
call fcn.0057e450
mov edx, edi
mov edi, dword [ebx + 0x180]
push edx
call fcn.00570740
cmp byte [ebx + 0x47c], 0
mov edi, dword [ebp + 8]
je 0x7682bf
fild dword [ebx + 0x45c]
lea esi, [ebx + 0x450]
fmul qword [0x87d2f0]
call fcn.0076f850
mov edx, dword [ebx + 0x454]
mov ecx, dword [esi]
push eax
mov eax, dword [ebx + 0x458]
push eax
lea eax, [esp + 0x4c]
call fcn.004348b0
jmp 0x7682c7
lea esi, [ebx + 0x450]
mov eax, esi
mov ecx, edi
call fcn.00430c20
mov eax, 0x88ba50
mov ecx, esi
call fcn.004349b0
test al, al
je 0x7682e7
mov cl, 1
mov eax, edi
call fcn.00430cc0
xor ecx, ecx
mov eax, edi
call fcn.00430ca0
cmp byte [ebx + 0x47c], cl
je 0x7682fe
mov dword [esp + 0x34], ecx
jmp 0x768319
mov eax, dword [ebx + 0x474]
cdq
and edx, 3
add eax, edx
sar eax, 2
cdq
mov ecx, 0x28
idiv ecx
mov dword [esp + 0x34], edx
lea eax, [esp + 0x10c]
call fcn.0057e490
fld dword [esp + 0xac]
sub esp, 8
fstp dword [esp + 4]
fld dword [esp + 0xac]
fstp dword [esp]
call fcn.0057e5b0
fldz
mov eax, dword [0x881910]
sub esp, 8
fst dword [esp + 4]
fstp dword [esp]
lea edx, [esp + 0x114]
push edx
push edi
call fcn.00432630
mov ecx, dword [0x8807b4]
call fcn.0045a100
mov dword [esp + 0x3c], eax
call fcn.0045a110
mov esi, dword [ecx + 0x38]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x34]
cdq
idiv esi
mov dword [esp + 0xa0], edx
mov dword [esp + 0x2c], eax
call fcn.0045a100
mov esi, eax
imul esi, dword [esp + 0x2c]
call fcn.0045a110
imul eax, dword [esp + 0xa0]
fldz
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x30]
sub esp, 8
mov dword [esp + 0x54], eax
lea eax, [esp + 0x4c]
fst dword [esp + 4]
mov dword [esp + 0x58], edx
fstp dword [esp]
push eax
mov eax, ecx
lea edx, [esp + 0x118]
mov ecx, edi
mov dword [esp + 0x54], esi
call fcn.004326b0
cmp byte [ebx + 0x68], 0
je 0x76841a
mov ecx, 1
mov eax, edi
call fcn.00430ca0
fldz
mov eax, dword [0x88094c]
sub esp, 8
fst dword [esp + 4]
lea ecx, [esp + 0x114]
fstp dword [esp]
push ecx
push edi
call fcn.00432630
xor ecx, ecx
mov eax, edi
call fcn.00430ca0
lea edx, [esp + 0xf4]
push edx
call fcn.00428920
mov dword [esp + 0x2f40], 0
cmp byte [ebx + 0x47c], 0
jne 0x768c02
mov ebx, dword [esp + 0x7c]
mov esi, dword [esp + 0x38]
xor edi, edi
mov dword [esp + 0x34], edi
fild dword [esp + 0x34]
mov ecx, ebx
fdiv qword [0x82e5e0]
fstp dword [esi + edi*4 + 0x480]
call fcn.00436230
fld dword [esi + edi*4 + 0x480]
fstp dword [esp + 0x2c]
fld dword [esp + 0x2c]
fxch st(1)
fstp dword [esp + 0x2c]
fld dword [esp + 0x2c]
fld qword [0x7a8008]
fld st(0)
fsubrp st(2)
faddp st(1)
fstp dword [esp + 0x2c]
fld dword [esp + 0x2c]
call fcn.0076ff50
fstp dword [esp + 0x2c]
fld dword [esp + 0x2c]
mov ecx, ebx
fstp dword [esi + edi*4 + 0x4a8]
fld dword [esi + edi*4 + 0x480]
fmul dword [esp + 0x40]
fstp dword [esi + edi*4 + 0x480]
call fcn.00436230
mov ecx, ebx
fstp qword [esp + 0x44]
call fcn.00436230
fld dword [esi + 0x44c]
fld qword [0x7a8008]
mov ecx, ebx
fld st(0)
fsubrp st(2)
fld qword [esp + 0x44]
fstp dword [esp + 0x2c]
fld dword [esp + 0x2c]
fmulp st(2)
fld dword [esi + 0x44c]
faddp st(2)
fxch st(2)
fstp dword [esp + 0x2c]
fld dword [esp + 0x2c]
fsubp st(2)
fld dword [esi + edi*4 + 0x4a8]
fmul qword [0x87d2f0]
fmulp st(2)
fsubrp st(1)
fstp dword [esi + edi*4 + 0x4d0]
call fcn.00436230
fstp dword [esp + 0x2c]
fld dword [esp + 0x2c]
fmul qword [0x82def0]
fadd qword [0x82dfa0]
fmul dword [esi + edi*4 + 0x4a8]
fstp dword [esi + edi*4 + 0x4a8]
cmp edi, 9
jne 0x76856b
mov ecx, ebx
call fcn.00436230
fstp dword [esp + 0x2c]
fld dword [esp + 0x2c]
fld qword [0x7a8008]
fld st(0)
fsubrp st(2)
fxch st(1)
fmul qword [0x82dee0]
fsubp st(1)
fstp dword [esi + 0x4f4]
inc edi
cmp edi, 0xa
mov dword [esp + 0x34], edi
jl 0x76844d
xor edi, edi
mov dword [esp + 0x34], edi
add esi, 0x5f0
fild dword [esp + 0x34]
push ecx
fadd qword [0x87d2f0]
fdiv qword [0x82e3d8]
fmul qword [0x82dca8]
fadd st(0), st(0)
fstp dword [esp + 0x70]
fld dword [esp + 0x70]
fstp dword [esp]
call fcn.004099c0
fstp dword [esi - 0x7c]
fld dword [esp + 0x70]
fstp dword [esp]
call fcn.004099a0
add esp, 4
fstp dword [esi]
mov ecx, ebx
call fcn.00436230
fstp qword [esp + 0x44]
fld dword [esp + 0x6c]
push ecx
fadd st(0), st(0)
fstp dword [esp + 0x30]
fld dword [esp + 0x30]
fstp dword [esp]
call fcn.004099c0
fstp dword [esp + 0x30]
fld dword [esp + 0x30]
fstp dword [esp]
call fcn.00409960
fstp dword [esp + 0x30]
add esp, 4
fld dword [esp + 0x2c]
fld qword [0x82ded0]
call fcn.0076ff50
fstp dword [esp + 0x2c]
fld dword [esp + 0x2c]
inc edi
fld qword [esp + 0x44]
add esi, 4
cmp edi, 0x1e
fstp dword [esp + 0x2c]
fmul dword [esp + 0x2c]
mov dword [esp + 0x34], edi
fmul qword [0x82dfb8]
fadd qword [0x7a8008]
fstp dword [esi - 0xfc]
jle 0x768585
mov ecx, dword [esp + 0x38]
add ecx, 0x160
call fcn.00466470
test eax, eax
je 0x768b7b
fld1
mov ecx, 0x12b
fldz
lea eax, [esp + 0x990]
xor edx, edx
jmp 0x76866e
fxch st(1)
fst dword [eax - 4]
mov dword [eax + 4], edx
fxch st(1)
mov dword [eax + 8], edx
fst dword [eax]
add eax, 0x20
sub ecx, 1
jns 0x76866c
mov eax, dword [0x88b12c]
fstp st(0)
mov edx, dword [esp + 0x38]
add eax, 0x9e0
lea ecx, [esp + 0x984]
add edx, 0x4a8
mov dword [esp + 0xa8], eax
mov dword [esp + 0x34], ecx
mov dword [esp + 0x6c], edx
mov dword [esp + 0x2c], 0xa
jmp 0x7686c2
fstp st(1)
mov ebx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
add ebx, 0x5f0
mov dword [esp + 0x70], eax
mov dword [esp + 0xa0], 0x1e
jmp 0x7686e3
fstp st(1)
mov ecx, dword [esp + 0x6c]
fstp st(0)
fld dword [ecx - 0x28]
mov edx, dword [esp + 0xa8]
mov ecx, dword [edx]
fmul dword [ebx - 0xf8]
mov edx, ecx
imul ecx, ecx, 0x780
fstp dword [esp + 0xb4]
imul edx, edx, 0x4b0
mov eax, 0x1b4e81b5
imul edx
sar edx, 7
mov edi, edx
shr edi, 0x1f
add edi, edx
mov eax, 0x1b4e81b5
imul ecx
mov ecx, dword [esp + 0x7c]
sar edx, 7
mov esi, edx
shr esi, 0x1f
mov dword [esp + 0x3c], edi
add esi, edx
call fcn.00436230
mov eax, dword [0x88b12c]
fstp dword [esp + 0x30]
add eax, 0x9e0
fld dword [esp + 0x30]
sub esi, edi
mov dword [esp + 0x30], esi
mov esi, dword [eax]
fild dword [esp + 0x30]
mov ecx, esi
fld qword [0x87d2f0]
imul ecx, ecx, 0x4b0
fmul st(1), st(0)
fxch st(2)
fmulp st(1)
fild dword [esp + 0x3c]
fmul st(2)
mov dword [esp + 0xa8], eax
mov eax, 0x1b4e81b5
imul ecx
faddp st(1)
fstp dword [esp + 0x3c]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x38]
fild dword [esp + 0x30]
mov edi, dword [edx + 0x174]
fstp dword [esp + 0x30]
fld dword [esp + 0x30]
fld st(0)
fmul st(2)
fstp dword [esp + 0x30]
fld dword [esp + 0x3c]
fld st(0)
fld dword [esp + 0x30]
fld st(0)
fdivp st(2)
fxch st(1)
fdiv qword [0x82e480]
fstp dword [esp + 0x74]
fld1
fst dword [esp + 0x3c]
fld dword [ebx - 0xf8]
fmul dword [ecx]
mov ecx, edx
add ecx, 0x160
fstp dword [esp + 0xbc]
fldz
fst dword [esp + 0xb0]
test edi, edi
je 0x768897
mov eax, dword [esp + 0xa8]
fstp st(4)
mov esi, dword [eax]
call fcn.00466460
fild dword [eax + 0x30]
call fcn.00466460
fidiv dword [eax + 0x2c]
mov edx, esi
mov eax, 0x1b4e81b5
imul edx, edx, 0x4b0
imul esi, esi, 0x780
imul edx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x30], eax
mov eax, 0x1b4e81b5
imul esi
fild dword [esp + 0x30]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x30], eax
mov eax, edi
cdq
fidiv dword [esp + 0x30]
sub eax, edx
mov edx, dword [esp + 0x38]
sar eax, 1
add eax, dword [edx + 0x16c]
mov dword [esp + 0x30], eax
fdivp st(1)
fmul dword [esp + 0x74]
fstp dword [esp + 0x74]
fild dword [esp + 0x30]
call fcn.00466460
fidiv dword [eax + 0x2c]
fsub st(5)
fstp dword [esp + 0xb0]
jmp 0x76891b
call fcn.00466460
mov edx, esi
imul edx, edx, 0x640
mov edi, eax
mov eax, 0x1b4e81b5
imul edx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [edi + 0x2c], eax
jne 0x7688ce
fstp st(4)
fld dword [esp + 0x74]
fmul qword [0x82e150]
fstp dword [esp + 0x74]
jmp 0x76891b
imul esi, esi, 0x780
mov eax, 0x1b4e81b5
imul esi
sar edx, 7
mov esi, edx
shr esi, 0x1f
add esi, edx
mov dword [esp + 0x30], esi
call fcn.00466460
cmp dword [eax + 0x2c], esi
jle 0x768919
fild dword [esp + 0x30]
call fcn.00466460
fidiv dword [eax + 0x2c]
fmul dword [esp + 0x74]
fstp dword [esp + 0x74]
call fcn.00466460
fild dword [eax + 0x30]
fdivp st(5)
fxch st(4)
fstp dword [esp + 0x3c]
jmp 0x76891b
fstp st(4)
mov ecx, dword [esp + 0x6c]
fld dword [ecx + 0x28]
fstp dword [esp + 0x30]
fld dword [esp + 0x30]
fcom qword [0x82dc20]
fnstsw ax
test ah, 5
jp 0x768941
fstp st(0)
fxch st(3)
fst dword [esp + 0x30]
jmp 0x768947
fstp dword [esp + 0x30]
fxch st(3)
fld dword [ebx]
mov eax, dword [ebp + 8]
fmulp st(3)
fld dword [esp + 0xb4]
fld st(0)
fmulp st(4)
fld dword [eax + 8]
faddp st(4)
fxch st(3)
fstp dword [esp + 0xb4]
fld dword [ebx - 0x7c]
fmulp st(2)
fxch st(1)
fmulp st(2)
fld dword [eax + 0xc]
faddp st(2)
fxch st(1)
fstp dword [esp + 0x44]
fld dword [ebx]
fmul st(3)
fld dword [esp + 0xbc]
fld st(0)
fmulp st(2)
fld dword [esp + 0x74]
fmulp st(2)
fxch st(1)
fadd st(4)
fadd dword [esp + 0xb0]
fstp dword [esp + 0xbc]
fld dword [ebx - 0x7c]
fmul st(4)
fmulp st(1)
fmul dword [esp + 0x3c]
faddp st(3)
fxch st(2)
fstp dword [esp + 0x3c]
fld dword [esp + 0x30]
fmul qword [0x82dc80]
call fcn.0076f850
push eax
mov edx, 0xff
push 0xff
mov ecx, edx
lea eax, [esp + 0x8c]
call fcn.004348b0
mov ecx, eax
call fcn.004348f0
fld dword [esp + 0xb4]
mov edi, dword [esp + 0x70]
fstp dword [esp + 0xd0]
fld dword [esp + 0x44]
add dword [esp + 0x70], 0x140
fstp dword [esp + 0xd4]
mov ecx, 8
fld dword [esp + 0xbc]
lea esi, [esp + 0xd0]
fstp dword [esp + 0xe8]
add ebx, 4
sub dword [esp + 0xa0], 1
fld dword [esp + 0x3c]
fstp dword [esp + 0xec]
mov dword [esp + 0xe0], eax
fxch st(1)
mov dword [esp + 0xe4], 0
fst dword [esp + 0xd8]
fxch st(1)
fst dword [esp + 0xdc]
rep movsd dword es:[edi], dword [esi]
jne 0x7686e1
add dword [esp + 0x6c], 4
add dword [esp + 0x34], 0x20
sub dword [esp + 0x2c], 1
jne 0x7686c0
mov ecx, 0x3d
lea eax, [esp + 0x1d0]
xor ebx, ebx
fxch st(1)
mov dword [eax + 4], ebx
fst dword [eax - 4]
mov dword [eax + 8], ebx
fxch st(1)
add eax, 0x20
sub ecx, 1
fst dword [eax - 0x20]
jns 0x768a88
fstp st(1)
mov dword [esp + 0x70], ebx
fstp st(0)
jmp 0x768ab2
xor ebx, ebx
lea edx, [esp + 0x1e4]
mov dword [esp + 0x34], edx
lea ecx, [ecx]
mov eax, 0x88888889
imul ebx
mov edi, dword [esp + 0x34]
add edx, ebx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ecx, eax
shl ecx, 4
sub ecx, eax
add ecx, ecx
mov eax, ebx
sub eax, ecx
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x70]
lea eax, [eax + edx*2]
shl eax, 5
add edi, 0xffffffe0
lea esi, [esp + eax + 0x984]
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
lea esi, [esp + eax + 0x9a4]
mov eax, dword [esp + 0x34]
mov edi, eax
inc ebx
add eax, 0x40
cmp ebx, 0x1e
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x34], eax
jle 0x768ac0
mov esi, dword [esp + 0x68]
test esi, esi
je 0x768b69
mov ecx, dword [esp + 0x38]
add ecx, 0x160
call fcn.00466460
push eax
push 0
call fcn.00434090
fldz
sub esp, 8
fst dword [esp + 4]
fstp dword [esp]
lea ecx, [esp + 0x1cc]
push 0
push 0x88ba50
push 0x3c
push ecx
push 0x1c4
call fcn.00433e90
mov eax, dword [esp + 0x70]
inc eax
cmp eax, 9
mov dword [esp + 0x70], eax
jl 0x768ab0
mov edi, dword [esp + 0x38]
mov eax, dword [edi + 0x17c]
add eax, 0xf78
call fcn.0057e0f0
mov edx, dword [0x88b12c]
fild dword [edx + 0x9e0]
sub esp, 8
mov esi, dword [edi + 0x17c]
add esi, 0xf78
fstp dword [esp + 0x4c]
fld dword [esp + 0x4c]
fld st(0)
fmul dword [esp + 0xb4]
fld qword [0x82dcf8]
fdiv st(1), st(0)
fxch st(1)
fstp dword [esp + 0x4c]
fld dword [esp + 0x4c]
fstp dword [esp + 4]
fld dword [esp + 0xac]
fmulp st(2)
fdivp st(1)
fstp dword [esp + 0x4c]
fld dword [esp + 0x4c]
fstp dword [esp]
call fcn.0057e450
mov eax, dword [ebp + 8]
mov edi, dword [edi + 0x17c]
push eax
call fcn.00570740
mov ebx, dword [esp + 0x38]
mov edi, dword [ebp + 8]
cmp dword [esp + 0x68], 0
je 0x768c17
mov esi, dword [esp + 0x68]
call fcn.00433f50
jmp 0x768d0f
mov esi, dword [esp + 0x7c]
mov ecx, esi
call fcn.00436230
fcomp qword [0x82dc20]
fnstsw ax
test ah, 0x44
jnp 0x768d0f
add ebx, 0x160
mov ecx, ebx
call fcn.00466470
test eax, eax
je 0x768d0f
mov cl, 1
mov eax, edi
call fcn.00430cc0
mov ecx, esi
call fcn.00436230
fmul qword [0x82dc80]
call fcn.0076f850
push eax
mov edx, 0xff
push 0xff
mov ecx, edx
lea eax, [esp + 0x4c]
call fcn.004348b0
mov ecx, edi
call fcn.00430c20
mov ecx, ebx
call fcn.00466460
cmp dword [eax + 0x2c], 0x320
mov esi, dword [ebp + 8]
fld dword [esi + 0xc]
fchs
jne 0x768cbb
call fcn.0076f850
fld dword [esi + 8]
push eax
fchs
call fcn.0076f850
push eax
mov ecx, ebx
call fcn.00466460
mov ebx, eax
mov eax, esi
call fcn.00431710
jmp 0x768d0f
push 0x258
push 0x3c0
call fcn.0076f850
mov ecx, dword [0x88b12c]
mov ecx, dword [ecx + 0x9e0]
imul ecx, ecx, 0xffffff60
push eax
mov eax, 0x1b4e81b5
imul ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x50], eax
fild dword [esp + 0x50]
fsub dword [esi + 8]
call fcn.0076f850
push eax
mov ecx, ebx
call fcn.00466460
mov edi, eax
mov eax, esi
call fcn.00431c60
mov ebx, dword [ebp + 8]
call fcn.00430bb0
lea ecx, [esp + 0x154]
call fcn.00434f60
push 0x1e
xor ebx, ebx
mov edi, 0xf
push str.b1_1.3_0_1__________
lea ecx, [esp + 0x8c]
mov dword [esp + 0xa4], edi
mov dword [esp + 0xa0], ebx
mov byte [esp + 0x90], bl
call fcn.004016e0
push ebx
lea ecx, [esp + 0x88]
push ecx
lea eax, [esp + 0x15c]
mov byte [esp + 0x2f48], 1
call fcn.00435cc0
mov esi, 0x10
mov byte [esp + 0x2f40], bl
cmp dword [esp + 0x9c], esi
jb 0x768d94
mov edx, dword [esp + 0x88]
push edx
call fcn.006441c7
add esp, 4
push 0x1d
push str.CRYSTALBALL_TEXT_SCALE_FACTOR
lea ecx, [esp + 0x8c]
mov dword [esp + 0xa4], edi
mov dword [esp + 0xa0], ebx
mov byte [esp + 0x90], bl
call fcn.004016e0
mov byte [esp + 0x2f40], 2
fld qword [0x82dda8]
mov ecx, dword [0x88b140]
sub esp, 8
lea eax, [esp + 0x8c]
fstp qword [esp]
call fcn.0046a150
fstp dword [esp + 0x44]
mov byte [esp + 0x2f40], bl
cmp dword [esp + 0x9c], esi
jb 0x768e06
mov eax, dword [esp + 0x88]
push eax
call fcn.006441c7
add esp, 4
mov esi, dword [esp + 0x38]
fld dword [esi + 0x448]
sub esp, 8
lea edi, [esp + 0x15c]
fstp qword [esp]
call fcn.00435ec0
fmul dword [esp + 0x44]
mov ecx, dword [esp + 0x7c]
fadd dword [esi + 0x470]
fstp dword [esp + 0x44]
fld dword [esp + 0x44]
fmul dword [esp + 0x40]
fstp dword [esp + 0x40]
call fcn.00436230
fstp dword [esp + 0x44]
fld dword [esp + 0x44]
fadd st(0), st(0)
fsubr qword [0x7a8008]
fmul dword [esi + 0x360]
mov esi, dword [ebp + 8]
fstp dword [esp + 0x68]
fld1
fld dword [esp + 0x68]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 5
jp 0x76905b
push esi
fstp st(0)
call fcn.00430aa0
mov cl, 1
mov eax, esi
call fcn.00430cc0
fld dword [esp + 0x68]
fsubr qword [0x7a8008]
fmul qword [0x82dc80]
call fcn.0076f850
push eax
mov edx, 0xff
push 0xff
mov ecx, edx
lea eax, [esp + 0x8c]
call fcn.004348b0
mov ecx, esi
call fcn.00430c20
lea eax, [esp + 0x10c]
call fcn.0057e4a0
mov ebx, dword [esp + 0x38]
lea edi, [ebx + 0x368]
mov ecx, edi
call fcn.00436230
fcomp qword [0x82dc20]
fnstsw ax
test ah, 0x41
jne 0x768f84
fld dword [esp + 0x40]
sub esp, 8
fst dword [esp + 4]
lea eax, [esp + 0x114]
fchs
fstp dword [esp]
call fcn.0057e5b0
mov ecx, dword [0x88b12c]
mov ecx, dword [ecx + 0x9e0]
imul ecx, ecx, 0xc8
mov eax, 0x1b4e81b5
imul ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ecx, edi
mov dword [esp + 0xbc], eax
call fcn.00436230
mov ecx, dword [esp + 0x78]
mov eax, dword [ecx]
cdq
sub eax, edx
mov edx, dword [esp + 0x80]
sar eax, 1
mov dword [esp + 0x44], eax
mov eax, dword [edx]
fild dword [esp + 0x44]
sub esp, 8
cdq
fstp dword [esp + 4]
sub eax, edx
sar eax, 1
fsubr qword [0x7a8008]
mov dword [esp + 0x4c], eax
fimul dword [esp + 0xc4]
fild dword [esp + 0x4c]
faddp st(1)
fstp dword [esp + 0x4c]
fld dword [esp + 0x4c]
jmp 0x769038
lea edi, [ebx + 0x3d8]
mov ecx, edi
call fcn.00436230
fcomp qword [0x82dc20]
fnstsw ax
test ah, 0x41
jne 0x76904e
fld dword [esp + 0x40]
sub esp, 8
fst dword [esp + 4]
lea eax, [esp + 0x114]
fstp dword [esp]
call fcn.0057e5b0
mov ecx, dword [0x88b12c]
mov ecx, dword [ecx + 0x9e0]
imul ecx, ecx, 0xc8
mov eax, 0x1b4e81b5
imul ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ecx, edi
mov dword [esp + 0xbc], eax
call fcn.00436230
mov ecx, dword [esp + 0x78]
mov eax, dword [ecx]
cdq
sub eax, edx
mov edx, dword [esp + 0x80]
sar eax, 1
mov dword [esp + 0x44], eax
mov eax, dword [edx]
fild dword [esp + 0x44]
cdq
sub esp, 8
sub eax, edx
sar eax, 1
fstp dword [esp + 4]
mov dword [esp + 0x4c], eax
fild dword [esp + 0x4c]
fld qword [0x7a8008]
fsubrp st(2)
fild dword [esp + 0xc4]
fmulp st(2)
fsubrp st(1)
fstp dword [esp + 0x4c]
fld dword [esp + 0x4c]
fstp dword [esp]
lea eax, [esp + 0x114]
push eax
mov eax, dword [0x8828d0]
push esi
call fcn.00432630
mov ebx, esi
call fcn.00430bb0
fld dword [esp + 0x68]
xor ebx, ebx
mov eax, dword [esp + 0x38]
cmp byte [eax + 0x47e], bl
je 0x769170
fmul qword [0x82dc80]
call fcn.0076f850
push eax
mov edx, 0xff
push 0xff
mov ecx, edx
lea eax, [esp + 0x8c]
call fcn.004348b0
mov ecx, esi
call fcn.00430c20
mov ecx, dword [esp + 0x78]
mov eax, dword [ecx]
cdq
sub eax, edx
mov edx, dword [esp + 0x80]
sar eax, 1
mov dword [esp + 0x44], eax
mov eax, dword [edx]
fild dword [esp + 0x44]
cdq
sub esp, 0x10
sub eax, edx
sar eax, 1
fstp dword [esp + 0xc]
mov dword [esp + 0x54], eax
mov edi, esi
fild dword [esp + 0x54]
fstp dword [esp + 8]
fld dword [esp + 0x50]
fst dword [esp + 4]
fstp dword [esp]
call fcn.006f1320
mov eax, dword [esp + 0x88]
fld1
mov eax, dword [eax]
fst dword [esp + 0xc]
mov ecx, dword [esp + 0x90]
fstp dword [esp + 8]
mov edi, dword [0x880a58]
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x54], eax
mov eax, dword [ecx]
fild dword [esp + 0x54]
cdq
sub eax, edx
sar eax, 1
fstp dword [esp + 4]
mov dword [esp + 0x54], eax
mov eax, esi
fild dword [esp + 0x54]
fstp dword [esp]
call fcn.006f1400
add esp, 0x10
cmp byte [0x88b12a], bl
je 0x769144
mov eax, esi
call fcn.00430930
mov esi, eax
call fcn.00433f50
mov esi, dword [ebp + 8]
jmp 0x76914d
mov ebx, esi
call fcn.00430bb0
xor ebx, ebx
xor cl, cl
mov eax, esi
call fcn.00430cc0
mov ecx, 0xffffffff
lea eax, [esp + 0x44]
call fcn.00434820
mov ecx, esi
call fcn.00430c20
jmp 0x769548
cmp dword [eax + 0xd0], ebx
jbe 0x769546
fldz
fcompp
fnstsw ax
test ah, 5
jp 0x769548
mov ecx, dword [0x88269c]
mov eax, esi
call fcn.00430c10
push 0xb
mov edi, 0xf
push 0x80bc04
lea ecx, [esp + 0x4c]
mov dword [esp + 0x64], edi
mov dword [esp + 0x60], ebx
mov byte [esp + 0x50], bl
call fcn.004016e0
mov edx, 0xff
push 0xff
mov ecx, edx
lea eax, [esp + 0x88]
mov byte [esp + 0x2f44], 3
call fcn.00434890
mov ebx, dword [0x88269c]
push eax
lea ecx, [esp + 0x48]
call fcn.0058a060
xor ebx, ebx
mov byte [esp + 0x2f40], bl
cmp dword [esp + 0x5c], 0x10
jb 0x769206
mov edx, dword [esp + 0x48]
push edx
call fcn.006441c7
add esp, 4
push 0xa
push 0x80bc10
lea ecx, [esp + 0x4c]
mov dword [esp + 0x64], edi
mov dword [esp + 0x60], ebx
mov byte [esp + 0x50], bl
call fcn.004016e0
push 0xa0
mov edx, pe_nt_image_headers32
mov ecx, 0xe0
lea eax, [esp + 0x88]
mov byte [esp + 0x2f44], 4
call fcn.00434890
mov ebx, dword [0x88269c]
push eax
lea ecx, [esp + 0x48]
call fcn.0058a060
xor ebx, ebx
mov byte [esp + 0x2f40], bl
cmp dword [esp + 0x5c], 0x10
jb 0x769272
mov eax, dword [esp + 0x48]
push eax
call fcn.006441c7
add esp, 4
push 4
push 0x80bc1c
lea ecx, [esp + 0x8c]
mov dword [esp + 0xa4], edi
mov dword [esp + 0xa0], ebx
mov byte [esp + 0x90], bl
call fcn.004016e0
mov ecx, dword [esp + 0x38]
add ecx, 0x460
mov byte [esp + 0x2f40], 5
mov ebx, dword [0x88269c]
push ecx
lea ecx, [esp + 0x88]
call fcn.0058a060
xor ebx, ebx
mov byte [esp + 0x2f40], bl
cmp dword [esp + 0x9c], 0x10
jb 0x7692e2
mov edx, dword [esp + 0x88]
push edx
call fcn.006441c7
add esp, 4
fld dword [esp + 0x68]
fmul qword [0x82dc80]
call fcn.0076f850
push eax
mov edx, 0xff
push 0xff
mov ecx, edx
lea eax, [esp + 0x8c]
call fcn.004348b0
mov ecx, esi
call fcn.00430c20
mov eax, dword [esp + 0x78]
mov eax, dword [eax]
mov ecx, dword [esp + 0x80]
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x44], eax
mov eax, dword [ecx]
fild dword [esp + 0x44]
cdq
sub esp, 0x10
sub eax, edx
sar eax, 1
fstp dword [esp + 0xc]
mov dword [esp + 0x54], eax
mov edi, esi
fild dword [esp + 0x54]
fstp dword [esp + 8]
fld dword [esp + 0x50]
fst dword [esp + 4]
fstp dword [esp]
call fcn.006f1320
add esp, 0x10
cmp byte [0x88b12a], bl
je 0x769373
push esi
call fcn.00430aa0
add dword [esi + 0x20], 0xffffff9c
add dword [esi + 0x28], 0xc8
mov edx, dword [0x88b12c]
mov eax, dword [edx + 0x9e0]
mov ecx, eax
shl ecx, 4
add ecx, eax
add ecx, ecx
mov edi, dword [esp + 0x38]
mov eax, 0x1b4e81b5
imul ecx
mov eax, dword [esp + 0x78]
mov eax, dword [eax]
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
mov ecx, dword [0x88269c]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 0x1c]
add edi, 0xbc
push edi
call eax
cdq
sub eax, edx
mov edx, dword [esp + 0x84]
mov ecx, eax
mov eax, dword [edx]
cdq
sub eax, edx
sar eax, 1
sar ecx, 1
sub eax, ecx
push eax
push edi
mov eax, esi
call fcn.004316d0
cmp byte [0x88b12a], bl
je 0x7693f0
mov ebx, esi
call fcn.00430bb0
xor ebx, ebx
push 0xb
mov edi, 0xf
push str.GLOWOUTLINE
lea ecx, [esp + 0x8c]
mov dword [esp + 0xa4], edi
mov dword [esp + 0xa0], ebx
mov byte [esp + 0x90], bl
call fcn.004016e0
lea eax, [esp + 0x84]
mov byte [esp + 0x2f40], 6
mov ecx, dword [0x88269c]
push eax
call fcn.0058a360
mov byte [esp + 0x2f40], bl
cmp dword [esp + 0x9c], 0x10
jb 0x769459
mov ecx, dword [esp + 0x88]
push ecx
call fcn.006441c7
add esp, 4
push 0xa
push str.BOTTOMGLOW
lea ecx, [esp + 0x8c]
mov dword [esp + 0xa4], edi
mov dword [esp + 0xa0], ebx
mov byte [esp + 0x90], bl
call fcn.004016e0
lea edx, [esp + 0x84]
mov byte [esp + 0x2f40], 7
mov ecx, dword [0x88269c]
push edx
call fcn.0058a360
mov byte [esp + 0x2f40], bl
cmp dword [esp + 0x9c], 0x10
jb 0x7694bd
mov eax, dword [esp + 0x88]
push eax
call fcn.006441c7
add esp, 4
push 4
push 0x80bc3c
lea ecx, [esp + 0x8c]
mov dword [esp + 0xa4], edi
mov dword [esp + 0xa0], ebx
mov byte [esp + 0x90], bl
call fcn.004016e0
lea ecx, [esp + 0x84]
mov byte [esp + 0x2f40], 8
push ecx
mov ecx, dword [0x88269c]
call fcn.0058a360
mov byte [esp + 0x2f40], bl
cmp dword [esp + 0x9c], 0x10
jb 0x769521
mov edx, dword [esp + 0x88]
push edx
call fcn.006441c7
add esp, 4
cmp byte [0x88b12a], bl
je 0x76953b
mov eax, esi
call fcn.00430930
mov esi, eax
call fcn.00433f50
xor ebx, ebx
jmp 0x769548
mov ebx, esi
call fcn.00430bb0
xor ebx, ebx
jmp 0x769548
fstp st(0)
mov ecx, dword [esp + 0x38]
mov eax, dword [ecx + 0x20]
cmp eax, ebx
je 0x769560
mov ecx, dword [ecx + 0x478]
push ecx
push eax
call fcn.0057fc40
mov eax, dword [esp + 0x100]
cmp eax, ebx
je 0x769574
push eax
call fcn.006441c7
add esp, 4
mov edx, dword [esp + 0xf4]
push edx
mov dword [esp + 0x104], ebx
mov dword [esp + 0x108], ebx
mov dword [esp + 0x10c], ebx
call fcn.006441c7
add esp, 4
mov ecx, dword [esp + 0x2f38]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4