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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc0
mov eax, dword [0x557b14]
xor eax, ebp
mov dword [ebp - 8], eax
push ebx
mov ebx, ecx
cmp byte [ebx + 0x7a], 0
push esi
push edi
mov dword [ebp - 0xb0], ebx
je 0x478f88
fld dword [ebx + 0x54]
fld dword [ebp + 8]
fmul qword [0x5450f0]
fsubp st(1)
fstp dword [ebp - 0xa0]
fld dword [ebp - 0xa0]
fstp dword [ebx + 0x54]
fldz
fcom dword [ebp - 0xa0]
fnstsw ax
test ah, 0x41
jne 0x4786f3
fst dword [ebx + 0x54]
fld1
or dword [ebx + 0x30], 0xffffffff
fst dword [ebx + 0x28]
fxch st(1)
fcom dword [ebx + 0x2c]
fnstsw ax
test ah, 0x41
jp 0x478754
fld dword [ebp + 8]
fmul qword [0x543938]
fadd dword [ebx + 0x2c]
fstp dword [ebp - 0x9c]
fld dword [ebp - 0x9c]
fstp dword [ebx + 0x2c]
fxch st(1)
fcom dword [ebp - 0x9c]
fnstsw ax
test ah, 0x41
jp 0x478735
fst dword [ebx + 0x2c]
fld dword [ebx + 0x2c]
fmul qword [0x543d40]
fsubr qword [0x543bb8]
call fcn.005209e6
fxch st(1)
mov byte [ebx + 0x30], al
mov byte [ebx + 0x31], al
mov byte [ebx + 0x32], al
fcomp dword [ebx + 0x20]
fnstsw ax
test ah, 0x41
jp 0x4787dc
fld dword [ebp + 8]
fmul qword [0x543998]
fadd dword [ebx + 0x20]
fstp dword [ebp - 0xa0]
fld dword [ebp - 0xa0]
fstp dword [ebx + 0x20]
fcomp dword [ebp - 0xa0]
fnstsw ax
test ah, 5
jp 0x47878d
mov al, 1
jmp 0x479a85
fld dword [ebp - 0xa0]
push ecx
fld1
fsubrp st(1)
fstp dword [ebp - 0x98]
fld dword [ebp - 0x98]
fstp dword [esp]
call fcn.0040ff28
movzx eax, byte [ebx + 0x33]
fstp dword [ebp - 0x9c]
fld dword [ebp - 0x9c]
mov dword [ebp - 0x98], eax
fstp dword [ebx + 0x28]
pop ecx
fild dword [ebp - 0x98]
fmul dword [ebp - 0x9c]
call fcn.005209e6
mov byte [ebx + 0x33], al
jmp 0x4787de
fstp st(0)
fld dword [ebx + 0x18]
fstp dword [ebp - 0x9c]
fld dword [ebx + 0x18]
fadd dword [ebp + 8]
fstp dword [ebp - 0xa0]
fld dword [ebp - 0xa0]
fstp dword [ebx + 0x18]
fld dword [ebp - 0xa0]
fld qword [0x543a08]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x4788f5
mov eax, dword [ebx]
fstp st(0)
fld dword [eax]
lea esi, [ebx + 0x34]
fstp dword [esi]
push ecx
fld dword [eax + 4]
push ecx
fstp dword [ebx + 0x38]
lea edi, [ebx + 0x44]
fldz
lea ecx, [ebx + 0x3c]
fstp dword [ebx + 0x24]
mov edx, esi
fld dword [0x543ba8]
lea eax, [ebp - 0xa8]
fstp dword [esp + 4]
fld dword [ebp + 8]
fstp dword [esp]
push edi
call fcn.0043773c
mov ecx, dword [eax]
mov dword [esi], ecx
mov eax, dword [eax + 4]
add esp, 0xc
mov ecx, esi
mov edx, edi
mov dword [esi + 4], eax
call fcn.0047a32f
test al, al
setne al
mov byte [ebx + 0x79], al
mov eax, dword [esi]
mov dword [edi], eax
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
call fcn.004e0031
mov dword [ebp - 0x98], eax
fild dword [ebp - 0x98]
fdiv qword [0x543930]
fmul qword [0x543a20]
fsub qword [0x543998]
fmul dword [0x56868c]
fadd dword [esi]
fstp dword [esi]
call fcn.004e0031
mov dword [ebp - 0x98], eax
fild dword [ebp - 0x98]
mov ecx, dword [ebx + 0x10]
test ecx, ecx
fdiv qword [0x543930]
fmul qword [0x543a20]
fsub qword [0x543998]
fmul dword [0x56868c]
fadd dword [ebx + 0x38]
fstp dword [ebx + 0x38]
je 0x479a83
fld dword [ebp + 8]
mov eax, dword [ecx]
push ecx
fstp dword [esp]
call dword [eax + 0xc]
fld dword [esi]
jmp 0x478c6d
fld dword [ebp - 0x9c]
fcomp st(1)
fnstsw ax
test ah, 5
jp 0x4789fa
fld dword [ebp - 0xa0]
fcompp
fnstsw ax
test ah, 1
jne 0x4789fc
mov eax, dword [ebx + 0x10]
xor esi, esi
cmp eax, esi
je 0x478947
mov ecx, dword [0x57b4dc]
push esi
push esi
mov byte [eax + 0x9a], 1
mov byte [eax + 0x99], 1
mov eax, dword [ecx]
push 1
push dword [ebx + 0x10]
call dword [eax + 0x10]
mov dword [ebx + 0x10], esi
mov eax, dword [0x57b4c8]
cmp byte [eax + 0x36], 0
je 0x4789fc
movzx eax, word [ebx + 0x14]
cmp ax, 9
jae 0x478965
movzx eax, ax
jmp 0x478968
push 9
pop eax
push eax
lea eax, [ebp - 0x28]
push str.fx_ttrails__d.cug
push eax
call fcn.004e116e
add esp, 0xc
lea eax, [ebp - 0x28]
push eax
push ecx
call fcn.004064de
pop ecx
mov ecx, eax
call fcn.00406d85
cmp eax, esi
mov dword [ebp - 0x98], eax
je 0x4789fc
push 0x9c
call fcn.004e0321
cmp eax, esi
pop ecx
je 0x4789e1
fld dword [ebx + 0x34]
sub esp, 0xc
fstp dword [ebp - 0xac]
mov edi, esp
fld dword [ebx + 0x38]
lea esi, [ebp - 0xac]
fstp dword [ebp - 0xa8]
push 0x541a48
fldz
mov ebx, eax
fstp dword [ebp - 0xa4]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.0040ff69
mov ebx, dword [ebp - 0xb0]
jmp 0x4789e3
xor eax, eax
mov ecx, dword [ebp - 0x98]
push 0
push 0
push 0xffffffffffffffff
mov dword [ebx + 0x10], eax
mov edx, dword [ecx]
push eax
call dword [edx + 0x10]
jmp 0x4789fc
fstp st(0)
fld dword [0x543b88]
fcom dword [ebp - 0x9c]
fnstsw ax
test ah, 0x41
jne 0x478a2d
fcomp dword [ebx + 0x18]
fnstsw ax
test ah, 0x41
jp 0x478a2f
cmp dword [ebx], 0
je 0x478a2f
push ebx
call fcn.00478257
mov esi, ebx
call fcn.0047866f
jmp 0x478a2f
fstp st(0)
fld dword [ebx + 0x38]
fild dword [ebx + 0x70]
fcompp
fnstsw ax
test ah, 0x41
jne 0x478a4d
fld dword [ebp + 8]
fmul qword [0x5450e8]
fadd dword [ebx + 0x50]
fstp dword [ebx + 0x50]
fld dword [ebp + 8]
fmul dword [ebx + 0x4c]
fstp dword [ebp - 0xa8]
fld dword [ebx + 0x50]
fmul dword [ebp + 8]
fstp dword [ebp - 0xa4]
fld dword [ebp - 0xa8]
fadd dword [ebx + 0x34]
fstp dword [ebx + 0x34]
fld dword [ebp - 0xa4]
fadd dword [ebx + 0x38]
fstp dword [ebx + 0x38]
fld dword [ebx + 0x1c]
fmul dword [ebp + 8]
fadd dword [ebx + 0x24]
fstp dword [ebx + 0x24]
fld dword [ebx + 0x38]
fmul qword [0x5450e0]
fld qword [0x5450d8]
fadd st(1)
fld dword [ebx + 0x34]
fcomp st(1)
fnstsw ax
test ah, 5
jp 0x478ab0
fstp st(1)
fadd qword [0x543958]
jmp 0x478ace
fstp st(0)
fsubr qword [0x5450d0]
fld dword [ebx + 0x34]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x478b76
fsub qword [0x543958]
fstp dword [ebx + 0x34]
push ecx
fld dword [ebx + 0x4c]
fchs
fmul qword [0x543e30]
fstp dword [ebp - 0x9c]
fld dword [ebp - 0x9c]
fstp dword [ebx + 0x4c]
fld dword [ebx + 0x1c]
fchs
fmul qword [0x543d78]
fstp dword [ebx + 0x1c]
fld dword [ebp - 0x9c]
fstp dword [ebp - 0x98]
fld dword [ebp - 0x98]
fstp dword [esp]
call fcn.00426fff
fcomp dword [0x544048]
pop ecx
fnstsw ax
test ah, 5
jp 0x478b29
fldz
fstp dword [ebx + 0x4c]
jmp 0x478b34
mov esi, dword [0x57b4dc]
call fcn.004870d0
fld dword [ebx + 0x1c]
push ecx
fstp dword [ebp - 0x98]
fld dword [ebp - 0x98]
fstp dword [esp]
call fcn.00426fff
fcomp qword [0x543ae8]
pop ecx
fnstsw ax
test ah, 5
jp 0x478b5f
fldz
fstp dword [ebx + 0x1c]
mov eax, dword [ebx + 0x10]
test eax, eax
je 0x478b78
mov byte [eax + 0x9a], 0
mov byte [eax + 0x99], 1
jmp 0x478b78
fstp st(0)
fld dword [ebx + 0x38]
fild dword [ebx + 0x70]
fcompp
fnstsw ax
test ah, 5
jp 0x478c53
mov eax, dword [ebx + 0x10]
test eax, eax
je 0x478ba0
mov byte [eax + 0x9a], 0
mov byte [eax + 0x99], 1
fild dword [ebx + 0x70]
fstp dword [ebx + 0x38]
fld dword [ebx + 0x50]
fchs
fld qword [0x543938]
fmul st(1), st(0)
fxch st(1)
fstp dword [ebx + 0x50]
fmul dword [ebx + 0x4c]
fstp dword [ebx + 0x4c]
fld dword [ebx + 0x1c]
fchs
fmul qword [0x543d78]
fstp dword [ebp - 0x9c]
fld dword [ebp - 0x9c]
fstp dword [ebx + 0x1c]
fldz
fcom dword [ebx + 0x2c]
fnstsw ax
test ah, 0x41
jne 0x478be9
fstp dword [ebx + 0x2c]
jmp 0x478beb
fstp st(0)
fld dword [ebp - 0x9c]
push ecx
fstp dword [ebp - 0x98]
fld dword [ebp - 0x98]
fstp dword [esp]
call fcn.00426fff
fcomp qword [0x543ae8]
pop ecx
fnstsw ax
test ah, 5
jp 0x478c19
fldz
fstp dword [ebx + 0x1c]
fld dword [ebx + 0x50]
push ecx
fstp dword [ebp - 0x98]
fld dword [ebp - 0x98]
fstp dword [esp]
call fcn.00426fff
fcomp qword [0x543bf0]
mov esi, dword [0x57b4dc]
pop ecx
fnstsw ax
test ah, 5
jnp 0x478ca2
cmp dword [esi + 0x164], 0x64
jne 0x478ca2
call fcn.004870d0
mov ecx, dword [ebx + 0x10]
test ecx, ecx
je 0x479a83
fld dword [ebp + 8]
mov eax, dword [ecx]
push ecx
fstp dword [esp]
call dword [eax + 0xc]
fld dword [ebx + 0x34]
fstp dword [ebp - 0xac]
sub esp, 0xc
fld dword [ebx + 0x38]
mov ebx, dword [ebx + 0x10]
fstp dword [ebp - 0xa8]
mov edi, esp
fldz
lea esi, [ebp - 0xac]
fstp dword [ebp - 0xa4]
lea ecx, [ebx + 0x3c]
mov eax, dword [ecx]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call dword [eax + 0x10]
jmp 0x479a83
mov eax, dword [0x57b4c8]
cmp byte [eax + 0x36], 0
je 0x478d13
fld dword [ebx + 0x34]
mov eax, dword [esi]
push 0
fstp dword [ebp - 0xac]
fld dword [ebx + 0x38]
push 0
push 1
fstp dword [ebp - 0xa8]
fldz
push ecx
push 1
fstp dword [ebp - 0xa4]
mov dword [ebp - 0x98], esi
sub esp, 0xc
mov edi, esp
lea esi, [ebp - 0xac]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push str.crush
push str.fx_token_crush.cug
mov dword [ebp - 0x9c], eax
movsd dword es:[edi], dword [esi]
call fcn.004064de
mov ecx, eax
call fcn.00410903
pop ecx
mov ecx, dword [ebp - 0x98]
push eax
mov eax, dword [ebp - 0x9c]
call dword [eax + 0x10]
push 0xf4
call fcn.004e0321
test eax, eax
pop ecx
je 0x478d30
push 0x540584
call fcn.00418317
mov esi, eax
jmp 0x478d32
xor esi, esi
movzx eax, word [ebx + 0x14]
test ax, ax
jne 0x478d87
call fcn.00409666
push str.guigui_tex.jp2
mov ecx, eax
call fcn.0040aa2c
fld dword [ebx + 0x28]
push dword [ebx + 0x30]
sub esp, 0x14
fstp dword [esp + 0x10]
fld dword [ebx + 0x28]
fstp dword [esp + 0xc]
fld dword [ebx + 0x24]
fstp dword [esp + 8]
fld dword [ebx + 0x38]
fstp dword [esp + 4]
fld dword [ebx + 0x34]
fstp dword [esp]
push 0xdc
push 6
push 6
push 0xc1
jmp 0x478e20
cmp ax, 9
jne 0x478dd6
call fcn.00409666
push str.guigui_tex.jp2
mov ecx, eax
call fcn.0040aa2c
fld dword [ebx + 0x28]
push dword [ebx + 0x30]
sub esp, 0x14
fstp dword [esp + 0x10]
fld dword [ebx + 0x28]
fstp dword [esp + 0xc]
fld dword [ebx + 0x24]
fstp dword [esp + 8]
fld dword [ebx + 0x38]
fstp dword [esp + 4]
fld dword [ebx + 0x34]
fstp dword [esp]
push 0xdc
push 6
push 6
push 0xce
jmp 0x478e20
call fcn.00409666
push str.guigui_tex.jp2
mov ecx, eax
call fcn.0040aa2c
fld dword [ebx + 0x28]
push dword [ebx + 0x30]
movzx ecx, word [ebx + 0x14]
sub esp, 0x14
add ecx, 0x29
fstp dword [esp + 0x10]
fld dword [ebx + 0x28]
fstp dword [esp + 0xc]
fld dword [ebx + 0x24]
fstp dword [esp + 8]
fld dword [ebx + 0x38]
fstp dword [esp + 4]
fld dword [ebx + 0x34]
fstp dword [esp]
push 0xdc
push 6
push 6
push ecx
mov edi, esi
call fcn.0041871f
fld dword [0x543a34]
push ecx
push ecx
fstp dword [esp + 4]
mov eax, 0x404040
fld dword [0x543a90]
fstp dword [esp]
push eax
push dword [ebx + 0x30]
fld dword [0x543c88]
sub esp, 0x20
fstp dword [esp + 0x1c]
fld1
fstp dword [esp + 0x18]
fld dword [0x5441c8]
fstp dword [esp + 0x14]
fld dword [0x543b08]
fstp dword [esp + 0x10]
fld dword [ebx + 0x50]
fsub qword [0x543cd0]
fstp dword [ebp - 0x98]
fld dword [ebp - 0x98]
fstp dword [esp + 0xc]
fld dword [ebx + 0x50]
fadd qword [0x543dd8]
fstp dword [ebp - 0x98]
fld dword [ebp - 0x98]
fstp dword [esp + 8]
fld dword [ebx + 0x4c]
fld qword [0x5439d8]
fsub st(1), st(0)
fxch st(1)
fstp dword [ebp - 0x98]
fld dword [ebp - 0x98]
fstp dword [esp + 4]
fadd dword [ebx + 0x4c]
fstp dword [ebp - 0x98]
fld dword [ebp - 0x98]
fstp dword [esp]
call fcn.00418c4a
fldz
mov ecx, dword [0x57b4dc]
fstp dword [ebp - 0xa8]
xor edi, edi
mov eax, dword [ebp - 0xa8]
fld dword [0x544a38]
push edi
fstp dword [ebp - 0xa4]
mov dword [esi + 0xe0], eax
mov eax, dword [ebp - 0xa4]
push edi
push 2
mov dword [esi + 0xe4], eax
mov eax, dword [ecx]
push esi
call dword [eax + 0x10]
mov esi, dword [0x57b4dc]
call fcn.00487168
call fcn.004e0031
mov dword [ebp - 0x98], eax
fild dword [ebp - 0x98]
fdiv qword [0x543930]
fld dword [ebx + 0x64]
fcompp
fnstsw ax
test ah, 0x41
jne 0x478f55
push dword [ebx + 0x38]
fld dword [ebx + 0x4c]
mov eax, dword [0x57b4dc]
push dword [ebx + 0x34]
push ecx
fstp dword [esp]
call fcn.004825af
mov eax, dword [ebx + 0x10]
cmp eax, edi
je 0x478786
mov ecx, dword [0x57b4dc]
push edi
push edi
mov byte [eax + 0x9a], 1
mov byte [eax + 0x99], 1
mov eax, dword [ecx]
push 2
push dword [ebx + 0x10]
call dword [eax + 0x10]
mov dword [ebx + 0x10], edi
jmp 0x478786
xor edi, edi
cmp dword [ebx], edi
je 0x478786
cmp byte [ebx + 0x77], 0
fld1
fldz
je 0x478fcb
fld dword [ebp + 8]
fmul qword [0x543928]
fadd dword [ebx + 0x54]
fstp dword [ebp - 0x9c]
fld dword [ebp - 0x9c]
fstp dword [ebx + 0x54]
fxch st(1)
fcom dword [ebp - 0x9c]
fnstsw ax
test ah, 5
jp 0x478ffa
fst dword [ebx + 0x54]
jmp 0x478ffa
fld dword [ebx + 0x54]
fld dword [ebp + 8]
fmul qword [0x5450f0]
fsubp st(1)
fstp dword [ebp - 0xa0]
fld dword [ebp - 0xa0]
fstp dword [ebx + 0x54]
fcom dword [ebp - 0xa0]
fnstsw ax
test ah, 0x41
jne 0x478ff8
fst dword [ebx + 0x54]
fxch st(1)
fxch st(1)
fcom dword [ebx + 0x18]
fnstsw ax
test ah, 0x41
jp 0x4791ba
fld dword [ebx + 0x18]
mov byte [ebx + 0x77], 0
fstp dword [ebp - 0x9c]
mov byte [ebp + 0xc], 0
fld dword [ebp + 8]
fadd st(0), st(0)
fadd dword [ebx + 0x18]
fstp dword [ebp - 0xa0]
fld dword [ebp - 0xa0]
fstp dword [ebx + 0x18]
fxch st(1)
fcom dword [ebp - 0xa0]
fnstsw ax
test ah, 5
jp 0x479053
fld dword [ebp + 8]
fmul qword [0x543998]
fadd dword [ebp - 0xa0]
fstp dword [ebx + 0x18]
fld dword [0x543a90]
fcom dword [ebx + 0x18]
fnstsw ax
test ah, 5
jp 0x479081
fcomp dword [ebp - 0x9c]
fnstsw ax
test ah, 1
jne 0x479083
fstp st(0)
mov esi, ebx
fstp st(0)
call fcn.0047866f
fldz
fld1
jmp 0x479083
fstp st(0)
fld dword [0x543ab8]
fcomp dword [ebx + 0x18]
fnstsw ax
test ah, 0x41
jp 0x47909c
fstp st(0)
fstp st(0)
jmp 0x478786
fld dword [0x543a34]
fcom dword [ebx + 0x18]
fnstsw ax
test ah, 5
jp 0x479184
fcomp dword [ebp - 0x9c]
fnstsw ax
test ah, 1
jne 0x479186
cmp dword [ebx], edi
je 0x479186
movzx eax, word [ebx + 0x14]
fstp st(0)
push eax
fstp st(0)
lea eax, [ebp - 0x94]
push str.fxpuff__d.cug
push eax
call fcn.004e116e
add esp, 0xc
lea eax, [ebp - 0x94]
push eax
push ecx
call fcn.004064de
pop ecx
mov ecx, eax
call fcn.00406d85
cmp eax, edi
mov dword [ebp - 0x98], eax
je 0x47917e
push 0x9c
call fcn.004e0321
cmp eax, edi
pop ecx
je 0x479155
mov ebx, dword [ebx]
fld dword [ebx]
sub esp, 0xc
fstp dword [ebp - 0xac]
mov edi, esp
fld dword [ebx + 4]
lea esi, [ebp - 0xac]
fstp dword [ebp - 0xa8]
push 0x541a7c
fldz
mov ebx, eax
fstp dword [ebp - 0xa4]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.0040ff69
mov ebx, dword [ebp - 0xb0]
mov esi, eax
xor edi, edi
jmp 0x479157
xor esi, esi
mov ecx, dword [ebp - 0x98]
mov eax, dword [ecx]
push edi
push edi
push 0xffffffffffffffff
push esi
call dword [eax + 0x10]
mov ecx, dword [0x57b4dc]
push edi
push edi
push 2
mov byte [esi + 0x9b], 1
mov eax, dword [ecx]
push esi
call dword [eax + 0x10]
fldz
fld1
jmp 0x479186
fstp st(0)
fcom dword [ebx + 0x18]
fnstsw ax
test ah, 5
jp 0x4791bc
fcom dword [ebp - 0x9c]
fnstsw ax
test ah, 1
jne 0x4791bc
fstp st(0)
push ebx
fstp st(0)
call fcn.00478257
fld1
or dword [ebx + 0x30], 0xffffffff
fstp dword [ebx + 0x28]
fldz
fstp dword [ebx + 0x24]
jmp 0x479a83
fxch st(1)
fcom dword [ebx + 0x20]
fnstsw ax
test ah, 0x41
jne 0x4792f3
fld st(1)
mov byte [ebp + 0xc], 0
fcomp dword [ebx + 0x20]
fnstsw ax
test ah, 0x44
jp 0x47920f
cmp word [ebx + 0x14], 9
jne 0x47920f
sub esp, 0xc
fst dword [esp + 8]
fxch st(1)
fstp dword [esp + 4]
fstp dword [esp]
push str.sfx_bonus_start.ogg
call fcn.0041cab2
mov ecx, eax
call fcn.0042746b
fld dword [0x5446f0]
fstp dword [ebx + 0x20]
fldz
fld1
fld dword [ebp + 8]
fmul qword [0x5450c8]
fadd dword [ebx + 0x20]
fstp dword [ebp - 0x9c]
fld dword [ebp - 0x9c]
fstp dword [ebx + 0x20]
fcom dword [ebp - 0x9c]
fnstsw ax
test ah, 0x41
jp 0x4792f3
cmp word [ebx + 0x14], 9
fst dword [ebx + 0x20]
jne 0x4792f3
push str.fxdiam_seth.cug
fstp st(0)
push ecx
fstp st(0)
call fcn.004064de
pop ecx
mov ecx, eax
call fcn.00406d85
cmp eax, edi
mov dword [ebp - 0x98], eax
je 0x4792cc
push 0x9c
call fcn.004e0321
cmp eax, edi
pop ecx
je 0x4792b7
fld dword [ebx + 0x34]
sub esp, 0xc
fstp dword [ebp - 0xac]
mov edi, esp
fld dword [ebx + 0x38]
lea esi, [ebp - 0xac]
fstp dword [ebp - 0xa8]
push str.diam
fldz
mov ebx, eax
fstp dword [ebp - 0xa4]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.0040ff69
mov ebx, dword [ebp - 0xb0]
xor edi, edi
jmp 0x4792b9
xor eax, eax
mov ecx, dword [ebp - 0x98]
push edi
push edi
push 0xffffffffffffffff
mov dword [ebx + 0x10], eax
mov edx, dword [ecx]
push eax
call dword [edx + 0x10]
fld1
sub esp, 0xc
fst dword [esp + 8]
fldz
fstp dword [esp + 4]
fstp dword [esp]
push str.sfxobstacle.ogg
call fcn.0041cab2
mov ecx, eax
call fcn.0042746b
fldz
fld1
mov edi, dword [ebx + 4]
test edi, edi
je 0x479475
fld dword [ebp + 8]
fmul qword [0x5450c8]
fadd dword [ebx + 0x1c]
fstp dword [ebp - 0x98]
fld dword [ebp - 0x98]
fst dword [ebx + 0x1c]
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x479353
and dword [ebx + 4], 0
fstp st(0)
fxch st(1)
mov eax, edi
fst dword [ebx + 0x1c]
mov dword [ebx], edi
fld dword [eax]
lea esi, [ebx + 0x34]
fstp dword [esi]
mov dword [ebp - 0xa0], esi
fld dword [eax + 4]
fstp dword [ebx + 0x38]
fxch st(1)
fst dword [ebx + 0x28]
fxch st(1)
fst dword [ebx + 0x24]
jmp 0x479445
fcom st(2)
fnstsw ax
test ah, 0x41
jne 0x47944e
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x47938b
fstp st(1)
push ecx
lea esi, [ebx + 0x34]
fstp st(1)
lea ecx, [eax + 0x10]
fstp dword [esp]
mov eax, dword [ebx]
mov edx, edi
mov dword [ebp - 0xa0], esi
call fcn.004339d8
fldz
fld1
pop ecx
jmp 0x4793e0
mov esi, dword [ebx]
fld dword [esi]
lea eax, [ebx + 0x34]
fstp dword [eax]
mov dword [ebp - 0xa0], eax
fld dword [esi + 4]
fstp dword [ebx + 0x38]
fld dword [edi + 4]
fsub dword [esi + 4]
call fcn.005209b0
fld dword [edi]
fsub dword [esi]
mov dword [ebp - 0x9c], eax
call fcn.005209b0
mov dword [ebp - 0x98], eax
fild dword [ebp - 0x98]
mov eax, dword [ebp - 0xa0]
fld st(1)
fmulp st(1)
fadd dword [eax]
fstp dword [eax]
fimul dword [ebp - 0x9c]
fadd dword [ebx + 0x38]
fstp dword [ebx + 0x38]
cmp byte [ebx + 0x75], 0
je 0x479414
fstp st(0)
push ecx
fstp st(0)
push ecx
fld dword [ebx + 0x1c]
fmul qword [0x543970]
fstp qword [esp]
call fcn.004e0a20
fmul qword [0x543938]
pop ecx
pop ecx
fadd qword [0x5439b0]
fstp dword [ebx + 0x28]
fldz
fld1
jmp 0x479417
fst dword [ebx + 0x28]
cmp byte [ebx + 0x74], 0
jle 0x479468
fstp st(0)
push ecx
fstp st(0)
fld dword [ebx + 0x1c]
fstp dword [esp]
call fcn.0040ff28
fmul qword [0x543970]
mov esi, dword [ebp - 0xa0]
pop ecx
fadd st(0), st(0)
fstp dword [ebx + 0x24]
fldz
fld1
fxch st(1)
or dword [ebx + 0x30], 0xffffffff
jmp 0x47957a
mov eax, dword [ebx]
fstp st(0)
fld dword [eax]
lea ecx, [ebx + 0x34]
fstp dword [ecx]
mov dword [ebp - 0xa0], ecx
fld dword [eax + 4]
fstp dword [ebx + 0x38]
fst dword [ebx + 0x28]
mov esi, dword [ebp - 0xa0]
fxch st(1)
fst dword [ebx + 0x24]
jmp 0x479445
mov ecx, dword [ebx]
fld dword [ecx]
lea eax, [ebx + 0x34]
fstp dword [eax]
mov dword [ebp - 0xa0], eax
fld dword [ecx + 4]
fstp dword [ebx + 0x38]
fst dword [ebx + 0x28]
fxch st(1)
fst dword [ebx + 0x24]
fxch st(1)
fcom dword [ebx + 0x58]
fnstsw ax
fld1
test ah, 0x41
jp 0x4794be
cmp word [ebx + 0x14], 0
je 0x479521
fld dword [ebx + 0x38]
fld dword [ebx + 0x20]
fld st(2)
fsubrp st(1)
fmul qword [0x5445b0]
fsubp st(1)
fstp dword [ebx + 0x38]
jmp 0x479521
fxch st(2)
fcom dword [ebx + 0x58]
fnstsw ax
test ah, 0x41
jne 0x4794d8
fld dword [ebx + 0x20]
fmul qword [0x543938]
fstp dword [ebx + 0x28]
jmp 0x47951f
fld dword [ebp + 8]
fmul qword [0x5450c8]
fadd dword [ebx + 0x58]
fstp dword [ebp - 0x9c]
fld dword [ebp - 0x9c]
fstp dword [ebx + 0x58]
fxch st(1)
fcom dword [ebp - 0x9c]
fnstsw ax
test ah, 0x41
jne 0x479517
fld dword [ebp - 0x9c]
fld qword [0x543938]
fmul st(1), st(0)
faddp st(1)
fstp dword [ebx + 0x28]
jmp 0x47951d
fst dword [ebx + 0x28]
mov dword [ecx + 0x3c], ebx
fxch st(1)
fxch st(2)
fxch st(2)
fcom dword [ebx + 0x18]
fnstsw ax
test ah, 0x41
jp 0x4795a1
fxch st(1)
mov byte [ebp + 0xc], 0
fcom dword [ebx + 0x18]
fnstsw ax
test ah, 5
jp 0x47959d
fld dword [ebx + 0x18]
fsub st(3)
fsub st(3), st(0)
fxch st(3)
fstp dword [ebx + 0x28]
fxch st(2)
fstp dword [ebx + 0x24]
fxch st(1)
fld dword [ebx + 0x20]
fmul qword [0x543bb8]
call fcn.005209e6
fxch st(1)
mov esi, dword [ebp - 0xa0]
movzx eax, al
shl eax, 0x18
or eax, 0xffffff
cmp byte [ebp + 0xc], 0
mov dword [ebx + 0x30], eax
jne 0x4795aa
cmp byte [ebx + 0x78], 0
jne 0x4795aa
fcom dword [ebx + 0x2c]
fnstsw ax
test ah, 5
jp 0x4795a5
fld dword [ebx + 0x2c]
fld dword [ebp + 8]
fmul qword [0x543920]
fsubp st(1)
fstp dword [ebx + 0x2c]
jmp 0x4795cc
fstp st(2)
jmp 0x47954e
fstp st(2)
jmp 0x479550
fst dword [ebx + 0x2c]
jmp 0x4795cc
fxch st(1)
fcom dword [ebx + 0x2c]
fnstsw ax
test ah, 0x41
jne 0x4795c7
fld dword [ebp + 8]
fmul qword [0x543bc0]
fadd dword [ebx + 0x2c]
fstp dword [ebx + 0x2c]
jmp 0x4795ca
fst dword [ebx + 0x2c]
fxch st(1)
fld dword [ebx + 0x2c]
mov ecx, dword [ebx + 0x10]
test ecx, ecx
fadd dword [ebx + 0x38]
fstp dword [ebx + 0x38]
fld dword [ebx + 0x2c]
fmul qword [0x5450c0]
fadd dword [ebx + 0x28]
fstp dword [ebx + 0x28]
je 0x47963f
mov eax, dword [ecx]
fstp st(1)
fstp st(0)
push ecx
fld dword [ebp + 8]
fstp dword [esp]
call dword [eax + 0xc]
mov eax, dword [ebp - 0xa0]
fld dword [eax]
mov eax, dword [ebx + 0x10]
fstp dword [ebp - 0xac]
sub esp, 0xc
fld dword [ebx + 0x38]
mov edi, esp
fstp dword [ebp - 0xa8]
lea esi, [ebp - 0xac]
fldz
lea ecx, [eax + 0x3c]
mov eax, dword [ecx]
fstp dword [ebp - 0xa4]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call dword [eax + 0x10]
mov esi, dword [ebp - 0xa0]
fldz
fld1
fxch st(1)
fcom dword [ebx + 0x5c]
fnstsw ax
test ah, 0x41
jnp 0x479657
fcom dword [ebx + 0x60]
fnstsw ax
test ah, 0x41
jp 0x4797e4
fld dword [ebx + 0x5c]
fstp dword [ebp - 0xa4]
fld dword [ebp + 8]
fadd st(0), st(0)
fld dword [ebx + 0x5c]
fadd st(1)
fstp dword [ebp - 0x98]
fld dword [ebp - 0x98]
fstp dword [ebx + 0x5c]
fxch st(1)
fcomp dword [ebx + 0x60]
fnstsw ax
test ah, 0x41
jp 0x4796b9
fxch st(1)
fcom dword [ebx + 0x60]
fnstsw ax
test ah, 0x41
jne 0x4796bd
fld dword [ebx + 0x60]
faddp st(2)
fxch st(1)
fstp dword [ebp - 0x9c]
fld dword [ebp - 0x9c]
fstp dword [ebx + 0x60]
fcom dword [ebp - 0x9c]
fnstsw ax
test ah, 5
jp 0x4796bf
fst dword [ebx + 0x60]
jmp 0x4796bf
fstp st(0)
jmp 0x4796bf
fstp st(1)
fld dword [0x5450b8]
fcom dword [ebp - 0xa4]
fnstsw ax
test ah, 0x41
jne 0x47979c
fcomp dword [ebp - 0x98]
fnstsw ax
test ah, 0x41
jp 0x47979e
push str.fx_tomb.cug
fstp st(0)
push ecx
call fcn.004064de
pop ecx
mov ecx, eax
call fcn.00406d85
xor edi, edi
cmp eax, edi
mov dword [ebp - 0xa4], eax
je 0x479798
cmp dword [0x57b4dc], edi
je 0x479798
push 0x9c
call fcn.004e0321
cmp eax, edi
pop ecx
je 0x47976e
mov ecx, dword [ebp - 0xa0]
fld dword [ecx]
sub esp, 0xc
fstp dword [ebp - 0xbc]
mov edi, esp
fld dword [ebx + 0x38]
lea esi, [ebp - 0xbc]
fstp dword [ebp - 0xb8]
push 0x541af4
fldz
mov ebx, eax
fstp dword [ebp - 0xb4]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.0040ff69
mov ebx, dword [ebp - 0xb0]
mov esi, dword [ebp - 0xa0]
mov edi, eax
mov ecx, dword [ebp - 0xa4]
mov eax, dword [ecx]
push 0
push 0
push 0xffffffffffffffff
push edi
call dword [eax + 0x10]
mov ecx, dword [0x57b4dc]
xor eax, eax
push eax
push eax
push eax
mov byte [edi + 0x9b], 1
mov edx, dword [ecx]
push edi
call dword [edx + 0x10]
fld1
jmp 0x47979e
fstp st(0)
fcom dword [ebx + 0x5c]
fnstsw ax
test ah, 5
jp 0x4797b9
fstp dword [ebx + 0x5c]
mov byte [ebx + 0x32], 0
mov byte [ebx + 0x31], 0
mov byte [ebx + 0x30], 0
jmp 0x4797e8
movzx eax, byte [ebx + 0x32]
fstp st(0)
fld dword [ebx + 0x5c]
mov dword [ebp - 0xa4], eax
fld1
fsubrp st(1)
fild dword [ebp - 0xa4]
fmulp st(1)
call fcn.005209e6
mov byte [ebx + 0x30], al
mov byte [ebx + 0x31], al
mov byte [ebx + 0x32], al
jmp 0x4797e8
fstp st(1)
fstp st(0)
fld dword [0x543ba8]
push ecx
push ecx
fstp dword [esp + 4]
lea edi, [ebx + 0x44]
fld dword [ebp + 8]
lea ecx, [ebx + 0x3c]
fstp dword [esp]
push edi
mov edx, esi
lea eax, [ebp - 0xa8]
call fcn.0043773c
mov ecx, dword [eax]
mov dword [esi], ecx
mov eax, dword [eax + 4]
add esp, 0xc
mov ecx, esi
mov edx, edi
mov dword [esi + 4], eax
call fcn.0047a32f
fldz
test al, al
setne al
cmp dword [ebx + 4], 0
mov byte [ebx + 0x79], al
mov eax, dword [esi]
mov dword [edi], eax
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
jne 0x4798b4
fcom dword [ebx + 0x18]
fnstsw ax
test ah, 0x41
jp 0x4798b4
fld1
fcomp dword [ebx + 0x18]
fnstsw ax
test ah, 0x41
jne 0x4798b4
fstp st(0)
call fcn.004e0031
mov dword [ebp - 0xa4], eax
fild dword [ebp - 0xa4]
fdiv qword [0x543930]
fmul qword [0x543a00]
fsub qword [0x543920]
fmul dword [0x56868c]
fadd dword [esi]
fstp dword [esi]
call fcn.004e0031
mov dword [ebp - 0xa4], eax
fild dword [ebp - 0xa4]
fdiv qword [0x543930]
fmul qword [0x543a00]
fsub qword [0x543920]
fmul dword [0x56868c]
fadd dword [ebx + 0x38]
fstp dword [ebx + 0x38]
fldz
fld dword [ebx + 0x68]
fld dword [ebx + 0x64]
fcompp
fnstsw ax
test ah, 1
jne 0x4798fb
fld dword [ebp + 8]
fmul qword [0x5439a0]
fadd dword [ebx + 0x68]
fstp dword [ebp - 0x98]
fld dword [ebp - 0x98]
fstp dword [ebx + 0x68]
fld dword [ebp - 0x98]
fld dword [ebx + 0x64]
fcompp
fnstsw ax
test ah, 0x41
jp 0x479937
fld dword [ebx + 0x64]
fstp dword [ebx + 0x68]
fst dword [ebx + 0x64]
jmp 0x479937
fld dword [ebx + 0x68]
fld dword [ebx + 0x64]
fcompp
fnstsw ax
test ah, 5
jp 0x479937
fld dword [ebx + 0x68]
fsub dword [ebp + 8]
fstp dword [ebp - 0x98]
fld dword [ebp - 0x98]
fstp dword [ebx + 0x68]
fld dword [ebp - 0x98]
fld dword [ebx + 0x64]
fcompp
fnstsw ax
test ah, 0x41
jne 0x479937
fld dword [ebx + 0x64]
fstp dword [ebx + 0x68]
fcom dword [ebx + 0x68]
fnstsw ax
test ah, 5
jp 0x4799a0
fstp st(0)
sub esp, 0xc
fld dword [ebp + 0x10]
fmul qword [0x543978]
fstp dword [ebp - 0xa4]
fld dword [ebp - 0xa4]
fstp dword [esp + 8]
fld dword [ebx + 0x38]
fld qword [0x543a08]
fmul st(1), st(0)
fxch st(1)
fstp dword [ebp - 0xa4]
fld dword [ebp - 0xa4]
fstp dword [esp + 4]
fmul dword [esi]
fstp dword [ebp - 0xa4]
fld dword [ebp - 0xa4]
fstp dword [esp]
call fcn.0040ba61
fmul dword [ebx + 0x68]
add esp, 0xc
fadd dword [ebx + 0x24]
fstp dword [ebx + 0x24]
fldz
cmp byte [ebx + 0x7d], 0
je 0x4799cf
fld dword [ebp + 8]
fadd dword [ebx + 0x6c]
fstp dword [ebp - 0x98]
fld dword [ebp - 0x98]
fstp dword [ebx + 0x6c]
fld1
fcom dword [ebp - 0x98]
fnstsw ax
test ah, 5
jp 0x479a00
fstp dword [ebx + 0x6c]
jmp 0x479a02
fcom dword [ebx + 0x6c]
fnstsw ax
test ah, 5
jp 0x479a02
fld dword [ebx + 0x6c]
fsub dword [ebp + 8]
fstp dword [ebp - 0x98]
fld dword [ebp - 0x98]
fstp dword [ebx + 0x6c]
fcom dword [ebp - 0x98]
fnstsw ax
test ah, 0x41
jne 0x479a02
fst dword [ebx + 0x6c]
jmp 0x479a02
fstp st(0)
fcomp dword [ebx + 0x6c]
fnstsw ax
test ah, 5
jp 0x479a83
fld dword [ebx + 0x6c]
push ecx
fstp dword [esp]
call fcn.0040ff28
fmul qword [0x543cb0]
movzx eax, byte [ebx + 0x32]
fld1
mov dword [ebp - 0xa4], eax
fsubrp st(1)
pop ecx
fstp dword [ebp - 0x9c]
fild dword [ebp - 0xa4]
fmul dword [ebp - 0x9c]
call fcn.005209e6
mov byte [ebx + 0x32], al
movzx eax, byte [ebx + 0x31]
mov dword [ebp - 0xa4], eax
fild dword [ebp - 0xa4]
fmul dword [ebp - 0x9c]
call fcn.005209e6
mov byte [ebx + 0x31], al
movzx eax, byte [ebx + 0x30]
mov dword [ebp - 0xa4], eax
fild dword [ebp - 0xa4]
fmul dword [ebp - 0x9c]
call fcn.005209e6
mov byte [ebx + 0x30], al
xor al, al
mov ecx, dword [ebp - 8]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004e0010
leave
ret 0xc