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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x7c
mov eax, dword [0x557b14]
xor eax, esp
mov dword [esp + 0x78], eax
mov eax, dword [0x57b4d8]
fld dword [0x544548]
fcomp dword [eax + 0x70]
push ebx
push esi
push edi
mov edi, ecx
fnstsw ax
mov dword [esp + 0x30], edi
test ah, 0x41
jnp 0x474672
mov ecx, dword [edi + 0x114]
fldz
cmp ecx, 1
jne 0x472e9e
fstp st(0)
fld dword [0x543950]
fcomp dword [edi + 0xcc]
fnstsw ax
test ah, 0x41
jp 0x472e0e
xor ebx, ebx
lea esi, [edi + 0x48]
cmp dword [esi], 0
je 0x472e0e
mov ecx, dword [esi]
fld dword [ebp + 8]
mov eax, dword [ecx]
push ecx
fstp dword [esp]
call dword [eax + 0xc]
inc ebx
add esi, 4
cmp ebx, 0x18
jl 0x472df2
fld1
fcomp dword [edi + 0x10c]
fnstsw ax
test ah, 0x41
jp 0x472e81
cmp dword [0x57b58c], 0
jne 0x472e81
mov esi, dword [0x57b4d0]
xor ebx, ebx
inc ebx
push ebx
push ebx
mov al, bl
call fcn.00499ace
fld1
mov eax, dword [0x57b4d0]
fst dword [eax + 0x6c]
fld dword [0x544408]
and dword [eax + 0x74], 0
fstp dword [eax + 0x70]
mov dword [eax + 0x64], 0x57ae4c
fldz
mov dword [eax + 0x68], ebx
fstp dword [edi + 0xcc]
push 0
push ecx
mov dword [edi + 0x114], 2
fstp dword [esp]
call fcn.0041cab2
push eax
mov eax, str.khufucatchscarabs.ogg
call fcn.004274ab
call fcn.004014e2
add eax, 0x84
mov byte [eax + 0x108], 1
mov byte [eax + 0x109], 1
jmp 0x4741c0
cmp ecx, 2
jne 0x4732c3
fstp st(0)
call fcn.004014e2
fld dword [ebp + 8]
add eax, 0x84
fmul qword [0x543938]
mov byte [eax + 0x108], 1
mov byte [eax + 0x109], 1
xor ebx, ebx
fadd dword [edi + 0xcc]
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fstp dword [edi + 0xcc]
fld1
fcomp dword [esp + 0x28]
fnstsw ax
test ah, 0x41
jne 0x472f3f
fld dword [0x543950]
fcomp dword [esp + 0x28]
fnstsw ax
test ah, 0x41
jp 0x472f25
mov dword [esp + 0x28], ebx
lea esi, [edi + 0x48]
cmp dword [esi], ebx
je 0x472f25
mov ecx, dword [esi]
fld dword [ebp + 8]
mov eax, dword [ecx]
push ecx
fstp dword [esp]
call dword [eax + 0xc]
inc dword [esp + 0x28]
add esi, 4
cmp dword [esp + 0x28], 0x18
jl 0x472f05
fld dword [edi + 0xcc]
push ecx
fstp dword [esp]
call fcn.0040ff28
fchs
pop ecx
fmul qword [0x543f70]
jmp 0x472f45
fld dword [0x5448c0]
cmp dword [0x577b38], ebx
fstp dword [edi + 0xd0]
jne 0x4741c0
mov eax, dword [edi + 0xac]
cmp eax, ebx
je 0x472f9b
fld1
sub esp, 0xc
fstp dword [esp + 8]
fldz
fstp dword [esp + 4]
fld dword [0x543950]
fstp dword [esp]
push eax
call fcn.0041cab2
call fcn.00427763
mov ebx, dword [edi + 0xac]
add ebx, 0xc
call fcn.0041a39b
and dword [edi + 0xac], 0
xor ebx, ebx
cmp dword [edi + 0x118], 4
jne 0x473186
mov eax, dword [edi + 0x104]
fld1
push 3
fstp dword [edi + 0xf0]
pop esi
inc eax
push eax
lea eax, [esp + 0x40]
push str.temp_doutro.ogg
push eax
mov dword [edi + 0x114], esi
call fcn.004e116e
fld1
add esp, 0xc
push 2
push ecx
fstp dword [esp]
call fcn.0041cab2
push eax
lea eax, [esp + 0x48]
call fcn.004274ab
fldz
mov eax, dword [edi + 0x104]
fst dword [edi + 0xc8]
cmp eax, ebx
fld dword [0x5441c8]
fstp dword [edi + 0xcc]
mov byte [edi + 0x11c], 1
fld dword [0x544640]
mov dword [edi + 0x118], ebx
fstp dword [edi + 0xfc]
fst dword [edi + 0x108]
fld1
fst dword [edi + 0x10c]
fxch st(1)
fst dword [edi + 0xdc]
fst dword [edi + 0xec]
fst dword [edi + 0xe8]
fst dword [edi + 0xe4]
fst dword [edi + 0xe0]
fld dword [0x545140]
fstp dword [edi + 0xd0]
jne 0x47306b
push ecx
push ecx
fstp dword [esp + 4]
fstp dword [esp]
push str.t1out
jmp 0x4730d1
cmp eax, 1
jne 0x473080
push ecx
push ecx
fstp dword [esp + 4]
fstp dword [esp]
push str.t2out
jmp 0x4730d1
cmp eax, 2
jne 0x473095
push ecx
push ecx
fstp dword [esp + 4]
fstp dword [esp]
push str.t3out
jmp 0x4730d1
cmp eax, esi
jne 0x4730a9
push ecx
push ecx
fstp dword [esp + 4]
fstp dword [esp]
push str.t4out
jmp 0x4730d1
cmp eax, 4
jne 0x4730be
push ecx
push ecx
fstp dword [esp + 4]
fstp dword [esp]
push str.t5out
jmp 0x4730d1
cmp eax, 5
jne 0x4730e0
push ecx
push ecx
fstp dword [esp + 4]
fstp dword [esp]
push str.t6out
mov ebx, dword [0x57b4d0]
call fcn.00499266
fldz
jmp 0x4730f7
cmp eax, 6
jne 0x4730f5
push ecx
push ecx
fstp dword [esp + 4]
fstp dword [esp]
push str.t7out
jmp 0x4730d1
fstp st(1)
fld dword [0x543a90]
mov ebx, dword [0x57b4d0]
push ecx
push ecx
fstp dword [esp + 4]
fstp dword [esp]
call fcn.00499465
mov eax, edi
call fcn.00472914
fld dword [0x544418]
mov eax, dword [0x57b4d0]
fstp dword [eax + 0x44]
xor ebx, ebx
fldz
push 0x225c
fstp dword [eax + 0x48]
mov dword [eax + 0x40], 2
mov byte [eax + 0x78], bl
call fcn.004e0321
cmp eax, ebx
pop ecx
je 0x473170
fld dword [0x544284]
fstp dword [esp + 0x34]
fld dword [0x544620]
fstp dword [esp + 0x38]
push dword [esp + 0x38]
fld1
push dword [esp + 0x38]
push ecx
fstp dword [esp]
push ebx
call fcn.004706aa
jmp 0x473172
xor eax, eax
mov ecx, dword [0x57b4d8]
mov edx, dword [ecx]
push ebx
push ebx
push esi
push eax
call dword [edx + 0x10]
jmp 0x4741c0
mov esi, dword [0x57b4d0]
push 1
push ebx
xor al, al
mov dword [edi + 0x114], ebx
call fcn.00499ace
fld1
mov eax, dword [0x57b4d0]
fst dword [eax + 0x6c]
fld dword [0x544408]
mov dword [eax + 0x64], ebx
fstp dword [eax + 0x70]
mov dword [eax + 0x68], ebx
fld dword [0x544c04]
mov dword [eax + 0x74], ebx
mov eax, dword [0x57b4d8]
fstp dword [eax + 0x90]
fld dword [0x544c00]
fstp dword [eax + 0xa8]
fldz
mov eax, edi
fst dword [edi + 0xc8]
mov dword [edi + 0x118], ebx
fld dword [0x5441c8]
fstp dword [edi + 0xcc]
fld dword [0x544640]
fstp dword [edi + 0xfc]
fst dword [edi + 0x108]
fst dword [edi + 0xdc]
fst dword [edi + 0xec]
fst dword [edi + 0xe8]
fst dword [edi + 0xe4]
fstp dword [edi + 0xe0]
fstp dword [edi + 0x10c]
fld dword [0x545140]
fstp dword [edi + 0xd0]
call fcn.00472914
push 0x225c
call fcn.004e0321
cmp eax, ebx
pop ecx
je 0x473276
fld dword [0x544284]
fstp dword [esp + 0x34]
fld dword [0x544620]
fstp dword [esp + 0x38]
push dword [esp + 0x38]
fld dword [0x543a90]
push dword [esp + 0x38]
push ecx
fstp dword [esp]
push 1
call fcn.004706aa
jmp 0x473278
xor eax, eax
mov ecx, dword [0x57b4d8]
mov edx, dword [ecx]
push ebx
push ebx
push 3
push eax
call dword [edx + 0x10]
fld dword [0x543ab8]
mov esi, dword [0x57b4d8]
push ecx
fstp dword [esp]
call fcn.00453829
cmp dword [0x57b568], ebx
jne 0x4741c0
mov eax, dword [0x57b4d8]
fld dword [0x544824]
fstp dword [eax + 0x5c]
mov dword [eax + 0x60], 4
jmp 0x4741c0
xor ebx, ebx
cmp ecx, ebx
je 0x4732d6
cmp ecx, 3
jne 0x4741be
cmp ecx, ebx
jne 0x4732f3
mov eax, dword [0x57b4d0]
cmp eax, ebx
je 0x4732f3
fld dword [0x544418]
fcomp dword [eax + 0x44]
fnstsw ax
test ah, 0x41
jnp 0x474670
cmp ecx, 3
jne 0x473682
fcom dword [edi + 0xf0]
fnstsw ax
test ah, 0x41
jp 0x473562
fld dword [edi + 0xf0]
fsub dword [ebp + 8]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fstp dword [edi + 0xf0]
fcomp dword [esp + 0x14]
fnstsw ax
test ah, 0x41
jne 0x473564
call fcn.004e0031
and eax, 0x80000001
jns 0x473344
dec eax
or eax, 0xfffffffe
inc eax
push 0xd8
jne 0x4733f2
call fcn.004e0321
cmp eax, ebx
pop ecx
mov dword [esp + 0x14], eax
je 0x4734a4
fld dword [0x54513c]
fstp dword [esp + 0x34]
call fcn.004e0031
cdq
mov ecx, 0x2bc
idiv ecx
mov esi, 0xc8
add edx, esi
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fstp dword [esp + 0x38]
fld dword [0x543eb0]
fstp dword [esp + 0x28]
call fcn.004e0031
cdq
mov ecx, 0x2bc
idiv ecx
add edx, esi
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fstp dword [esp + 0x2c]
fld dword [0x543ef0]
fstp dword [esp + 0x18]
call fcn.004e0031
cdq
mov ecx, 0x2bc
idiv ecx
push dword [esp + 0x38]
push dword [esp + 0x38]
push dword [esp + 0x34]
push dword [esp + 0x34]
add edx, esi
mov dword [esp + 0x20], edx
fild dword [esp + 0x20]
fstp dword [esp + 0x2c]
push dword [esp + 0x2c]
push dword [esp + 0x2c]
jmp 0x473490
call fcn.004e0321
cmp eax, ebx
pop ecx
mov dword [esp + 0x14], eax
je 0x4734a4
fld dword [0x545138]
fstp dword [esp + 0x18]
call fcn.004e0031
cdq
mov ecx, 0x2bc
idiv ecx
mov esi, 0xc8
add edx, esi
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fstp dword [esp + 0x1c]
fld dword [0x543eb0]
fstp dword [esp + 0x34]
call fcn.004e0031
cdq
mov ecx, 0x2bc
idiv ecx
add edx, esi
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fstp dword [esp + 0x38]
fld dword [0x54513c]
fstp dword [esp + 0x28]
call fcn.004e0031
cdq
mov ecx, 0x2bc
idiv ecx
push dword [esp + 0x1c]
push dword [esp + 0x1c]
push dword [esp + 0x40]
push dword [esp + 0x40]
add edx, esi
mov dword [esp + 0x20], edx
fild dword [esp + 0x20]
fstp dword [esp + 0x3c]
push dword [esp + 0x3c]
push dword [esp + 0x3c]
mov eax, dword [esp + 0x2c]
push 3
push 0x541800
call fcn.0049a7c1
mov esi, eax
jmp 0x4734a6
xor esi, esi
call fcn.004e0031
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
mov byte [esi + 0xd4], 1
fdiv qword [0x543930]
fld qword [0x543958]
fmul st(1), st(0)
faddp st(1)
fstp dword [esi + 0xc8]
call fcn.004e0031
push 3
cdq
pop ecx
idiv ecx
sub edx, ebx
je 0x47352c
dec edx
je 0x473526
dec edx
jne 0x47353b
fld dword [esi + 0x40]
push ebx
fldz
push ebx
fadd st(1), st(0)
push ecx
fxch st(1)
fstp dword [esi + 0x40]
fld dword [esi + 0x44]
fld qword [0x543cc8]
fsub st(1), st(0)
fxch st(1)
fstp dword [esi + 0x44]
fld dword [esi + 0x48]
fadd st(2)
fstp dword [esi + 0x48]
fld dword [esi + 0x4c]
fsub st(1)
fstp dword [esi + 0x4c]
fld dword [esi + 0x50]
faddp st(2)
fxch st(1)
fstp dword [esi + 0x50]
fsubr dword [esi + 0x54]
fstp dword [esi + 0x54]
jmp 0x47352f
push ebx
push ebx
push 2
jmp 0x47352f
push ebx
push ebx
push ebx
mov ecx, dword [0x57b4d8]
mov eax, dword [ecx]
push esi
call dword [eax + 0x10]
call fcn.004e0031
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fdiv qword [0x543930]
fmul qword [0x543938]
fadd qword [0x543908]
fstp dword [edi + 0xf0]
jmp 0x473564
fstp st(0)
fld dword [0x543b7c]
push ebx
mov ebx, dword [0x57b4d8]
push ecx
fstp dword [esp]
call fcn.00456746
mov eax, dword [0x57b4d0]
xor ebx, ebx
cmp eax, ebx
je 0x4735a2
cmp dword [eax + 0x64], ebx
jne 0x4735a2
fldz
mov esi, dword [0x57b53c]
push ecx
fstp dword [esp]
call fcn.0049bf22
xor ebx, ebx
jmp 0x473684
call fcn.004014e2
mov esi, 0x84
add eax, esi
test byte [eax + 0x1b], 2
jbe 0x4735bc
cmp byte [eax + 0x108], bl
je 0x4735e4
call fcn.004014e2
add eax, esi
test byte [eax + 1], 2
jbe 0x47359b
cmp byte [eax + 0x108], bl
jne 0x47359b
fld dword [0x544470]
fcomp dword [edi + 0xd0]
fnstsw ax
test ah, 5
jp 0x47359b
mov eax, dword [0x57b4d0]
cmp eax, ebx
je 0x473604
fldz
mov dword [eax + 0x64], ebx
fstp dword [eax + 0x6c]
mov dword [eax + 0x68], ebx
fld dword [0x544408]
mov dword [eax + 0x74], ebx
fstp dword [eax + 0x70]
fldz
mov esi, dword [0x57b53c]
push ecx
fstp dword [esp]
call fcn.0049bf22
mov eax, dword [edi + 0x104]
inc eax
push eax
lea eax, [esp + 0x40]
push str.temp_doutro.ogg
push eax
call fcn.004e116e
add esp, 0xc
lea eax, [esp + 0x3c]
push ebx
push eax
call fcn.0041cab2
call fcn.004275a6
mov esi, eax
cmp esi, ebx
je 0x47359b
call fcn.0042890d
test al, al
je 0x473675
fld1
sub esp, 0xc
fstp dword [esp + 8]
fldz
fstp dword [esp + 4]
fld dword [0x543950]
fstp dword [esp]
push esi
call fcn.0041cab2
call fcn.00427763
lea ebx, [esi + 0xc]
call fcn.0041a39b
jmp 0x47359b
fstp st(0)
fldz
fcom dword [edi + 0xc8]
fnstsw ax
test ah, 0x41
jp 0x4736e1
fld dword [edi + 0xc8]
fsub dword [ebp + 8]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fstp dword [edi + 0xc8]
fcom dword [esp + 0x14]
fnstsw ax
test ah, 0x41
jne 0x474670
fld1
sub esp, 0xc
fst dword [esp + 8]
fxch st(1)
fstp dword [esp + 4]
fstp dword [esp]
push str.sfx_temple_frames.ogg
call fcn.0041cab2
mov ecx, eax
call fcn.0042746b
jmp 0x474672
fld dword [edi + 0xfc]
fcomp qword [0x5446a0]
fnstsw ax
test ah, 0x41
jne 0x473742
fcom dword [edi + 0xfc]
fnstsw ax
test ah, 5
jp 0x473733
fld dword [ebp + 8]
fmul qword [0x543dd0]
fadd dword [edi + 0xfc]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fstp dword [edi + 0xfc]
fld1
fcomp dword [esp + 0x14]
fnstsw ax
test ah, 5
jp 0x473742
fld dword [0x543b70]
jmp 0x47373c
fld dword [edi + 0xfc]
fadd dword [ebp + 8]
fstp dword [edi + 0xfc]
fld1
fcom dword [edi + 0xcc]
fnstsw ax
test ah, 0x41
jne 0x47377f
fxch st(1)
fcom dword [edi + 0xcc]
fnstsw ax
fld dword [ebp + 8]
test ah, 0x41
jne 0x47376b
fmul qword [0x543d18]
jmp 0x473771
fmul qword [0x543d50]
fadd dword [edi + 0xcc]
fstp dword [edi + 0xcc]
jmp 0x473787
fst dword [edi + 0xcc]
fxch st(1)
fcom dword [edi + 0xcc]
fnstsw ax
test ah, 0x41
jne 0x4737a6
fstp st(0)
fstp st(0)
fld dword [edi + 0xcc]
fmul qword [0x5439d8]
jmp 0x4737eb
fxch st(1)
fcomp dword [edi + 0xcc]
fnstsw ax
test ah, 0x41
jne 0x4737eb
fstp st(0)
push ecx
fld dword [edi + 0xcc]
push ecx
fld1
fsubrp st(1)
fstp qword [esp + 0x20]
fld dword [edi + 0xcc]
fmul qword [0x543970]
fstp qword [esp]
call fcn.004e0a20
fmul qword [0x543b50]
pop ecx
pop ecx
fmul qword [esp + 0x18]
fmul qword [esp + 0x18]
mov eax, dword [0x57b4d8]
fstp dword [edi + 0xd0]
fld dword [eax + 0x70]
call fcn.005209b0
mov ecx, dword [0x57b4d8]
cmp dword [ecx + 0x78], ebx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ebx
je 0x473815
mov dword [esp + 0x14], eax
fild dword [esp + 0x10]
fmul qword [0x545130]
fld dword [edi + 0xd0]
fchs
fld qword [0x543978]
fdiv st(1), st(0)
fxch st(1)
fadd st(2)
fstp dword [edi + 0xd4]
fdivr dword [edi + 0xd0]
fsubrp st(1)
fstp dword [edi + 0xd8]
fld dword [edi + 0xd0]
fild dword [esp + 0x14]
fdiv qword [0x544540]
fmul qword [0x543cc8]
fsubp st(1)
fstp dword [edi + 0xd0]
fld dword [0x543950]
fcomp dword [edi + 0xcc]
fnstsw ax
test ah, 0x41
jp 0x47389f
mov dword [esp + 0x28], ebx
lea esi, [edi + 0x48]
cmp dword [esi], ebx
je 0x47389f
mov ecx, dword [esi]
fld dword [ebp + 8]
mov eax, dword [ecx]
push ecx
fstp dword [esp]
call dword [eax + 0xc]
inc dword [esp + 0x28]
add esi, 4
cmp dword [esp + 0x28], 0x18
jl 0x47387f
cmp byte [edi + 0x11c], bl
je 0x473a34
fldz
fcom dword [edi + 0xd0]
fnstsw ax
test ah, 0x41
jp 0x473a32
fld dword [edi + 0xcc]
fcomp qword [0x543e30]
fnstsw ax
test ah, 1
jne 0x473a32
fld dword [0x545010]
push 1
fstp dword [esp + 0x1c]
mov byte [edi + 0x11c], bl
fld dword [0x545128]
sub esp, 0xc
fstp dword [esp + 0x2c]
mov edi, esp
lea esi, [esp + 0x28]
fstp dword [esp + 0x30]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push 0x54181c
push str.fx_frame_fx_gold.cug
movsd dword es:[edi], dword [esi]
call fcn.004064de
mov ecx, eax
call fcn.00410903
mov ecx, dword [0x57b4d8]
mov edx, dword [ecx]
push ebx
push ebx
push 0xffffffffffffffff
push eax
call dword [edx + 0x10]
fld dword [0x545124]
fstp dword [esp + 0x18]
push 1
fld dword [0x545128]
sub esp, 0xc
fstp dword [esp + 0x2c]
mov edi, esp
fldz
lea esi, [esp + 0x28]
fstp dword [esp + 0x30]
push 0x54181c
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push str.fx_frame_fx_gold.cug
movsd dword es:[edi], dword [esi]
call fcn.004064de
mov ecx, eax
call fcn.00410903
mov ecx, dword [0x57b4d8]
fld dword [0x543ec0]
mov edx, dword [ecx]
fstp dword [eax + 0x6c]
push ebx
push ebx
push 0xffffffffffffffff
push eax
call dword [edx + 0x10]
fld dword [0x545010]
fstp dword [esp + 0x18]
push 1
fld dword [0x544d20]
sub esp, 0xc
fstp dword [esp + 0x2c]
mov edi, esp
fldz
lea esi, [esp + 0x28]
fstp dword [esp + 0x30]
push 0x54181c
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push str.fx_frame_fx_gold.cug
movsd dword es:[edi], dword [esi]
call fcn.004064de
mov ecx, eax
call fcn.00410903
mov ecx, dword [0x57b4d8]
fld dword [0x543c7c]
mov edx, dword [ecx]
fstp dword [eax + 0x6c]
push ebx
push ebx
push 0xffffffffffffffff
push eax
call dword [edx + 0x10]
fld dword [0x545124]
fstp dword [esp + 0x18]
fld dword [0x544d20]
push 1
fstp dword [esp + 0x20]
sub esp, 0xc
fldz
mov edi, esp
fstp dword [esp + 0x30]
lea esi, [esp + 0x28]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push 0x54181c
push str.fx_frame_fx_gold.cug
movsd dword es:[edi], dword [esi]
call fcn.004064de
mov ecx, eax
call fcn.00410903
mov ecx, dword [0x57b4d8]
fld dword [0x543cfc]
mov edx, dword [ecx]
fstp dword [eax + 0x6c]
push ebx
push ebx
push 0xffffffffffffffff
push eax
call dword [edx + 0x10]
mov edi, dword [esp + 0x30]
jmp 0x473a34
fstp st(0)
call fcn.004434ea
test eax, eax
je 0x473df2
mov esi, dword [edi + 0x104]
call fcn.004434ea
mov ecx, dword [edi + 0x100]
cmp ecx, dword [eax + esi*4 + 0x30]
je 0x473df2
fldz
fcomp dword [edi + 0xd0]
fnstsw ax
test ah, 0x41
jp 0x473dea
fld dword [edi + 0xcc]
fcomp qword [0x543e30]
fnstsw ax
test ah, 1
jne 0x473dea
push esi
lea eax, [esp + 0x60]
push str.temple_d.save
push eax
call fcn.004e116e
add esp, 0xc
call fcn.004296e6
push eax
xor ecx, ecx
lea edx, [esp + 0x60]
call fcn.00421107
mov eax, dword [edi + 0x100]
lea ecx, [esp + 0x34]
mov esi, edi
call fcn.00474901
fldz
mov eax, dword [edi + 0x100]
fstp dword [edi + 0x10c]
mov dword [edi + 0x110], eax
call fcn.004434ea
mov ecx, dword [edi + 0x104]
mov eax, dword [eax + ecx*4 + 0x30]
mov ecx, dword [edi + 0x110]
inc ecx
cmp eax, ecx
mov dword [edi + 0x100], eax
jne 0x473dd4
push 0xf4
call fcn.004e0321
cmp eax, ebx
pop ecx
je 0x473b14
push str.crash
call fcn.00418317
mov esi, eax
mov dword [esp + 0x14], esi
jmp 0x473b1a
mov dword [esp + 0x14], ebx
mov esi, ebx
push str.fx_scarab_crush.cug
push ecx
call fcn.004064de
pop ecx
mov ecx, eax
call fcn.00406d85
fld1
sub esp, 0xc
fst dword [esp + 8]
fldz
mov dword [esp + 0x1c], eax
fstp dword [esp + 4]
fstp dword [esp]
push str.sfx_next_level.ogg
call fcn.0041cab2
mov ecx, eax
call fcn.0042746b
cmp dword [esp + 0x10], ebx
je 0x473be3
push 0x9c
call fcn.004e0321
cmp eax, ebx
pop ecx
je 0x473bb1
fld dword [esp + 0x34]
sub esp, 0xc
fstp dword [esp + 0x24]
mov edi, esp
fld dword [esp + 0x44]
lea esi, [esp + 0x24]
fadd qword [0x543958]
push str.flash
mov ebx, eax
fstp dword [esp + 0x2c]
fldz
fstp dword [esp + 0x30]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.0040ff69
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x14]
mov dword [esp + 0x28], eax
xor ebx, ebx
jmp 0x473bb5
mov dword [esp + 0x28], ebx
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx]
push ebx
push ebx
push 0xffffffffffffffff
push dword [esp + 0x34]
call dword [eax + 0x10]
mov ecx, dword [0x57b4d8]
mov eax, dword [ecx]
push ebx
push ebx
push ebx
push dword [esp + 0x34]
call dword [eax + 0x10]
mov eax, dword [esp + 0x28]
mov byte [eax + 0x9b], 1
fld1
mov eax, 0xbcffffff
push eax
mov eax, dword [edi + 0xb8]
sub esp, 0x14
fst dword [esp + 0x10]
mov edi, esi
fstp dword [esp + 0xc]
fldz
fstp dword [esp + 8]
fld dword [esp + 0x50]
fstp dword [esp + 4]
fld dword [esp + 0x4c]
fstp dword [esp]
push 0x80
push 6
push 5
push 0x72
call fcn.0041871f
fld dword [0x543b74]
mov ecx, 0xe1ffffff
push ecx
push ecx
fstp dword [esp + 4]
mov eax, 0xffffff
fld dword [0x543a30]
fstp dword [esp]
push eax
fld dword [0x543c88]
push ecx
sub esp, 0x20
fstp dword [esp + 0x1c]
fld dword [0x543ab8]
fst dword [esp + 0x18]
fld dword [0x544640]
fstp dword [esp + 0x14]
fstp dword [esp + 0x10]
fld dword [0x5450a0]
fstp dword [esp + 0xc]
fldz
fstp dword [esp + 8]
fld dword [0x544138]
fstp dword [esp + 4]
fld dword [0x543eec]
fstp dword [esp]
call fcn.00418c4a
fldz
mov ecx, dword [0x57b4d8]
fstp dword [esp + 0x18]
fld dword [0x5442fc]
push ebx
mov eax, dword [esp + 0x1c]
fstp dword [esp + 0x20]
mov dword [esi + 0xe0], eax
mov eax, dword [esp + 0x20]
push ebx
push ebx
mov dword [esi + 0xe4], eax
mov byte [esi + 0xf1], 1
mov eax, dword [ecx]
push esi
call dword [eax + 0x10]
mov edi, dword [esp + 0x30]
mov ecx, dword [edi + 0x110]
lea eax, [ecx - 1]
push 6
xor edx, edx
pop esi
mov dword [esp + 0x10], eax
div esi
mov byte [edi + 0x11d], bl
cmp edx, 5
jne 0x473d45
mov eax, dword [esp + 0x10]
push 0x18
xor edx, edx
pop ecx
div ecx
mov dword [edi + 0x114], 1
cmp edx, 0x17
jne 0x473d0f
mov byte [edi + 0x11d], 1
fld1
sub esp, 0xc
fst dword [esp + 8]
fldz
fstp dword [esp + 4]
fstp dword [esp]
push str.sfx_stage_complete.ogg
call fcn.0041cab2
mov ecx, eax
call fcn.0042746b
fld1
mov esi, dword [0x57b4d8]
push ecx
fstp dword [esp]
call fcn.004538a7
jmp 0x473da3
cmp ecx, 4
jne 0x473da3
mov eax, dword [edi + 0x104]
xor esi, esi
movzx ecx, byte [esi + 0x568790]
cmp ecx, eax
jne 0x473d62
cmp esi, 6
jl 0x473d6a
inc esi
cmp esi, 6
jl 0x473d52
jmp 0x473da3
call fcn.004434ea
movzx ecx, byte [esi + 0x568791]
push 0xd0
mov dword [eax + ecx*4 + 0x4c], ebx
call fcn.004e0321
cmp eax, ebx
pop ecx
je 0x473d91
push eax
call fcn.004330de
jmp 0x473d93
xor eax, eax
mov ecx, dword [0x57b4c4]
mov edx, dword [ecx]
push ebx
push ebx
push 0xffffffffffffffff
push eax
call dword [edx + 0x10]
cmp dword [edi + 0x114], 1
je 0x473dea
cmp dword [0x57b568], ebx
jne 0x473dea
fld dword [0x543c78]
mov eax, edi
mov ecx, dword [eax + 0x100]
mov eax, dword [0x57b4d8]
and ecx, 1
fstp dword [eax + 0x5c]
inc ecx
inc ecx
mov dword [eax + 0x60], ecx
jmp 0x473dea
mov eax, edi
call fcn.00472914
mov esi, dword [0x57b57c]
cmp esi, ebx
je 0x473dea
call fcn.00471b55
fldz
fstp dword [edi + 0x108]
fld dword [edi + 0xdc]
fadd dword [ebp + 8]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fstp dword [edi + 0xdc]
fld dword [0x544048]
fcomp dword [esp + 0x14]
fnstsw ax
test ah, 0x41
jne 0x4741c0
fld dword [0x543a90]
fcomp dword [esp + 0x14]
fnstsw ax
test ah, 5
jp 0x473f05
fld1
fcom dword [edi + 0xe0]
fnstsw ax
test ah, 0x41
jne 0x473f03
fld dword [ebp + 8]
fmul qword [0x543978]
fadd dword [edi + 0xe0]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fstp dword [edi + 0xe0]
fcom dword [esp + 0x10]
fnstsw ax
test ah, 0x41
jp 0x473f03
push str.fxwnd_puff.cug
fstp dword [edi + 0xe0]
push ecx
call fcn.004064de
pop ecx
mov ecx, eax
call fcn.00406d85
push 0x9c
mov dword [esp + 0x14], eax
call fcn.004e0321
cmp eax, ebx
pop ecx
je 0x473eda
fld dword [0x5446b8]
sub esp, 0xc
fstp dword [esp + 0x24]
mov edi, esp
fld dword [0x545120]
lea esi, [esp + 0x24]
fstp dword [esp + 0x28]
push str.wnd_puff
fldz
mov ebx, eax
fstp dword [esp + 0x30]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.0040ff69
mov edi, dword [esp + 0x30]
mov esi, eax
xor ebx, ebx
jmp 0x473edc
xor esi, esi
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx]
push ebx
push ebx
push 0xffffffffffffffff
push esi
call dword [eax + 0x10]
mov ecx, dword [0x57b4d8]
push ebx
push ebx
push 1
mov byte [esi + 0x9b], 1
mov eax, dword [ecx]
push esi
call dword [eax + 0x10]
jmp 0x473f05
fstp st(0)
fld dword [0x543ab8]
fcomp dword [edi + 0xdc]
fnstsw ax
test ah, 5
jp 0x473fee
fld1
fcom dword [edi + 0xe4]
fnstsw ax
test ah, 0x41
jne 0x473fec
fld dword [ebp + 8]
fmul qword [0x543978]
fadd dword [edi + 0xe4]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fstp dword [edi + 0xe4]
fcom dword [esp + 0x10]
fnstsw ax
test ah, 0x41
jp 0x473fec
push str.fxwnd_puff.cug
fstp dword [edi + 0xe4]
push ecx
call fcn.004064de
pop ecx
mov ecx, eax
call fcn.00406d85
push 0x9c
mov dword [esp + 0x14], eax
call fcn.004e0321
cmp eax, ebx
pop ecx
je 0x473fc3
fld dword [0x54511c]
sub esp, 0xc
fstp dword [esp + 0x24]
mov edi, esp
fld dword [0x545118]
lea esi, [esp + 0x24]
fstp dword [esp + 0x28]
push str.wnd_puff
fldz
mov ebx, eax
fstp dword [esp + 0x30]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.0040ff69
mov edi, dword [esp + 0x30]
mov esi, eax
xor ebx, ebx
jmp 0x473fc5
xor esi, esi
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx]
push ebx
push ebx
push 0xffffffffffffffff
push esi
call dword [eax + 0x10]
mov ecx, dword [0x57b4d8]
push ebx
push ebx
push 1
mov byte [esi + 0x9b], 1
mov eax, dword [ecx]
push esi
call dword [eax + 0x10]
jmp 0x473fee
fstp st(0)
fld dword [edi + 0xdc]
fcomp qword [0x545110]
fnstsw ax
test ah, 0x41
jne 0x4740d7
fld1
fcom dword [edi + 0xe8]
fnstsw ax
test ah, 0x41
jne 0x4740d5
fld dword [ebp + 8]
fmul qword [0x543978]
fadd dword [edi + 0xe8]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fstp dword [edi + 0xe8]
fcom dword [esp + 0x10]
fnstsw ax
test ah, 0x41
jp 0x4740d5
push str.fxwnd_puff.cug
fstp dword [edi + 0xe8]
push ecx
call fcn.004064de
pop ecx
mov ecx, eax
call fcn.00406d85
push 0x9c
mov dword [esp + 0x14], eax
call fcn.004e0321
cmp eax, ebx
pop ecx
je 0x4740ac
fld dword [0x54510c]
sub esp, 0xc
fstp dword [esp + 0x24]
mov edi, esp
fld dword [0x545108]
lea esi, [esp + 0x24]
fstp dword [esp + 0x28]
push str.wnd_puff
fldz
mov ebx, eax
fstp dword [esp + 0x30]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.0040ff69
mov edi, dword [esp + 0x30]
mov esi, eax
xor ebx, ebx
jmp 0x4740ae
xor esi, esi
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx]
push ebx
push ebx
push 0xffffffffffffffff
push esi
call dword [eax + 0x10]
mov ecx, dword [0x57b4d8]
push ebx
push ebx
push 1
mov byte [esi + 0x9b], 1
mov eax, dword [ecx]
push esi
call dword [eax + 0x10]
jmp 0x4740d7
fstp st(0)
fld dword [edi + 0xdc]
fcomp qword [0x545100]
fnstsw ax
test ah, 0x41
jne 0x4741c0
fld1
fcom dword [edi + 0xec]
fnstsw ax
test ah, 0x41
jne 0x4741be
fld dword [ebp + 8]
fmul qword [0x543978]
fadd dword [edi + 0xec]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fstp dword [edi + 0xec]
fcom dword [esp + 0x10]
fnstsw ax
test ah, 0x41
jp 0x4741be
push str.fxwnd_puff.cug
fstp dword [edi + 0xec]
push ecx
call fcn.004064de
pop ecx
mov ecx, eax
call fcn.00406d85
push 0x9c
mov dword [esp + 0x14], eax
call fcn.004e0321
test eax, eax
pop ecx
je 0x474193
fld dword [0x54510c]
sub esp, 0xc
fstp dword [esp + 0x24]
mov edi, esp
fld dword [0x544a04]
lea esi, [esp + 0x24]
fstp dword [esp + 0x28]
push str.wnd_puff
fldz
mov ebx, eax
fstp dword [esp + 0x30]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.0040ff69
mov edi, dword [esp + 0x30]
mov esi, eax
jmp 0x474195
xor esi, esi
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx]
xor ebx, ebx
push ebx
push ebx
push 0xffffffffffffffff
push esi
call dword [eax + 0x10]
mov ecx, dword [0x57b4d8]
push ebx
push ebx
push 1
mov byte [esi + 0x9b], 1
mov eax, dword [ecx]
push esi
call dword [eax + 0x10]
jmp 0x4741c0
fstp st(0)
mov ecx, dword [edi + 0x40]
xor esi, esi
cmp ecx, esi
je 0x4741e9
cmp dword [edi + 0x44], esi
je 0x4741e9
fld dword [ebp + 8]
mov eax, dword [ecx]
push ecx
fstp dword [esp]
call dword [eax + 0xc]
mov ecx, dword [edi + 0x44]
fld dword [ebp + 8]
mov eax, dword [ecx]
push ecx
fstp dword [esp]
call dword [eax + 0xc]
fld1
fcom dword [edi + 0x10c]
fnstsw ax
test ah, 0x41
jne 0x474607
fld dword [ebp + 8]
fmul qword [0x5443e0]
fadd dword [edi + 0x10c]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fstp dword [edi + 0x10c]
fcom dword [esp + 0x10]
fnstsw ax
test ah, 5
jp 0x4745de
cmp dword [edi + 0x114], 1
fstp dword [edi + 0x10c]
jne 0x4745d3
mov eax, dword [edi + 0x110]
lea ebx, [eax - 6]
cmp ebx, eax
jae 0x474296
push 0xd4
call fcn.004e0321
cmp eax, esi
pop ecx
mov dword [esp + 0x10], eax
je 0x47427b
lea eax, [ebx + 1]
lea ecx, [esp + 0x18]
mov esi, edi
call fcn.00474901
push dword [eax + 4]
push dword [eax]
mov eax, dword [esp + 0x18]
call fcn.0046d4cd
xor esi, esi
jmp 0x47427d
xor eax, eax
mov ecx, dword [0x57b4c4]
mov edx, dword [ecx]
push esi
push esi
push 0xffffffffffffffff
push eax
call dword [edx + 0x10]
inc ebx
cmp ebx, dword [edi + 0x110]
jb 0x474248
mov eax, dword [edi + 0x110]
dec eax
push 0x18
xor edx, edx
pop ecx
div ecx
lea eax, [edx + 1]
cmp eax, 6
jne 0x4742b8
mov dword [edi + 0x118], 1
jmp 0x4742e4
cmp eax, 0xc
jne 0x4742c9
mov dword [edi + 0x118], 2
jmp 0x4742e4
cmp eax, 0x12
jne 0x4742da
mov dword [edi + 0x118], 3
jmp 0x4742e4
mov dword [edi + 0x118], 4
mov ecx, dword [0x57b4d8]
mov eax, dword [ecx]
push 0xfffffffffffffffd
push 0x578390
push str.flash
call dword [eax + 0x24]
mov ebx, eax
cmp ebx, esi
je 0x47431f
mov ecx, dword [0x57b4c4]
mov eax, dword [ecx]
push esi
push esi
push 0xffffffffffffffff
push ebx
call dword [eax + 0x10]
mov ecx, dword [0x57b4d8]
mov eax, dword [ecx]
push 0xfffffffffffffffd
push ebx
call dword [eax + 0x14]
mov ecx, dword [0x57b4d8]
mov eax, dword [ecx]
push 0xfffffffffffffffd
push 0x5786c0
push str.crash
call dword [eax + 0x24]
mov esi, eax
xor ebx, ebx
cmp esi, ebx
je 0x47435c
mov ecx, dword [0x57b4c4]
mov eax, dword [ecx]
push ebx
push ebx
push 0xffffffffffffffff
push esi
call dword [eax + 0x10]
mov ecx, dword [0x57b4d8]
mov eax, dword [ecx]
push 0xfffffffffffffffd
push esi
call dword [eax + 0x14]
push 0x78
call fcn.004e0321
cmp eax, ebx
pop ecx
je 0x474376
push str.complete
mov ebx, eax
call fcn.0049a466
mov ebx, eax
mov edi, dword [edi + 0x118]
cmp edi, 2
je 0x47438a
cmp edi, 4
je 0x47438a
xor ecx, ecx
jmp 0x47438f
mov ecx, 0xef
cmp edi, 3
je 0x47439d
cmp edi, 4
je 0x47439d
xor eax, eax
jmp 0x4743a2
mov eax, 0x284
add eax, 0xbf
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
add ecx, 0x12d
mov dword [esp + 0x10], ecx
sub esp, 0x18
fstp dword [esp + 0x30]
mov edi, esp
fild dword [esp + 0x28]
lea esi, [esp + 0x30]
fstp dword [esp + 0x34]
fldz
fstp dword [esp + 0x38]
fld dword [0x543c6c]
fstp dword [esp + 0x14]
fld1
fstp dword [esp + 0x10]
fld dword [0x543c7c]
fstp dword [esp + 0xc]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push 0x1c
movsd dword es:[edi], dword [esi]
call fcn.0049a526
mov ecx, dword [0x57b4c4]
fldz
lea edi, [ebx + 0x54]
fst dword [esp + 0x18]
lea esi, [esp + 0x18]
fld dword [0x5450f8]
mov byte [ebx + 0x74], 1
fstp dword [esp + 0x1c]
fstp dword [esp + 0x20]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [ecx]
xor esi, esi
push esi
push esi
push 0xffffffffffffffff
push ebx
call dword [eax + 0x10]
mov ebx, dword [esp + 0x30]
mov eax, dword [ebx + 0x118]
cmp eax, 2
mov dword [ebx + 0x110], esi
je 0x47444a
cmp eax, 4
je 0x47444a
xor edx, edx
jmp 0x47444f
mov edx, 0xef
cmp eax, 3
je 0x47445d
cmp eax, 4
je 0x47445d
xor ecx, ecx
jmp 0x474462
mov ecx, 0x284
mov eax, dword [0x57b4c4]
add ecx, 0x49
push 0
mov dword [esp + 0x14], ecx
fild dword [esp + 0x14]
push 0
add edx, 0xaa
push 0xffffffffffffffff
fstp dword [esp + 0x24]
mov dword [esp + 0x1c], edx
fild dword [esp + 0x1c]
push ecx
push 1
sub esp, 0xc
fstp dword [esp + 0x3c]
mov edi, esp
fldz
lea esi, [esp + 0x38]
fstp dword [esp + 0x40]
mov dword [esp + 0x34], eax
mov eax, dword [eax]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
add eax, 0x10
push 0x53c7a8
push str.fx_frame_fx.cug
mov dword [esp + 0x38], eax
movsd dword es:[edi], dword [esi]
call fcn.004064de
mov ecx, eax
call fcn.00410903
pop ecx
mov ecx, dword [esp + 0x20]
push eax
mov eax, dword [esp + 0x20]
call dword [eax]
mov eax, dword [ebx + 0x118]
cmp eax, 2
je 0x4744e6
cmp eax, 4
je 0x4744e6
xor edx, edx
jmp 0x4744eb
mov edx, 0xef
cmp eax, 3
je 0x4744f9
cmp eax, 4
je 0x4744f9
xor ecx, ecx
jmp 0x4744fe
mov ecx, 0x284
mov eax, dword [0x57b4d8]
add ecx, 0xbc
push 0
mov dword [esp + 0x14], ecx
fild dword [esp + 0x14]
push 0
add edx, 0x10b
push 0xffffffffffffffff
fstp dword [esp + 0x24]
mov dword [esp + 0x1c], edx
fild dword [esp + 0x1c]
push ecx
push 1
sub esp, 0xc
fstp dword [esp + 0x3c]
mov edi, esp
fldz
lea esi, [esp + 0x38]
fstp dword [esp + 0x40]
mov dword [esp + 0x34], eax
mov eax, dword [eax]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
add eax, 0x10
push 0x53c7a8
push str.fx_frame_fx_back.cug
mov dword [esp + 0x38], eax
movsd dword es:[edi], dword [esi]
call fcn.004064de
mov ecx, eax
call fcn.00410903
pop ecx
mov ecx, dword [esp + 0x20]
push eax
mov eax, dword [esp + 0x20]
call dword [eax]
mov esi, dword [0x57b4d8]
xor edi, edi
push edi
mov eax, ebx
call fcn.0041a5ed
push edi
push ebx
call fcn.0041cab2
push eax
mov eax, str.music_scarab_hunt.ogg
call fcn.0042765f
fld dword [0x543ab8]
sub esp, 0xc
fstp dword [esp + 8]
mov dword [ebx + 0xac], eax
fld1
fstp dword [esp + 4]
fldz
fstp dword [esp]
push eax
call fcn.0041cab2
call fcn.00427763
mov eax, dword [ebx + 0xac]
xor ecx, ecx
push edi
inc ecx
push ecx
call fcn.00428885
xor eax, eax
jmp 0x474675
mov dword [edi + 0x110], esi
jmp 0x474672
cmp dword [edi + 0x114], 1
fstp st(0)
jne 0x474672
call fcn.004014e2
add eax, 0x84
mov byte [eax + 0x108], 1
mov byte [eax + 0x109], 1
jmp 0x474672
fcom dword [edi + 0x108]
fnstsw ax
test ah, 0x41
jne 0x474670
fldz
fcomp dword [edi + 0xd0]
fnstsw ax
test ah, 0x44
jp 0x474670
cmp dword [edi + 0x114], esi
jne 0x474670
fld dword [ebp + 8]
fmul qword [0x5439a0]
fadd dword [edi + 0x108]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fstp dword [edi + 0x108]
fcomp dword [esp + 0x10]
fnstsw ax
test ah, 5
jp 0x474672
cmp dword [0x57b4ec], esi
jne 0x474666
push dword [0x57b4d8]
call fcn.00456859
fld1
fstp dword [edi + 0x108]
jmp 0x474672
fstp st(0)
xor eax, eax
inc eax
mov ecx, dword [esp + 0x84]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004e0010
mov esp, ebp
pop ebp
ret 4