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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x304
push ebx
push esi
push edi
push 0x14
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [0x5f5498]
mov ecx, 0x5f5530
push 0x80e2
mov dword [eax + 0x20], 0
cmp dword [0x5f5544], 0xf
cmova ecx, dword [0x5f5530]
xor edx, edx
call fcn.0042e370
add esp, 4
mov ecx, str.EternalReturn.exe
call fcn.004191c0
test al, al
je 0x41068f
mov ecx, dword [0x5f5498]
xor edx, edx
push str.Background
mov eax, dword [ecx + 0x3e48]
movss xmm0, dword [eax + 0x14]
movss dword [esp + 0x38], xmm0
movss xmm0, dword [eax + 0x18]
mov byte [eax + 0xac], 1
mov eax, dword [ecx + 0x3e48]
mov ecx, dword [ecx + 0x47c4]
movss dword [esp + 0x30], xmm0
mov esi, dword [eax + 0x264]
mov ecx, dword [ecx]
call fcn.00428b20
mov eax, dword [0x5f5498]
add esp, 4
mov edx, 1
mov ecx, dword [eax + 0x47c4]
push str.Foreground
mov ecx, dword [ecx]
call fcn.00428b20
movss xmm2, dword [esp + 0x38]
lea eax, [esp + 0x30]
movss xmm1, dword [esp + 0x30]
movaps xmm0, xmm2
xorps xmm3, xmm3
add esp, 4
addss xmm0, xmm3
mov ecx, esi
push 0xff000000
push 0xff221114
movss dword [esp + 0x18], xmm0
movaps xmm0, xmm1
addss xmm0, xmm3
push 0xff882044
push 0xff000000
push eax
lea eax, [esp + 0x24]
movss dword [esp + 0x28], xmm0
movss xmm0, dword [0x56ce60]
addss xmm2, xmm0
addss xmm1, xmm0
push eax
movss dword [esp + 0x44], xmm2
movss dword [esp + 0x48], xmm1
call fcn.00447440
call fcn.00404cb0
mov esi, dword [0x5f5498]
lea eax, [esp + 0x10]
push eax
mov dword [esp + 0x14], 0
movss xmm0, dword [esi + 0x3788]
lea ecx, [esi + 0x4764]
movss dword [esp + 0x18], xmm0
call fcn.0043b7c0
push 0
push ecx
lea eax, [esp + 0x18]
mov dword [esi + 0x3788], 0x3f4ccccd
push eax
mov edx, 1
mov dword [esp + 0x1c], 0x43eb0000
xor ecx, ecx
mov dword [esp + 0x20], 0x43c80000
call fcn.0042b8c0
add esp, 0xc
test al, al
je 0x40fd80
mov ecx, dword [0x5f5498]
lea edx, [esp + 0x10]
push ecx
mov dword [esp + 0x14], 0x428c0000
mov dword [esp + 0x18], 0x420c0000
mov eax, dword [ecx + 0x3e48]
mov byte [eax + 0xac], 1
mov eax, dword [ecx + 0x3e48]
mov ecx, 0x46c5ac
movss xmm0, dword [eax + 0x14]
subss xmm0, dword [eax + 0x78]
mov byte [eax + 0x131], 1
addss xmm0, dword [0x56ce08]
movss dword [eax + 0xf0], xmm0
call fcn.00451570
add esp, 4
test al, al
je 0x40fcc0
mov dword [0x573428], 1
movss xmm1, dword [0x56cea0]
xorps xmm0, xmm0
call fcn.00433b10
push ecx
lea edx, [esp + 0x14]
mov dword [esp + 0x14], 0x428c0000
mov ecx, 0x46c5b0
mov dword [esp + 0x18], 0x420c0000
call fcn.00451570
add esp, 4
test al, al
je 0x40fd00
mov dword [0x573428], 2
movss xmm1, dword [0x56cea0]
xorps xmm0, xmm0
call fcn.00433b10
push ecx
lea edx, [esp + 0x14]
mov dword [esp + 0x14], 0x428c0000
mov ecx, 0x46c5bc
mov dword [esp + 0x18], 0x420c0000
call fcn.00451570
add esp, 4
test al, al
je 0x40fd40
mov dword [0x573428], 5
movss xmm1, dword [0x56cea0]
xorps xmm0, xmm0
call fcn.00433b10
push ecx
lea edx, [esp + 0x14]
mov dword [esp + 0x14], 0x428c0000
mov ecx, 0x46c5c0
mov dword [esp + 0x18], 0x420c0000
call fcn.00451570
add esp, 4
test al, al
je 0x40fd80
mov dword [0x573428], 6
call fcn.0042bb50
push 0
push ecx
lea eax, [esp + 0x18]
mov dword [esp + 0x18], 0x43eb0000
push eax
mov edx, 1
mov dword [esp + 0x20], 0x43c80000
xor ecx, ecx
call fcn.0042b8c0
add esp, 0xc
test al, al
je 0x41031b
mov ecx, dword [0x5f5498]
mov eax, dword [ecx + 0x3e48]
mov byte [eax + 0xac], 1
mov eax, dword [ecx + 0x3e48]
movss xmm0, dword [ecx + 0x37f4]
addss xmm0, dword [eax + 0x134]
movss dword [eax + 0x134], xmm0
addss xmm0, dword [eax + 0x14]
addss xmm0, dword [eax + 0x138]
movss dword [eax + 0xf0], xmm0
mov eax, dword [0x573428]
cmp eax, 1
jne 0x40fe0e
call fcn.00415ee0
jmp 0x41031b
cmp eax, 2
jne 0x410042
mov eax, dword [ecx + 0x3e48]
mov esi, 0x46b79a
mov byte [eax + 0xac], 1
mov eax, dword [ecx + 0x3e48]
cmp byte [eax + 0xaf], 0
jne 0x40fe64
mov ecx, esi
cmp esi, 0xffffffff
jae 0x40fe56
nop
mov dl, byte [ecx]
test dl, dl
je 0x40fe56
cmp dl, 0x23
jne 0x40fe50
cmp byte [ecx + 1], dl
je 0x40fe56
inc ecx
cmp ecx, 0xffffffff
jb 0x40fe40
push ecx
xorps xmm3, xmm3
mov edx, esi
call fcn.00453380
add esp, 4
push 0x5732d0
push str.Script
call fcn.00464dc0
cmp byte [0x5732d0], 0
je 0x40fe9b
push ecx
push 0x43
push 0x5731b0
push 0x454140
mov edx, 0x5f55d0
mov ecx, 0x46c5d0
call fcn.004541c0
add esp, 0x10
mov ecx, dword [0x5f5498]
mov eax, dword [ecx + 0x3e48]
mov byte [eax + 0xac], 1
mov eax, dword [ecx + 0x3e48]
cmp byte [eax + 0xaf], 0
jne 0x40fef4
mov ecx, str.Combo
mov edi, ecx
cmp edi, 0xffffffff
jae 0x40fee6
nop dword [eax]
mov dl, byte [ecx]
test dl, dl
je 0x40fee6
cmp dl, 0x23
jne 0x40fee0
cmp byte [ecx + 1], dl
je 0x40fee6
inc ecx
cmp ecx, 0xffffffff
jb 0x40fed0
push ecx
xorps xmm3, xmm3
mov edx, edi
call fcn.00453380
add esp, 4
lea edx, [esp + 0x10]
mov dword [esp + 0x10], 0x42be0000
mov ecx, 0x5f4560
mov dword [esp + 0x14], 0x41e00000
call fcn.00405670
call fcn.00431050
mov ecx, dword [0x5f5498]
mov eax, dword [ecx + 0x3e48]
mov byte [eax + 0xac], 1
mov eax, dword [ecx + 0x3e48]
cmp byte [eax + 0xaf], 0
jne 0x40ff67
mov ecx, 0x46b79a
cmp esi, 0xffffffff
jae 0x40ff59
mov dl, byte [ecx]
test dl, dl
je 0x40ff59
cmp dl, 0x23
jne 0x40ff53
cmp byte [ecx + 1], dl
je 0x40ff59
inc ecx
cmp ecx, 0xffffffff
jb 0x40ff43
push ecx
xorps xmm3, xmm3
mov edx, esi
call fcn.00453380
add esp, 4
push 0x5f55ad
push str.Run_Script
call fcn.00464dc0
cmp byte [0x5f55ad], 0
je 0x40ff86
mov byte [0x5f55ae], 0
push 0x5f55ae
push str.Run_Bot
call fcn.00464dc0
cmp byte [0x5f55ae], 0
je 0x40ffa5
mov byte [0x5f55ad], 0
mov edi, dword [0x5f5498]
mov edx, dword [edi + 0x46a0]
dec dword [edi + 0x4788]
dec word [edi + 0x5a04]
mov ecx, dword [edi + 0x4788]
mov eax, dword [edi + 0x4790]
shr edx, 2
mov eax, dword [eax + ecx*4 - 4]
mov dword [edi + 0x46a0], eax
test dl, 1
je 0x40ffec
test al, 4
jne 0x40ffec
mov eax, dword [edi + 0x5a00]
mov dword [edi + 0x3788], eax
mov eax, dword [edi + 0x3e48]
mov byte [eax + 0xac], 1
mov eax, dword [edi + 0x3e48]
cmp byte [eax + 0xaf], 0
jne 0x41031b
mov eax, 0x46b79a
cmp esi, 0xffffffff
jae 0x41002f
mov dl, byte [eax]
test dl, dl
je 0x41002f
lea ecx, [eax + 1]
cmp dl, 0x23
jne 0x410028
cmp byte [ecx], dl
je 0x41002f
mov eax, ecx
cmp eax, 0xffffffff
jb 0x410016
push eax
xorps xmm3, xmm3
mov edx, esi
call fcn.00453380
add esp, 4
jmp 0x41031b
cmp eax, 5
jne 0x410311
mov eax, dword [ecx + 0x3e48]
mov byte [eax + 0xac], 1
mov eax, dword [ecx + 0x3e48]
cmp byte [eax + 0xaf], 0
jne 0x410097
mov ecx, str.Controls
mov esi, ecx
cmp esi, 0xffffffff
jae 0x410089
mov dl, byte [ecx]
test dl, dl
je 0x410089
cmp dl, 0x23
jne 0x410083
cmp byte [ecx + 1], dl
je 0x410089
inc ecx
cmp ecx, 0xffffffff
jb 0x410073
push ecx
xorps xmm3, xmm3
mov edx, esi
call fcn.00453380
add esp, 4
call dword [sym.imp.WINMM.dll_joyGetNumDevs]
mov ebx, eax
xor edi, edi
mov esi, 0x46b79a
test ebx, ebx
je 0x410173
nop
push 0x2d8
lea eax, [esp + 0x3c]
push eax
push edi
call dword [sym.imp.WINMM.dll_joyGetDevCapsW]
test eax, eax
jne 0x41016a
push edi
push str.Game_Device__d:
call fcn.00450b20
lea eax, [esp + 0x44]
push eax
push str.Name:__s
call fcn.00450b20
lea eax, [esp + 0x118]
push eax
push str.Manufacturer:__s
call fcn.00450b20
push dword [esp + 0xac]
push str.Number_of_Buttons:__d
call fcn.00450b20
push dword [esp + 0xe0]
push str.Number_of_Axes:__d
call fcn.00450b20
mov ecx, dword [0x5f5498]
add esp, 0x28
mov eax, dword [ecx + 0x3e48]
mov byte [eax + 0xac], 1
mov eax, dword [ecx + 0x3e48]
cmp byte [eax + 0xaf], 0
jne 0x41016a
mov ecx, 0x46b79a
cmp esi, 0xffffffff
jae 0x41015c
mov dl, byte [ecx]
test dl, dl
je 0x41015c
cmp dl, 0x23
jne 0x410156
cmp byte [ecx + 1], dl
je 0x41015c
inc ecx
cmp ecx, 0xffffffff
jb 0x410146
push ecx
xorps xmm3, xmm3
mov edx, esi
call fcn.00453380
add esp, 4
inc edi
cmp edi, ebx
jb 0x4100b0
mov ebx, dword [sym.imp.XINPUT1_3.dll_Ordinal_2]
xor edi, edi
nop dword [eax + eax]
lea eax, [esp + 0x10]
xorps xmm0, xmm0
push eax
push edi
movaps xmmword [esp + 0x18], xmm0
call ebx
test eax, eax
jne 0x4101fc
push edi
push str.Device__d:
call fcn.00450b20
push str.Is_Connected:_Yes
call fcn.00450b20
mov ecx, dword [0x5f5498]
add esp, 0xc
mov eax, dword [ecx + 0x3e48]
mov byte [eax + 0xac], 1
mov eax, dword [ecx + 0x3e48]
cmp byte [eax + 0xaf], 0
jne 0x4101fc
mov ecx, 0x46b79a
cmp esi, 0xffffffff
jae 0x4101ee
mov dl, byte [ecx]
test dl, dl
je 0x4101ee
cmp dl, 0x23
jne 0x4101e8
cmp byte [ecx + 1], dl
je 0x4101ee
inc ecx
cmp ecx, 0xffffffff
jb 0x4101d8
push ecx
xorps xmm3, xmm3
mov edx, esi
call fcn.00453380
add esp, 4
inc edi
cmp edi, 4
jb 0x410180
lea edx, [esp + 0x10]
mov dword [esp + 0x10], 0x42be0000
mov ecx, 0x5f4558
mov dword [esp + 0x14], 0x41e00000
call fcn.00405670
call fcn.00431050
push 0x5f55d8
push str.Record_keys
call fcn.00464dc0
mov edi, dword [0x5f5498]
mov edx, dword [edi + 0x46a0]
dec dword [edi + 0x4788]
dec word [edi + 0x5a04]
mov ecx, dword [edi + 0x4788]
mov eax, dword [edi + 0x4790]
shr edx, 2
mov eax, dword [eax + ecx*4 - 4]
mov dword [edi + 0x46a0], eax
test dl, 1
je 0x41027f
test al, 4
jne 0x41027f
mov eax, dword [edi + 0x5a00]
mov dword [edi + 0x3788], eax
mov eax, dword [edi + 0x3e48]
mov byte [eax + 0xac], 1
mov eax, dword [edi + 0x3e48]
cmp byte [eax + 0xaf], 0
jne 0x4102cf
mov ecx, 0x46b79a
cmp esi, 0xffffffff
jae 0x4102bb
mov dl, byte [ecx]
test dl, dl
je 0x4102bb
cmp dl, 0x23
jne 0x4102b5
cmp byte [ecx + 1], dl
je 0x4102bb
inc ecx
cmp ecx, 0xffffffff
jb 0x4102a5
push ecx
xorps xmm3, xmm3
mov edx, esi
call fcn.00453380
mov edi, dword [0x5f5498]
add esp, 4
mov eax, dword [edi + 0x3e48]
mov byte [eax + 0xac], 1
mov eax, dword [edi + 0x3e48]
movss xmm0, dword [eax + 0x134]
subss xmm0, dword [edi + 0x37f4]
movss dword [eax + 0x134], xmm0
addss xmm0, dword [eax + 0x14]
addss xmm0, dword [eax + 0x138]
movss dword [eax + 0xf0], xmm0
jmp 0x41031b
cmp eax, 6
jne 0x41031b
call fcn.00414b10
call fcn.0042bb50
push 0
push ecx
lea eax, [esp + 0x18]
mov dword [esp + 0x18], 0x43eb0000
push eax
mov edx, 3
mov dword [esp + 0x20], 0x42a00000
xor ecx, ecx
call fcn.0042b8c0
add esp, 0xc
test al, al
je 0x41067e
mov esi, dword [0x5f5498]
movss xmm3, dword [0x56ce7c]
push 0
push 0
mov eax, dword [esi + 0x3e48]
push str.License:Guest_____.f_MS_____.f_FPS_____HideMenu______PGDN___
push ecx
mov dword [esp], 0xbf800000
movss xmm0, dword [eax + 0xf4]
movss xmm1, dword [eax + 0x22c]
movaps xmm2, xmm0
subss xmm2, dword [eax + 0x18]
subss xmm1, xmm0
addss xmm2, dword [eax + 0x7c]
subss xmm1, dword [0x56ce00]
mov byte [eax + 0xac], 1
mov eax, dword [esi + 0x3e48]
mulss xmm1, dword [0x56cd00]
mov byte [eax + 0x131], 1
movss xmm0, dword [eax + 0x18]
subss xmm0, dword [eax + 0x7c]
addss xmm2, xmm1
addss xmm0, xmm2
movss dword [eax + 0xf4], xmm0
lea eax, [esp + 0x20]
movss xmm0, dword [esi + 0xa0]
movss xmm2, dword [esi + 0x3bb8]
mov ecx, dword [esi + 0x3bb4]
push eax
movss dword [esp + 0x40], xmm0
call fcn.0044b290
mov eax, dword [esi + 0x3e48]
movss xmm0, dword [esp + 0x10]
addss xmm0, dword [0x56cd38]
push str.License:
movss xmm1, dword [eax + 0x1c]
mov byte [eax + 0xac], 1
mov ecx, dword [esi + 0x3e48]
cvttss2si eax, xmm0
mov byte [ecx + 0x131], 1
movd xmm0, eax
lea eax, [esp + 0x14]
cvtdq2ps xmm0, xmm0
push eax
subss xmm1, xmm0
movss xmm0, dword [ecx + 0x14]
subss xmm0, dword [ecx + 0x78]
mulss xmm1, dword [0x56cd00]
addss xmm1, xmm0
movaps xmm0, xmmword [0x56d000]
movups xmmword [esp + 0x18], xmm0
movss dword [ecx + 0xf0], xmm1
call fcn.00450be0
movss xmm1, dword [0x56cea0]
xorps xmm0, xmm0
call fcn.00433b10
push str.Guest
call fcn.00450b20
movss xmm1, dword [0x56cea0]
add esp, 0xc
xorps xmm0, xmm0
call fcn.00433b10
movaps xmm0, xmmword [0x56d000]
lea eax, [esp + 0x10]
movups xmmword [esp + 0x10], xmm0
sub esp, 8
movss xmm0, dword [0x56ce50]
divss xmm0, dword [esp + 0x34]
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push str.____.f
push eax
call fcn.00450be0
movss xmm1, dword [0x56cea0]
xorps xmm0, xmm0
call fcn.00433b10
push 0x46c934
call fcn.00450b20
movss xmm1, dword [0x56cea0]
add esp, 0x14
xorps xmm0, xmm0
call fcn.00433b10
movaps xmm0, xmmword [0x56d000]
lea eax, [esp + 0x10]
sub esp, 8
movups xmmword [esp + 0x18], xmm0
movsd xmm0, qword [0x56cd98]
movsd qword [esp], xmm0
push str.____.f
push eax
call fcn.00450be0
movss xmm1, dword [0x56cea0]
xorps xmm0, xmm0
call fcn.00433b10
push 0x46c938
call fcn.00450b20
movss xmm1, dword [0x56cea0]
add esp, 0x14
xorps xmm0, xmm0
call fcn.00433b10
push 0x46c93c
call fcn.00450b20
movss xmm1, dword [0x56cea0]
add esp, 4
xorps xmm0, xmm0
call fcn.00433b10
movaps xmm0, xmmword [0x56d000]
lea eax, [esp + 0x10]
push str.HideMenu
push eax
movups xmmword [esp + 0x18], xmm0
call fcn.00450be0
movss xmm1, dword [0x56cea0]
xorps xmm0, xmm0
call fcn.00433b10
push 0x46c950
call fcn.00450b20
movss xmm1, dword [0x56cea0]
add esp, 0xc
xorps xmm0, xmm0
call fcn.00433b10
push 0x46c954
call fcn.00450b20
movss xmm1, dword [0x56cea0]
add esp, 4
xorps xmm0, xmm0
call fcn.00433b10
push str.PGDN
call fcn.00450b20
movss xmm1, dword [0x56cea0]
add esp, 4
xorps xmm0, xmm0
call fcn.00433b10
push 0x46c960
call fcn.00450b20
mov ecx, dword [0x5f5498]
add esp, 4
mov eax, dword [ecx + 0x3e48]
mov byte [eax + 0xac], 1
mov eax, dword [ecx + 0x3e48]
cmp byte [eax + 0xaf], 0
jne 0x410643
movss xmm1, dword [0x56cea0]
lea ecx, [esp + 0x10]
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
call fcn.00433780
push ecx
lea edx, [esp + 0x14]
mov dword [esp + 0x14], 0x42200000
mov ecx, 0x46c964
mov dword [esp + 0x18], 0x41f00000
call fcn.00451570
add esp, 4
test al, al
jne 0x41068f
movss xmm1, dword [0x56cea0]
xorps xmm0, xmm0
call fcn.00433b10
call fcn.00406800
call fcn.0042bb50
call fcn.004308a0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.004070b0
int3