Function at 0x408f80
Capabilities:
Check for time delay via queryperformancecounter

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1d8
push ebx
push esi
push edi
xor ebx, ebx
push ebx
call dword [sym.imp.ole32.dll_CoInitialize]
mov dword [ebp - 0x64], 0x70007500
mov dword [ebp - 0x60], 0x65007400
mov dword [ebp - 0x5c], 0x53007500
mov dword [ebp - 0x58], 0x6e007200
mov dword [ebp - 0x54], 0x4100
mov dword [ebp - 0xd4], 0x74004f
mov dword [ebp - 0xd0], 0x440075
mov dword [ebp - 0xcc], 0x670062
mov dword [ebp - 0xc8], 0x690074
mov dword [ebp - 0xc4], 0x67
call fcn.00408cd0
mov ecx, 0x3e9
mov eax, 0x3e8
mov edi, 0xbce34c
mov byte [0x498a5b], 0x20
xor esi, esi
mov edx, 0xfc4044
rep stosd dword es:[edi], eax
mov dword [edx - 4], esi
mov dword [edx], ebx
mov dword [edx + 4], ebx
mov dword [edx + 8], ebx
mov dword [edx + 0xc], ebx
mov dword [edx + 0x14], ebx
mov dword [edx + 0x28], ebx
mov dword [edx + 0xfd4], 0xffffffff
mov dword [edx + 0xfd8], ebx
mov dword [edx + 0x30], ebx
add edx, 0x101c
inc esi
cmp edx, 0x13b3dc0
jl 0x40900e
call fcn.004103e0
test eax, eax
jne 0x409054
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x104
lea eax, [ebp - 0x1d8]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea ecx, [ebp - 0x1d8]
push ecx
call fcn.00407d70
add esp, 4
test eax, eax
jne 0x409081
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.00435470
push 0xfa0
push 0x40
mov dword [0x4b3e08], 0xd382
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov ecx, dword [0x4825e8]
mov edx, dword [str.jdqmdk21_ckk]
mov dword [ebp - 0x30], ecx
mov ecx, dword [str.Uhqst_k_kknb]
mov dword [ebp - 0x50], ecx
mov cx, word [0x4825dc]
mov dword [0x13b5180], eax
mov eax, dword [0x4825e4]
mov word [ebp - 0x44], cx
mov ecx, dword [0x4825c8]
mov dword [ebp - 0x34], eax
xor eax, eax
mov dword [ebp - 0xbc], ecx
mov dword [ebp - 0x2a], eax
mov ecx, 5
mov esi, str.EktrgHmrsqtbshnmB_bgd
lea edi, [ebp - 0x80]
rep movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x26], eax
mov dword [ebp - 0x38], edx
mov dx, word [0x4825ec]
mov byte [ebp - 0x22], al
mov eax, dword [0x4825d8]
mov word [ebp - 0x2c], dx
mov edx, dword [0x4825d4]
mov dword [ebp - 0x48], eax
mov eax, dword [str.cdbncd_ahm]
mov dword [ebp - 0x4c], edx
xor edx, edx
mov dword [ebp - 0xc0], eax
movsw word es:[edi], word [esi]
xor eax, eax
mov dword [ebp - 0x42], edx
mov dword [ebp - 0xb4], eax
mov dword [ebp - 0x3e], edx
movsb byte es:[edi], byte [esi]
mov dword [ebp - 0xb0], eax
mov byte [ebp - 0x3a], dl
mov edx, dword [0x4825cc]
mov word [ebp - 0xac], ax
mov ecx, 7
mov esi, str.TfuVoiboemfeFydfqujpoGjlter
lea edi, [ebp - 0x9c]
mov dword [ebp - 0xb8], edx
mov byte [ebp - 0xaa], al
rep movsd dword es:[edi], dword [esi]
mov cl, byte [ebp + eax - 0x38]
mov dl, byte [ebp + eax - 0x50]
inc cl
mov byte [ebp + eax - 0x38], cl
mov cl, byte [ebp + eax - 0xc0]
inc dl
inc cl
mov byte [ebp + eax - 0x50], dl
mov dl, byte [ebp + eax - 0x9c]
mov byte [ebp + eax - 0xc0], cl
mov cl, byte [ebp + eax - 0x80]
dec dl
inc cl
mov byte [ebp + eax - 0x9c], dl
mov byte [ebp + eax - 0x80], cl
inc eax
cmp eax, 0x17
jl 0x409164
lea ecx, [ebp - 0x38]
push ecx
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
xor edx, edx
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x30], edx
mov esi, eax
mov dword [ebp - 0x2c], edx
lea eax, [ebp - 0x9c]
mov dword [ebp - 0x28], edx
push eax
mov word [ebp - 0x24], dx
push esi
mov dword [ebp - 0xa0], esi
mov byte [ebp - 0x22], dl
call edi
mov edx, dword [0x488624]
xor ecx, ecx
cmp esi, ebx
mov dword [ebp - 0x9c], ecx
mov dword [ebp - 0x98], ecx
mov dword [ebp - 0x94], ecx
mov dword [ebp - 0x90], ecx
mov dword [ebp - 0x8c], ecx
mov word [ebp - 0x88], cx
mov dword [ebp - 8], eax
mov byte [ebp - 0x86], cl
mov dword [ebp - 0x68], edx
je 0x40929b
lea eax, [ebp - 0x50]
push eax
push esi
call edi
xor ecx, ecx
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x44], ecx
lea edx, [ebp - 0x80]
mov dword [ebp - 0x40], ecx
push edx
mov word [ebp - 0x3c], cx
push esi
mov dword [ebp - 4], eax
mov byte [ebp - 0x3a], cl
call edi
mov dword [ebp - 0xa8], eax
xor eax, eax
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x70], eax
mov word [ebp - 0x6c], ax
mov byte [ebp - 0x6a], al
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov dword [ebp - 0xa4], eax
cmp dword [ebp - 4], ebx
je 0x40929b
push 0x40
push 0x1000
push dword [ebp - 0x68]
push 0
call dword [ebp - 4]
mov dword [0x13b515c], eax
push dword [ebp - 0x68]
push eax
push dword [ebp - 0xa4]
call dword [ebp - 0xa8]
cmp dword [0x13b515c], ebx
jne 0x4092ac
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, 0x40
xor eax, eax
mov edi, 0x13b41c4
rep stosd dword es:[edi], eax
mov dword [ebp - 0x68], 0x407e20
push dword [ebp - 0x68]
call dword [ebp - 8]
mov ecx, dword [0x13b515c]
push str.autoexec.scn
push ebx
mov dword [0x15767c0], ecx
call fcn.00405540
add esp, 8
test eax, eax
jne 0x4092ec
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xor eax, eax
mov ecx, 0x4d0
mov edi, 0x4b5620
rep stosd dword es:[edi], eax
mov ecx, 0x80
mov edi, 0x4bac30
rep stosd dword es:[edi], eax
mov ecx, 0x490
mov edi, 0x4b6968
rep stosd dword es:[edi], eax
cmp dword [0x4880e0], ebx
mov dword [0xfc4058], 1
mov dword [0x4b3e08], ebx
je 0x409334
call fcn.00409b10
mov dword [0x4880e0], eax
call fcn.0040b240
call fcn.0040ba20
xor edi, edi
mov esi, 0x4c7d28
push edi
push esi
call fcn.004343d0
add esp, 8
add esi, 0x161c
inc edi
cmp esi, 0x4fc550
jl 0x409345
xor eax, eax
mov ecx, 0x2ac00
mov edi, 0x4fc550
rep stosd dword es:[edi], eax
mov ecx, 0x26
mov edi, 0x5e39d0
rep stosd dword es:[edi], eax
mov eax, 0x485910
mov dword [eax], ebx
add eax, 0x24
cmp eax, 0x487d10
jl 0x40937d
mov eax, 0x4fc550
mov edi, eax
add eax, 0x4800
cmp eax, 0x5a7550
mov ecx, 0x900
mov esi, 0x485908
rep movsd dword es:[edi], dword [esi]
jl 0x40938e
xor eax, eax
mov ecx, 0xb120
mov edi, 0x5b7550
rep stosd dword es:[edi], eax
mov ecx, 0x3e8
mov edi, 0x7f99a8
rep stosd dword es:[edi], eax
mov ecx, 0xfa
mov edi, 0x7dd7a8
rep stosd dword es:[edi], eax
mov ecx, 0xf4628
mov edi, 0x7fa948
rep stosd dword es:[edi], eax
mov ecx, 0x1776
mov edi, 0x7f2bd0
rep stosd dword es:[edi], eax
mov ecx, 0x101
mov edi, 0xbccb00
rep stosd dword es:[edi], eax
mov ecx, 0x101
mov edi, 0xbcc1e8
rep stosd dword es:[edi], eax
mov ecx, 0x100
mov edi, 0x7da820
rep stosd dword es:[edi], eax
mov esi, dword [ebp + eax - 0x64]
mov edx, dword [ebp + eax - 0xd4]
or esi, edx
mov dword [ebp + eax - 0x64], esi
add eax, 4
cmp eax, 0x14
jl 0x40940a
mov ecx, dword [ebp - 0xa0]
lea eax, [ebp - 0x64]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
xor edx, edx
mov dword [ebp - 0x64], edx
mov dword [ebp - 0x60], edx
mov dword [ebp - 0x5c], edx
mov dword [ebp - 0x58], edx
mov dword [ebp - 0x54], edx
mov eax, 0x7dcf74
mov dword [eax - 4], ebx
mov dword [eax], 0xffffffff
add eax, 8
cmp eax, 0x7dd774
jl 0x40944a
mov eax, 0x7e0bc4
mov dword [eax - 4], ebx
mov dword [eax], ebx
mov dword [eax + 4], 0xffffffff
add eax, 0xc
cmp eax, 0x7e17c4
jl 0x409462
xor eax, eax
mov ecx, 0x101
mov edi, 0x7dac20
rep stosd dword es:[edi], eax
mov ecx, 0x101
mov edi, 0xbcc5f0
rep stosd dword es:[edi], eax
mov ecx, 0x100
mov edi, 0xbcdf44
rep stosd dword es:[edi], eax
mov ecx, 0x100
mov edi, 0x13b3dbc
rep stosd dword es:[edi], eax
mov ecx, 0x100
mov edi, 0xfb3bbc
rep stosd dword es:[edi], eax
mov ecx, 0x100
mov edi, 0xbcf2f0
mov edx, 0x7f89a8
rep stosd dword es:[edi], eax
mov dword [edx], ebx
add edx, 0x10
cmp edx, 0x7f99a8
jl 0x4094c7
call fcn.00409a50
xor eax, eax
mov ecx, 0x100
mov edi, 0x7dc938
rep stosd dword es:[edi], eax
push 0x8000
mov ecx, 0x100
mov edi, 0x7ddb90
push ebx
mov dword [0x4b3e08], ebx
mov dword [0x13b51a4], ebx
rep stosd dword es:[edi], eax
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov ecx, dword [0x4b3e08]
mov edx, dword [0x13b51a4]
mov dword [ecx*4 + 0x7dc938], eax
cmp dword [edx*4 + 0x7dc938], ebx
jne 0x409530
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xor eax, eax
mov ecx, 0x404
mov edi, 0x7db928
rep stosd dword es:[edi], eax
cmp dword [0x488320], ebx
je 0x4095b9
lea eax, [ebp - 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
test eax, eax
je 0x4095b3
cmp dword [0x488320], ebx
je 0x4095b9
mov esi, dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
lea ecx, [ebp - 0x10]
push ecx
call esi
push 0x1f4
call dword [sym.imp.KERNEL32.dll_Sleep]
lea edx, [ebp - 0x20]
push edx
call esi
mov eax, dword [ebp - 0x20]
mov esi, dword [ebp - 0x10]
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x1c]
push ebx
sub eax, esi
push 0x3e8
sbb ecx, edx
push ecx
push eax
call fcn.00445240
mov ecx, dword [ebp - 0x14]
push ecx
mov ecx, dword [ebp - 0x18]
push ecx
push edx
push eax
call fcn.00445190
cmp eax, 0x1c2
jb 0x4095b3
cmp eax, 0x226
jbe 0x4095b9
mov dword [0x488320], ebx
mov edx, dword [0x13b5158]
add edx, 0x2000
mov dword [0x13b5160], edx
mov dword [ebp - 4], ebx
xor edx, edx
pushfd
pop eax
xor eax, 0x200000
push eax
popfd
pushfd
pop ebx
cmp eax, ebx
jne 0x4095ec
mov eax, 1
cpuid
and edx, 0x2800000
mov eax, 0x30
mov eax, dword fs:[eax]
mov eax, dword [eax + 0x68]
and eax, 0x70
or edx, eax
mov dword [ebp - 4], edx
mov eax, dword [0x488318]
test eax, eax
je 0x409615
mov eax, dword [ebp - 4]
and eax, 0x2800000
mov dword [0x13b5300], eax
call fcn.00413a60
mov esi, eax
xor eax, eax
lea edx, [0x409629]
push 0x64
push edx
mov ebx, dword [eax]
push eax
call dword [ebp - 8]
call fcn.00413a60
sub eax, esi
cmp eax, 0x14
jae 0x409643
mov dword [0x7da7e0], 1
xor esi, esi
mov dword [ebp - 8], esi
fild dword [ebp - 8]
fmul qword [0x47b540]
fld st(0)
fsin
fmul qword [0x47b538]
call fcn.00407cf0
fcos
mov dword [esi*4 + 0x4c410c], eax
fmul qword [0x47b538]
call fcn.00407cf0
mov dword [esi*4 + 0x4c58bc], eax
inc esi
cmp esi, 0x100
mov dword [ebp - 8], esi
jl 0x409648
push 0
call fcn.00419ac0
call fcn.00408eb0
call fcn.00403390
mov edx, dword [0x7e17c4]
mov ecx, dword [0x13b5158]
mov eax, dword [0x13b43c4]
push edx
add ecx, 0x4000
push eax
mov dword [0x13b5164], ecx
call fcn.00403be0
add esp, 0xc
test eax, eax
jne 0x4096dc
push str.DirectInputCreate_Error.
push 0x13b41c4
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test byte [ebp - 4], 0x70
je 0x409708
cmp dword [0xfc405c], 7
jbe 0x4097ed
mov ecx, dword [0xfc4050]
mov dword [ecx], 0x840258
mov edx, dword [0xfc4050]
mov dword [edx + 4], 0
xor eax, eax
mov ecx, 0x92
mov edi, 0x4bac30
rep stosd dword es:[edi], eax
mov eax, dword [0x13b5164]
cmp dword [eax], 0xadaeacaa
je 0x40972c
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [0x13b43c4]
test eax, eax
je 0x4097f6
mov ecx, dword [0x487f44]
mov edx, dword [0x487f38]
mov eax, dword [0x487f34]
push ecx
push edx
push eax
call fcn.00413a00
xor eax, eax
mov ecx, 0xb0b
mov edi, 0x7ddf90
rep stosd dword es:[edi], eax
mov ecx, 0xb0b
mov edi, 0xfb0f90
rep stosd dword es:[edi], eax
mov eax, dword [0x488080]
add esp, 0xc
xor esi, esi
test eax, eax
jle 0x4097af
mov edi, 0x7ddf90
mov ecx, dword [0x487f44]
mov edx, dword [0x487f38]
mov eax, dword [0x487f34]
push 0
push ecx
push edx
push eax
push edi
call fcn.00412230
add esp, 0x14
test eax, eax
je 0x4097ed
mov eax, dword [0x488080]
inc esi
add edi, 0x2c
cmp esi, eax
jl 0x40977f
mov eax, dword [0x13b43e4]
mov ecx, dword [0x13b43c4]
lea edx, [eax + eax*4]
push ecx
lea eax, [eax + edx*2]
mov edx, dword [0x487f30]
lea ecx, [eax*4 + 0x7ddf90]
push ecx
push edx
call fcn.0040d340
add esp, 0xc
test eax, eax
je 0x4097ed
push 0x488324
call fcn.00408b30
add esp, 4
test eax, eax
jne 0x4097f6
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.00401310
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret