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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x656d71
mov eax, dword fs:[0]
push eax
sub esp, 0x8c
mov eax, dword [0x6af168]
xor eax, esp
mov dword [esp + 0x84], eax
push esi
push edi
mov eax, dword [0x6af168]
xor eax, esp
push eax
lea eax, [esp + 0x98]
mov dword fs:[0], eax
mov edi, dword [ebp + 0x10]
add dword [ebx + edi*4 + 0x10c], 0xffffffff
jns 0x472019
cmp edi, 0x15
je 0x472006
cmp edi, 0xf
jne 0x472019
mov eax, dword [ebx + 0x10c]
test eax, eax
jle 0x472019
add eax, 0xffffffff
mov dword [ebx + 0x10c], eax
mov ecx, dword [ebx + 0x170]
xor esi, esi
cmp ecx, esi
je 0x472034
mov eax, dword [ebx + 0x174]
sub eax, ecx
sar eax, 2
cmp edi, eax
jb 0x472039
call fcn.0062492b
mov eax, dword [ebx + 0x170]
fld dword [ebp + 0xc]
add dword [eax + edi*4], 1
fld dword [ebp + 8]
mov ecx, dword [ebx + 8]
lea eax, [eax + edi*4]
mov edx, ecx
sub edx, dword [ebx + 0x78]
cmp edx, 0x14
jge 0x4720f3
fld dword [0x6f30cc]
fld st(0)
fsub st(2)
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fabs
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fld dword [0x687110]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x4720ef
fld dword [0x6f30d0]
fsub st(4)
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fabs
fstp dword [esp + 0x10]
fcomp dword [esp + 0x10]
fnstsw ax
test ah, 0x41
jne 0x4720f1
mov eax, dword [0x6f30d4]
add eax, 1
mov dword [0x6f30d4], eax
imul eax, eax, 0x32
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fld st(0)
fsubp st(4)
fxch st(3)
fstp dword [ebp + 0xc]
fcomp dword [0x687320]
fnstsw ax
test ah, 0x41
jne 0x4720e8
fsubrp st(1)
fstp dword [ebp + 8]
jmp 0x472105
faddp st(1)
fstp dword [ebp + 8]
jmp 0x472105
fstp st(1)
fstp st(0)
fstp dword [0x6f30cc]
mov dword [0x6f30d4], esi
fstp dword [0x6f30d0]
push fcn.00401c70
push fcn.00440ca0
push 2
push 0x1c
lea eax, [esp + 0x68]
push eax
mov dword [ebx + 0x78], ecx
call fcn.00624ff3
mov dword [esp + 0xa0], esi
movzx ecx, byte [ebx + 0x1a8]
push ecx
mov eax, edi
mov byte [esp + 0x13], 0
call fcn.004268a0
add esp, 4
test cl, cl
mov esi, eax
je 0x472180
cmp edi, 0x11
jne 0x472180
mov edx, dword [ebx + 0x3d8]
push ecx
lea eax, [edi + 1]
call fcn.004268a0
imul eax, edx
mov ecx, dword [ebx + 0x1ac]
imul ecx, ecx, 0x7c
add dword [ecx + ebx + 0x340], edx
add esi, eax
lea eax, [ecx + ebx + 0x340]
add esp, 4
add dword [ebx + 0x3d8], 1
jmp switch.0x00472189
cmp edi, 0x17
ja case.0x472189.18
jmp dword [edi*4 + 0x4726c0]
push str.Long_Shot_
lea ecx, [esp + 0x5c]
call fcn.004022b0
jmp 0x4721fd
push str.Off_the_Wall_
lea ecx, [esp + 0x5c]
call fcn.004022b0
jmp 0x4721fd
push str.Flipper_Maniac_
lea ecx, [esp + 0x5c]
call fcn.004022b0
jmp 0x4721fd
push str.Extreme_Slide_
lea ecx, [esp + 0x5c]
call fcn.004022b0
jmp 0x4721e3
push str.Orange_Attack_
lea ecx, [esp + 0x5c]
call fcn.004022b0
mov byte [esp + 0xf], 1
mov eax, dword [ebx + 0x2c]
cdq
mov ecx, 0x64
idiv ecx
cmp edx, 0x14
jge 0x4721fd
mov edi, ebx
call fcn.00471e00
mov edi, dword [ebp + 0x10]
test esi, esi
jle 0x4724d6
cmp esi, 0x2710
jl 0x472460
mov ecx, esi
lea edx, [esp + 0x3c]
call fcn.004e6e90
push eax
lea edx, [esp + 0x24]
push 0x6754c0
push edx
mov byte [esp + 0xac], 1
call fcn.0044cec0
add esp, 0xc
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x80]
mov byte [esp + 0xac], 2
call fcn.00401d10
cmp dword [esp + 0x38], 0x10
jb 0x472264
mov eax, dword [esp + 0x24]
push eax
call fcn.0062493b
add esp, 4
mov byte [esp + 0xa0], 0
cmp dword [esp + 0x54], 0x10
mov dword [esp + 0x38], 0xf
mov dword [esp + 0x34], 0
mov byte [esp + 0x24], 0
jb 0x4724bd
mov ecx, dword [esp + 0x40]
push ecx
call fcn.0062493b
add esp, 4
jmp 0x4724bd
push str.Cool_Clear_
lea ecx, [esp + 0x5c]
call fcn.004022b0
mov byte [esp + 0xf], 1
jmp 0x4721fd
push str.Multiball_Madness_
lea ecx, [esp + 0x5c]
call fcn.004022b0
mov byte [esp + 0xf], 1
jmp 0x4721fd
push str.Hat_Trick_
lea ecx, [esp + 0x5c]
call fcn.004022b0
mov byte [esp + 0xf], 1
jmp 0x4721fd
push str.Hot_Stuff_
lea ecx, [esp + 0x5c]
call fcn.004022b0
mov byte [esp + 0xf], 1
jmp 0x4721fd
push str.Free_Ball_Frenzy_
jmp 0x4721d5
push str.Free_Ball_Skills_
lea ecx, [esp + 0x5c]
call fcn.004022b0
jmp 0x4721fd
push str.Pyramid_Pickup_
lea ecx, [esp + 0x5c]
call fcn.004022b0
jmp 0x4721fd
push str.Eye_of_the_Pyramid_
lea ecx, [esp + 0x5c]
call fcn.004022b0
jmp 0x4721fd
push str.Bucket_Bonus_
lea ecx, [esp + 0x5c]
call fcn.004022b0
jmp 0x4721fd
push str.Mega_Shot_Bonus_
lea ecx, [esp + 0x5c]
call fcn.004022b0
jmp 0x4721fd
push str.Shock_It_to_Me_
lea ecx, [esp + 0x5c]
call fcn.004022b0
jmp 0x4721fd
push str.Super_Long_Shot_
jmp 0x4721d5
push str.Double_Long_Shot_
jmp 0x4721d5
push str.Mad_Skillz_
jmp 0x4721d5
push str.Crazy_Mad_Skillz_
jmp 0x4721d5
push str.Kick_the_Bucket_
lea ecx, [esp + 0x5c]
call fcn.004022b0
mov byte [esp + 0xf], 1
jmp 0x4721fd
push str.Lucky_Bounce_
lea ecx, [esp + 0x5c]
call fcn.004022b0
mov byte [esp + 0xf], 1
jmp 0x4721fd
mov edx, dword [ebx + 0x1ac]
mov eax, dword [ebx + edx*4 + 0x250]
add eax, 0xffffffff
cmp eax, 0xd
ja case.0x4723e7.7
jmp dword [eax*4 + 0x472720]
push str.Double_Guide_
jmp 0x472439
push str.Triple_Play_
jmp 0x472439
push str.Pyramid_Pileup_
jmp 0x472439
push str.Big_Bang_
jmp 0x472439
push str.Flip_Out_
jmp 0x472439
push str.Spooktacular_
jmp 0x472439
push str.Petal_to_the_Metal_
jmp 0x472439
push str.Spin_Again_
jmp 0x472439
push str.Great_Balls_of_Fire_
jmp 0x472439
push str.Zen_Maniac_
jmp 0x472439
push str.Power_Surge_
lea ecx, [esp + 0x5c]
call fcn.004022b0
mov eax, dword [ebx + 0x2c]
cdq
mov ecx, 0x64
idiv ecx
mov byte [esp + 0xf], 1
cmp edx, 0xa
jl 0x4721f3
jmp 0x4721fd
push esi
lea edx, [esp + 0x24]
push 0x6754c4
push edx
call fcn.004e7a20
add esp, 0xc
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x80]
mov byte [esp + 0xac], 3
call fcn.00401d10
mov byte [esp + 0xa0], 0
cmp dword [esp + 0x38], 0x10
jb 0x4724a8
mov eax, dword [esp + 0x24]
push eax
call fcn.0062493b
add esp, 4
mov dword [esp + 0x38], 0xf
mov dword [esp + 0x34], 0
mov byte [esp + 0x24], 0
mov ecx, dword [ebx + 0x184]
mov ecx, dword [ecx + 0x718]
xor eax, eax
call fcn.00468080
add dword [ebx + 0x190], esi
mov eax, dword [ebx + 0x1ac]
mov edx, eax
shl edx, 5
sub edx, eax
add edx, edi
add dword [ebx + edx*4 + 0x2f8], 1
lea eax, [ebx + edx*4 + 0x2f8]
xor edi, edi
lea eax, [esp + 0x58]
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], eax
cmp dword [eax + 0x14], 0
je 0x472645
fld dword [ebp + 0xc]
neg edi
sbb edi, edi
sub esp, 8
fstp dword [esp + 4]
and edi, 0x33
fld dword [ebp + 8]
add edi, 0xf
fstp dword [esp]
push eax
mov eax, ebx
call fcn.0046d000
fldz
mov esi, eax
fstp dword [esi + 0x8c]
mov al, byte [esp + 0xf]
mov cl, al
neg cl
mov dword [esi + 0x7c], 2
sbb ecx, ecx
and ecx, 0x32
add ecx, 0xc8
test al, al
mov dword [esi + 0x68], ecx
je 0x4725aa
fld dword [0x687228]
sub esp, 8
fstp dword [esi + 0x98]
mov dword [esi + 0xa0], 0xa
fld dword [ebp + 0xc]
mov edx, dword [ebx + 0x184]
mov eax, dword [edx + 0x710]
fstp dword [esp + 4]
fld dword [ebp + 8]
fstp dword [esp]
push eax
call fcn.00463bd0
mov ecx, dword [ebx + 0x184]
mov eax, dword [ecx + 0xb0]
call fcn.00550ef0
test al, al
je 0x4725e2
fld dword [0x6871e4]
push ecx
fstp dword [esp]
push esi
xor edi, edi
call fcn.00464d90
fld dword [0x687140]
push ecx
fstp dword [esp]
push esi
mov edi, 0xa
call fcn.00464d90
fld1
push ecx
fstp dword [esp]
push esi
mov edi, 0x1e
call fcn.00464d90
mov edx, dword [esp + 0x14]
fld dword [0x686e50]
sub esp, 8
fstp dword [esp + 4]
mov dword [esi + 0x6c], edx
fldz
mov dword [esi + 0x78], 0x96
mov dword [esi + 0x60], 0x80ff80
fstp dword [esp]
mov eax, dword [ebx + 0x184]
mov ecx, dword [0x6b8aec]
mov edi, dword [eax + 0x724]
push ecx
mov edx, 1
xor eax, eax
call fcn.0047ae60
mov eax, dword [esi + 0x48]
cdq
sub eax, edx
sar eax, 1
add eax, 5
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x10]
fild dword [esp + 0x1c]
fadd dword [ebp + 0xc]
fstp dword [ebp + 0xc]
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
sub ecx, 0xf
add edi, 1
add eax, 0x1c
cmp ecx, 0xffffffe2
mov dword [esp + 0x18], edi
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
jg 0x472506
push fcn.00401c70
push 2
push 0x1c
lea edx, [esp + 0x64]
push edx
jmp 0x472689
push fcn.00401c70
push 2
push 0x1c
lea eax, [esp + 0x64]
push eax
mov dword [esp + 0xb0], 0xffffffff
call fcn.00625a1a
mov ecx, dword [esp + 0x98]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [esp + 0x84]
xor ecx, esp
call fcn.00624940
mov esp, ebp
pop ebp
ret 0xc