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

Disassembly:
sub esp, 0x64
push ebx
push ebp
push esi
xor ebx, ebx
push edi
push ebx
call fcn.0040b9f0
push ebx
push 0xe
push 0xff00
push 0xd
push str.GAME_OBJECTS:
call fcn.0040bac0
push 2
push ebx
push 0xffff
push 0x28
push str.________Your_device_:
call fcn.0040bac0
push 4
push ebx
push 0xffff
push 0x28
push str.________Soft_ball
call fcn.0040bac0
add esp, 0x40
push 6
push ebx
push 0xffff
push 0x28
push str.________Hard_ball____________Mine
call fcn.0040bac0
push 8
push ebx
push 0xffff
push 0x28
push str.________Surprise_____________Accelerator
call fcn.0040bac0
push 0xa
push ebx
push 0xffff
push 0x28
push str.________Life_bonus___________Score_bonus
call fcn.0040bac0
push 0xc
push ebx
push 0xffff
push 0x28
push str.________Time_bonus___________Slow_bonus
call fcn.0040bac0
add esp, 0x50
push 0xe
push 0xe
push 0xff0000
push 0xd
push str.PRESS_ANY_KEY
call fcn.0040bac0
add esp, 0x14
xor esi, esi
xor ebp, ebp
mov dword [esp + 0x2c], 3
mov dword [esp + 0x28], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x14], ebp
mov dword [esp + 0x10], ebp
call fcn.0040e680
mov eax, dword [0x540738]
imul eax, dword [esp + 0x2c]
add ebp, eax
cmp ebp, 0x7c0
jle 0x40fb23
cmp dword [esp + 0x28], ebx
jne 0x40fb01
call fcn.004090d0
mov dword [esp + 0x28], 1
call fcn.00409100
test eax, eax
je 0x40fb1c
push 0x16
call fcn.0040ab20
add esp, 4
mov dword [esp + 0x2c], 0xfffffffc
mov ebp, 0x7c0
jmp 0x40fb2b
cmp ebp, ebx
jl 0x410073
mov ecx, ebp
sar ecx, 3
mov dword [esp + 0x24], ecx
fild dword [esp + 0x24]
fstp dword [esp + 0x24]
mov eax, dword [esp + 0x24]
push eax
push eax
push eax
call fcn.0040bca0
mov edx, dword [0x540738]
mov eax, dword [esp + 0x3c]
push 0xe
lea eax, [eax + edx*2]
and eax, 0x7ff
mov dword [esp + 0x40], eax
fld dword [eax*8 + 0x538f6c]
fadd dword [0x43923c]
fmul dword [0x439298]
fadd dword [0x43929c]
call fcn.0042ff3c
shl eax, 0x10
push eax
call fcn.0040bb10
add esp, 0x14
call fcn.00405c40
test eax, eax
je 0x40fad5
push ebx
call fcn.004056e0
mov eax, dword [0x44c1e4]
add esp, 4
cmp eax, ebx
je 0x40fc21
mov edi, ebp
push 1
sar edi, 4
call fcn.004056b0
mov ecx, dword [0x540738]
mov dword [esp + 0x44], ebx
mov dword [esp + 0x40], ecx
add esp, 4
fild qword [esp + 0x3c]
fmul dword [0x439294]
fadd dword [esp + 0x10]
fst dword [esp + 0x10]
fcomp dword [0x43923c]
fnstsw ax
test ah, 0x41
jne 0x40fbf3
fld dword [esp + 0x10]
fsub dword [0x43923c]
fstp dword [esp + 0x10]
mov edx, edi
mov eax, dword [esp + 0x10]
shl edx, 8
add edx, edi
fld dword [esp + 0x10]
shl edx, 8
add edx, edi
push edx
push 0x40400000
push 0x40400000
push ecx
fchs
fstp dword [esp]
push eax
call fcn.0040deb0
add esp, 0x14
push 3
call fcn.004056b0
push 1
call fcn.00405720
mov ecx, ebp
sar ecx, 6
push ecx
call fcn.0040baa0
push ebx
call fcn.00405720
mov eax, dword [0x540738]
lea edx, [eax + eax*2]
lea eax, [esp + 0x5c]
shr edx, 1
push eax
add esi, edx
call fcn.004012b0
lea ecx, [esp + 0x60]
push esi
push ecx
call fcn.00401400
mov eax, dword [0x57abd8]
lea edx, [esp + 0x68]
push edx
push eax
call fcn.00401610
mov ecx, dword [0x57eda8]
push 0x3df5c28f
push 0x3c54fdf4
push 0xbdcccccd
push ecx
call fcn.0040be30
mov eax, dword [0x57abd0]
lea edx, [esp + 0x80]
push edx
push eax
call fcn.00401610
mov ecx, dword [0x57eda0]
push 0x3df5c28f
push 0x3d178d50
push 0xbdcccccd
push ecx
call fcn.0040be30
add esp, 0x4c
push 1
call fcn.004056e0
lea edx, [esp + 0x50]
push edx
call fcn.004012b0
lea eax, [esp + 0x54]
push esi
push eax
call fcn.00401400
mov ecx, esi
lea edx, [esp + 0x5c]
shr ecx, 1
push ecx
push edx
call fcn.004012f0
mov ecx, dword [0x5810ac]
lea eax, [esp + 0x64]
push eax
push ecx
call fcn.00401610
mov edx, dword [0x57ac14]
push 0x3dcccccd
push 0x3c449ba6
push 0x3ccccccd
push edx
call fcn.0040be30
lea eax, [esp + 0x7c]
push eax
call fcn.004012b0
lea ecx, [esp + 0x80]
push esi
push ecx
call fcn.00401400
lea edx, [esp + 0x88]
push 0x190
push edx
call fcn.004012f0
mov ecx, dword [0x580010]
add esp, 0x44
lea eax, [esp + 0x4c]
push eax
push ecx
call fcn.00401610
mov edx, dword [0x57ec3c]
push 0x3dcccccd
push 0xbcf5c28f
push 0x3ccccccd
push edx
call fcn.0040be30
mov ecx, dword [0x580024]
lea eax, [esp + 0x64]
push eax
push ecx
call fcn.00401610
mov edx, dword [0x57ec50]
push 0x3dcccccd
push 0xbc22339c
push 0xbda3d70a
push edx
call fcn.0040be30
mov ecx, dword [0x58001c]
lea eax, [esp + 0x7c]
push eax
push ecx
call fcn.00401610
mov edx, dword [0x57ec48]
push 0x3dcccccd
push 0xbd4ccccd
push 0x3ccccccd
push edx
call fcn.0040be30
add esp, 0x48
lea eax, [esp + 0x4c]
push eax
call fcn.004012b0
mov ecx, 0xc8
lea edx, [esp + 0x50]
sub ecx, esi
push ecx
push edx
call fcn.00401400
lea eax, [esp + 0x58]
push 0x190
push eax
call fcn.004012f0
mov edx, dword [0x580014]
lea ecx, [esp + 0x60]
push ecx
push edx
call fcn.00401610
mov eax, dword [0x57ec40]
push 0x3dcccccd
push 0xbd4ccccd
push 0xbda3d70a
push eax
call fcn.0040be30
mov edx, dword [0x580020]
lea ecx, [esp + 0x78]
push ecx
push edx
call fcn.00401610
mov eax, dword [0x57ec4c]
push 0x3dcccccd
push 0xbc22339c
push 0x3ccccccd
push eax
call fcn.0040be30
add esp, 0x44
lea ecx, [esp + 0x4c]
push ecx
call fcn.004012b0
mov edx, esi
lea eax, [esp + 0x50]
neg edx
push edx
push eax
call fcn.00401380
lea ecx, [esp + 0x58]
mov edx, dword [0x580018]
push ecx
push edx
call fcn.00401610
mov eax, dword [0x57ec44]
push 0x3dcccccd
push 0xbcf5c28f
push 0xbda3d70a
push eax
call fcn.0040be30
push ebx
push 0xfffffefc
push ebx
push ebx
push ebx
push ebx
call fcn.0040bd30
mov ecx, dword [0x540738]
mov dword [esp + 0x84], ebx
mov dword [esp + 0x80], ecx
mov edx, dword [0x57ed90]
fild qword [esp + 0x80]
add esp, 0x38
fmul dword [0x4392bc]
fadd dword [esp + 0x18]
fst dword [esp + 0x18]
fcos
fmul dword [0x4392b8]
fstp dword [esp + 0x28]
fld dword [esp + 0x18]
fsin
fmul dword [0x4392b8]
fstp dword [esp + 0x24]
fld dword [esp + 0x18]
fmul dword [0x4392b4]
fld st(0)
fcos
fmul dword [0x4392b0]
fstp dword [esp + 0x20]
fsin
fmul dword [0x4392ac]
fstp dword [esp + 0x1c]
fld dword [esp + 0x18]
fmul dword [0x4392a8]
fstp dword [esp]
push edx
call fcn.00401160
mov eax, dword [0x57ed90]
push eax
call fcn.00401570
fld dword [esp + 0x24]
fadd dword [0x4392a4]
mov ecx, dword [0x580028]
fstp dword [esp + 0x40]
fld dword [esp + 0x28]
fadd dword [0x4392a0]
mov edi, dword [esp + 0x40]
push edi
push 0xbd4ccccd
fstp dword [esp + 0x4c]
mov ebx, dword [esp + 0x4c]
push ebx
push ecx
call fcn.0040be30
mov edx, dword [0x5810e0]
push edi
push 0xbd4ccccd
push ebx
push edx
call fcn.0040be30
fld dword [esp + 0x44]
fadd dword [esp + 0x4c]
add esp, 0x28
fadd dword [0x4392a4]
fstp dword [esp]
fld dword [esp + 0x20]
fadd dword [esp + 0x28]
push 0xbd343958
push ecx
fadd dword [0x4392a0]
fstp dword [esp]
mov eax, dword [0x5b115c]
push eax
call fcn.0040be30
fld dword [0x4392a4]
fsub dword [esp + 0x34]
add esp, 0xc
fadd dword [esp + 0x1c]
fstp dword [esp]
fld dword [esp + 0x20]
fadd dword [esp + 0x24]
push 0xbd343958
push ecx
mov ecx, dword [0x5b115c]
fadd dword [0x4392a0]
fstp dword [esp]
push ecx
call fcn.0040be30
fld dword [esp + 0x28]
fadd dword [esp + 0x34]
add esp, 0xc
mov edx, dword [0x5b115c]
fadd dword [0x4392a4]
fstp dword [esp]
fld dword [0x4392a0]
fsub dword [esp + 0x24]
push 0xbd343958
push ecx
fadd dword [esp + 0x28]
fstp dword [esp]
push edx
call fcn.0040be30
fld dword [0x4392a4]
fsub dword [esp + 0x30]
add esp, 0xc
mov eax, dword [0x5b115c]
fadd dword [esp + 0x1c]
fstp dword [esp]
fld dword [0x4392a0]
fsub dword [esp + 0x28]
push 0xbd343958
push ecx
fadd dword [esp + 0x28]
fstp dword [esp]
push eax
call fcn.0040be30
push 0
push 0
push 0
push 0
push 0
push 0
call fcn.0040bd30
add esp, 0x28
call fcn.00405cd0
xor ebx, ebx
jmp 0x40fad5
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret