Function at 0x4c0f20
Capabilities:
Accept command line arguments
Check for time delay via queryperformancecounter
Create process on windows
Hide graphical window
Query environment variable

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x2f8
mov eax, dword [0x4ff074]
xor eax, esp
mov dword [esp + 0x2f4], eax
mov eax, dword [ebp + 8]
push esi
push edi
mov edi, dword [ebp + 0x10]
push 0xa92814
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], 0x90000008
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
call fcn.004c0b10
push 4
lea eax, [esp + 0x74]
push eax
push str.NUMBER_OF_PROCESSORS
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
lea eax, [esp + 0x70]
push eax
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll__wtoi]
add esp, 4
mov byte [0xa88c26], al
call fcn.004c0c00
test al, al
jne 0x4c10e0
push 0
push str.AllocateMemoryResources
push str._s_FAIL__x
push 0x40
push str.AllocateMemoryResources
call fcn.0042cda0
add esp, 0x14
mov ecx, str.AllocateMemoryResources
call fcn.004bfb10
mov byte [0xa88bdb], 2
push dword [0xa91984]
call dword [sym.imp.USER32.dll_CloseWindow]
call fcn.004c0990
cmp byte [0x7c9c61], 0
mov esi, dword [sym.imp.USER32.dll_ShowCursor]
mov edi, dword [sym.imp.SHELL32.dll_ShellExecuteW]
je 0x4c1037
push 1
push 0
push 0
push 0x7e8440
push str.open
push 0
call edi
cmp eax, 0x20
jg 0x4c1037
push 1
call esi
push 0x7e8440
push 0xb09310
push str._s_n_s
lea eax, [esp + 0x84]
push 0x80
push eax
call fcn.0042cda0
add esp, 0x14
lea eax, [esp + 0x78]
push 0x30
push str.Cue_Club_2
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp byte [0xa88bdb], 2
jne 0x4c1832
cmp byte [0x7ea8b0], 0xff
mov edx, 1
movzx ecx, byte [0x7ea8b0]
cmove ecx, edx
push edx
mov byte [0x7ea8b0], cl
call esi
movzx edx, byte [0xa88c22]
mov eax, edx
sub eax, 1
je 0x4c17a3
sub eax, 0xc
je 0x4c17a3
movsx ecx, byte [0x7ea8b0]
lea eax, [ecx + ecx*4]
shl ecx, 7
shl eax, 4
add ecx, str.Fehler_beim_Spielstart.
add eax, str.Bitte_neu_installieren.
push eax
push edx
push ecx
push str._s___d__n_n_s
lea eax, [esp + 0x88]
push 0x80
push eax
call fcn.0042cda0
add esp, 0x18
lea eax, [esp + 0x78]
push 0x10
push str.Cue_Club_2
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
pop edi
pop esi
mov ecx, dword [esp + 0x2f4]
xor ecx, esp
call fcn.004d66b5
mov esp, ebp
pop ebp
ret 0x10
call fcn.004c0c60
test al, al
jne 0x4c110e
push 0
push str.InitSystemTextResources
push str._s_FAIL__x
push 0x40
push str.InitSystemTextResources
call fcn.0042cda0
add esp, 0x14
mov ecx, str.InitSystemTextResources
jmp 0x4c0fb0
call fcn.004c0dd0
test al, al
jne 0x4c113c
push 0
push str.PerformRegistryChecks
push str._s_FAIL__x
push 0x40
push str.PerformRegistryChecks
call fcn.0042cda0
add esp, 0x14
mov ecx, str.PerformRegistryChecks
jmp 0x4c0fb0
call fcn.004c0d60
push 0
test al, al
jne 0x4c116a
push str.InitLocalisedTextResources
push str._s_FAIL__x
push 0x40
push str.InitLocalisedTextResources
call fcn.0042cda0
add esp, 0x14
mov ecx, str.InitLocalisedTextResources
jmp 0x4c0fb0
push 0
call dword [sym.imp.ole32.dll_CoInitializeEx]
mov dword [0xa91e60], eax
test eax, eax
je 0x4c11a0
push 0
push 0x4fbdd8
push str._s_FAIL__x
push 0x40
push 0x4fbdd8
call fcn.0042cda0
add esp, 0x14
mov ecx, 0x4fbdd8
jmp 0x4c0fb0
call fcn.004be000
mov byte [0xa88b72], al
test al, al
jne 0x4c11cc
push 0x30
push str.Cue_Club_2
push 0xb0b3c8
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
mov ecx, str.Failed_to_initialise_sound
call fcn.004bfb10
mov esi, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0
call esi
push 1
mov word [0xa91e58], ax
call esi
mov word [0xa91e54], ax
movzx eax, ax
push eax
movzx eax, word [0xa91e58]
push eax
push str.Desktop_size__d_x__d
lea eax, [esp + 0x184]
push 0x40
push eax
call fcn.0042cda0
add esp, 0x14
lea ecx, [esp + 0x178]
call fcn.004bfb10
lea eax, [esp + 0x1c]
push eax
push edi
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov edi, eax
mov eax, 0x280
test edi, edi
je 0x4c1362
xor esi, esi
mov byte [esp + 0x13], 0
mov byte [esp + 0x12], 0
cmp dword [esp + 0x1c], esi
jle 0x4c1356
nop word [eax + eax]
mov ecx, dword [edi + esi*4]
cmp word [ecx], 0x2d
jne case.0x4c1270.101
movzx eax, word [ecx + 2]
add eax, 0xffffff9c
cmp eax, 0x13
ja case.0x4c1270.101
movzx eax, byte [eax + 0x4c185c]
jmp dword [eax*4 + 0x4c1848]
lea eax, [ecx + 4]
mov byte [esp + 0x13], 1
push eax
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll__wtoi]
add esp, 4
mov word [0xa92810], ax
jmp case.0x4c1270.101
lea eax, [ecx + 4]
mov byte [esp + 0x12], 1
push eax
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll__wtoi]
add esp, 4
mov word [0xa9280c], ax
jmp case.0x4c1270.101
push 0xa9292c
lea eax, [ecx + 4]
push 0x4fbe24
push eax
call fcn.00491790
add esp, 0xc
jmp case.0x4c1270.101
lea eax, [ecx + 4]
push eax
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll__wtoi]
add esp, 4
cmp al, 0x64
jl 0x4c12d8
cmp al, 0x6e
jl 0x4c12da
or al, 0xff
add al, 0x9c
mov byte [0x4ff8db], al
inc esi
cmp esi, dword [esp + 0x1c]
jl 0x4c1250
cmp byte [esp + 0x13], 0
je 0x4c1356
cmp byte [esp + 0x12], 0
je 0x4c1356
mov ax, word [0xa91e58]
mov byte [0xa88c23], 1
mov byte [0x7ea933], 0
mov dword [esp + 0x14], 0xca0000
cmp word [0xa92810], ax
ja 0x4c132d
mov eax, 0x280
cmp word [0xa92810], ax
jae 0x4c1333
mov word [0xa92810], ax
mov ax, word [0xa91e54]
cmp word [0xa9280c], ax
ja 0x4c1350
mov eax, 0x1e0
cmp word [0xa9280c], ax
jae 0x4c1356
mov word [0xa9280c], ax
push edi
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov eax, 0x280
mov dx, word [0x7ea976]
mov si, word [0xa91e58]
mov cx, word [0xa91e54]
cmp dx, ax
jae 0x4c138c
mov byte [0x7ea975], 1
mov byte [0x7d0583], 1
jmp 0x4c1395
cmp byte [0x7ea975], 0
je 0x4c13aa
mov dx, si
mov ax, cx
mov word [0x7ea976], dx
mov word [0x7ea978], ax
jmp 0x4c13b0
mov ax, word [0x7ea978]
cmp byte [0xa88c23], 0
jne 0x4c13c8
mov word [0xa92810], dx
mov word [0xa9280c], ax
jmp 0x4c13d5
mov dx, word [0xa92810]
mov ax, word [0xa9280c]
cmp byte [0x7ea933], 0
mov word [0xa91e28], dx
mov word [0xa91e2c], ax
jne 0x4c140d
movzx ecx, cx
movzx eax, ax
sub ecx, eax
movzx eax, dx
sar ecx, 1
mov word [0xa91e50], cx
movzx ecx, si
sub ecx, eax
sar ecx, 1
mov word [0xa91e44], cx
push 0
mov dword [esp + 0x24], 0x30
mov dword [esp + 0x28], 0x40
mov dword [esp + 0x2c], 0x458100
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
xorps xmm0, xmm0
mov dword [esp + 0x34], eax
movups xmmword [esp + 0x38], xmm0
mov dword [esp + 0x48], str.Cue_Club_2
movups xmm0, xmmword [esp + 0x20]
mov dword [esp + 0x4c], 0
push 0xa91e68
movups xmmword [0xa91e68], xmm0
movups xmm0, xmmword [esp + 0x34]
movups xmmword [0xa91e78], xmm0
movups xmm0, xmmword [esp + 0x44]
movups xmmword [0xa91e88], xmm0
call dword [sym.imp.USER32.dll_RegisterClassExW]
push 0
push dword [0xa91e7c]
mov word [0xa91e64], ax
movzx eax, word [0xa9280c]
push 0
push 0
push eax
movzx eax, word [0xa92810]
push eax
movzx eax, word [0xa91e50]
push eax
movzx eax, word [0xa91e44]
push eax
push dword [esp + 0x34]
push str.Cue_Club_2
push str.Cue_Club_2
push 0
call dword [sym.imp.USER32.dll_CreateWindowExW]
push 5
push eax
mov dword [0xa91984], eax
call dword [sym.imp.USER32.dll_ShowWindow]
movzx eax, word [0xa9280c]
push 0
push eax
movzx eax, word [0xa92810]
push eax
movzx eax, word [0xa91e50]
push eax
movzx eax, word [0xa91e44]
push eax
push 0
push dword [0xa91984]
call dword [sym.imp.USER32.dll_SetWindowPos]
call fcn.004bfbd0
call fcn.004bfc50
mov esi, dword [0xa91984]
push 0
push 0x90aa08
push 0x4e92d8
push 0x800
push dword [esp + 0x28]
call dword [sym.imp.DINPUT8.dll_DirectInput8Create]
test eax, eax
jne 0x4c1548
mov ecx, esi
call fcn.004569a0
test al, al
jne 0x4c1574
push 0
push str.InitMouse
push str._s_FAIL__x
push 0x40
push str.InitMouse
call fcn.0042cda0
add esp, 0x14
mov ecx, str.InitMouse
call fcn.004bfb10
mov byte [0xa88bdb], 2
call fcn.004c1870
test al, al
jne 0x4c15a9
push 0
push str.SetupGameResources
push str._s_FAIL__x
push 0x40
push str.SetupGameResources
call fcn.0042cda0
add esp, 0x14
mov ecx, str.SetupGameResources
call fcn.004bfb10
mov byte [0xa88bdb], 2
xorps xmm0, xmm0
push 0xa92930
movss dword [esp + 0x18], xmm0
call dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
push 0xa92940
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov eax, dword [0xa92940]
mov dword [0xa92938], eax
mov eax, dword [0xa92944]
mov dword [0xa9293c], eax
mov eax, dword [0xa92930]
or eax, dword [0xa92934]
jne 0x4c15f8
mov dword [0xa92930], 1
mov dword [0xa92934], eax
mov edi, dword [sym.imp.USER32.dll_PeekMessageW]
nop
cmp byte [0xa88bdb], 0
je 0x4c1617
cmp word [0xa92928], 0
je 0x4c0fbc
movzx eax, word [0xa90f74]
xor esi, esi
movss xmm1, dword [0x4fc894]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm1, xmm0
movss dword [esp + 0x18], xmm1
nop dword [eax]
push 1
push 0
push 0
push 0
lea eax, [esp + 0x64]
push eax
call edi
test eax, eax
je 0x4c166f
lea eax, [esp + 0x54]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [esp + 0x54]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
inc esi
cmp esi, 5
jl 0x4c1640
mov eax, dword [0xa92940]
mov dword [0xa91e48], eax
mov eax, dword [0xa92944]
push 0xa92940
mov dword [0xa91e4c], eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov ecx, dword [0xa92940]
sub ecx, dword [0xa91e48]
mov edx, dword [0xa92944]
sbb edx, dword [0xa91e4c]
call fcn.004d6fb0
mov edx, dword [0xa92934]
mov ecx, dword [0xa92930]
cvtsd2ss xmm0, xmm0
mulss xmm0, dword [0x4fc894]
movss dword [esp + 0x70], xmm0
call fcn.004d6fb0
movss xmm1, dword [esp + 0x70]
cvtsd2ss xmm0, xmm0
divss xmm1, xmm0
addss xmm1, dword [esp + 0x14]
movaps xmm0, xmm1
comiss xmm0, dword [esp + 0x18]
movss dword [esp + 0x14], xmm0
jbe 0x4c1600
mov byte [esp + 0x12], 0
nop dword [eax + eax]
call fcn.004363d0
movss xmm0, dword [esp + 0x14]
movss xmm1, dword [esp + 0x18]
mov al, byte [esp + 0x12]
subss xmm0, xmm1
inc al
mov byte [esp + 0x12], al
movss dword [esp + 0x14], xmm0
cmp al, 5
jae 0x4c174c
cmp byte [0x7ea931], 0
jne 0x4c1755
comiss xmm0, xmm1
jbe 0x4c1755
cmp byte [0x7ea971], 1
je 0x4c1755
add word [0xa91e40], 1
jne 0x4c1700
jmp 0x4c1755
xorps xmm0, xmm0
movss dword [esp + 0x14], xmm0
cmp byte [0xa88b72], 0
je 0x4c1763
call fcn.004bdab0
test byte [0xa9292c], 8
je 0x4c178c
cmp byte [0x7d05a3], 0
je 0x4c1782
cmp byte [0x7ea9a5], 0
jne 0x4c1600
call fcn.00436230
jmp 0x4c1600
cmp byte [0x7d05a3], 0
jne 0x4c1600
call fcn.00436230
jmp 0x4c1600
movsx ecx, byte [0x7ea8b0]
shl ecx, 7
lea eax, [ecx + str.DirectX_9.0c_erforderlich._Jetzt_installieren_]
push eax
push edx
lea eax, [ecx + str.Fehler_beim_Spielstart.]
push eax
push str._s___d__n_n_s
lea eax, [esp + 0x88]
push 0x80
push eax
call fcn.0042cda0
add esp, 0x18
lea eax, [esp + 0x78]
push 0x11
push str.Cue_Club_2
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp eax, 1
jne 0x4c1832
movsx eax, byte [0x7ea8b0]
lea eax, [eax + eax*2]
lea eax, [eax*2 + 0x5587f0]
push eax
push str.https:__cueclub.com_download_directx.php_lang_s
lea eax, [esp + 0x200]
push 0x80
push eax
call fcn.0042cda0
add esp, 0x10
lea eax, [esp + 0x1f8]
push 1
push 0
push 0
push eax
push str.open
push 0
call edi
mov ecx, dword [esp + 0x2fc]
pop edi
pop esi
xor ecx, esp
call fcn.004d66b5
mov esp, ebp
pop ebp
ret 0x10