Function at 0x406db0
Capabilities:
Check for time delay via gettickcount

Disassembly:
mov eax, dword [0x937000]
sub esp, 0x34
dec eax
push ebx
push ebp
push esi
cmp eax, 0x3b
push edi
ja case.default.0x406de3
xor ecx, ecx
mov cl, byte [eax + 0x408150]
jmp dword [ecx*4 + 0x4080f0]
mov eax, dword [0x912144]
cmp eax, 0x4f
ja case.default.0x406de3
jmp dword [eax*4 + 0x40818c]
push 0
mov byte [0x937340], 1
mov byte [0x937331], 0
mov byte [0x9106b8], 0
call fcn.0040f690
push 1
call fcn.0040f690
push 2
call fcn.0040f690
push 3
call fcn.0040f690
add esp, 0x10
call fcn.004067e0
movsx ecx, byte [0x935fc0]
shl ecx, 5
push 0
add ecx, 0x9121a0
call fcn.004137d0
push 0x3c
call fcn.00406970
mov eax, dword [0x912144]
add esp, 4
inc eax
pop edi
pop esi
pop ebp
mov dword [0x912144], eax
pop ebx
add esp, 0x34
ret
push 0
push 0x12
push 0
call fcn.0040f400
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push 8
mov dword [0x912150], eax
mov dword [0x91214c], 0x5dc
mov dword [0x910fe0], 0x3c
call fcn.00405510
mov eax, dword [0x912144]
add esp, 4
inc eax
pop edi
pop esi
pop ebp
mov dword [0x912144], eax
pop ebx
add esp, 0x34
ret
call fcn.004067e0
push 0x56
movsx ecx, byte [0x935fc0]
shl ecx, 5
add ecx, 0x9121a0
call fcn.004134d0
push 0x3e8
push 0x3c
call fcn.00406930
mov eax, dword [0x912144]
add esp, 8
inc eax
pop edi
pop esi
pop ebp
mov dword [0x912144], eax
pop ebx
add esp, 0x34
ret
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push 8
mov dword [0x912150], eax
mov dword [0x91214c], 0x7d0
mov dword [0x910fe0], 0x3c
call fcn.00405510
mov eax, dword [0x912144]
add esp, 4
inc eax
pop edi
pop esi
pop ebp
mov dword [0x912144], eax
pop ebx
add esp, 0x34
ret
call fcn.004067e0
movsx ecx, byte [0x935fc0]
shl ecx, 5
push 0
add ecx, 0x9121a0
call fcn.004137d0
push 0x3e8
push 0x3c
call fcn.00406930
mov eax, dword [0x912144]
add esp, 8
inc eax
pop edi
pop esi
pop ebp
mov dword [0x912144], eax
pop ebx
add esp, 0x34
ret
call fcn.004067e0
push 0x57
jmp 0x406ea8
call fcn.004067e0
push 0x58
jmp 0x406ea8
call fcn.004067e0
push 0x59
jmp 0x406ea8
call fcn.004067e0
push 0x5a
jmp 0x406ea8
call fcn.004067e0
push 0x5b
jmp 0x406ea8
call fcn.004067e0
push 0x5c
jmp 0x406ea8
call fcn.004067e0
push 0x5d
jmp 0x406ea8
call fcn.004067e0
push 0x5e
jmp 0x406ea8
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x912150], eax
mov dword [0x91214c], 0x1388
jmp 0x4070e6
call fcn.004067e0
push 0x5f
jmp 0x406ea8
call fcn.004067e0
push 0x60
jmp 0x406ea8
call fcn.004067e0
push 0x62
jmp 0x406ea8
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x912150], eax
mov dword [0x91214c], 0x7d0
jmp 0x4070e6
call fcn.004067e0
push 0x64
jmp 0x406ea8
call fcn.004067e0
push 0x63
jmp 0x406ea8
call fcn.004067e0
push 0x65
jmp 0x406ea8
call fcn.004067e0
push 0x67
jmp 0x406ea8
call fcn.004067e0
push 0x66
jmp 0x406ea8
call fcn.004067e0
push 0x68
jmp 0x406ea8
call fcn.004067e0
push 0x6a
jmp 0x406ea8
call fcn.004067e0
push 0x69
jmp 0x406ea8
call fcn.004067e0
push 0x6b
jmp 0x406ea8
call fcn.004067e0
push 0x6d
jmp 0x406ea8
call fcn.004067e0
push 0x6e
jmp 0x406ea8
call fcn.004067e0
push 0x6c
jmp 0x406ea8
call fcn.004067e0
push 0x6f
jmp 0x406ea8
call fcn.004067e0
push 0x71
jmp 0x406ea8
call fcn.004067e0
push 0x70
jmp 0x406ea8
call fcn.004067e0
push 0x72
jmp 0x406ea8
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x912150], eax
mov dword [0x91214c], 0xbb8
push 8
mov dword [0x910fe0], 0x3c
call fcn.00405510
mov eax, dword [0x912144]
add esp, 4
inc eax
pop edi
pop esi
pop ebp
mov dword [0x912144], eax
pop ebx
add esp, 0x34
ret
call fcn.004067e0
push 0x74
jmp 0x406ea8
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x912150], eax
mov dword [0x91214c], 0xfa0
jmp 0x4070e6
call fcn.004067e0
push 0x73
jmp 0x406ea8
call fcn.004067e0
movsx ecx, byte [0x935fc0]
shl ecx, 5
push 0x75
add ecx, 0x9121a0
call fcn.004134d0
push 0xfa0
push 0x3c
call fcn.00406930
add esp, 8
mov dword [0x912144], 0x4b
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret
call fcn.004067e0
push 0x76
jmp 0x4071c6
call fcn.004067e0
movsx ecx, byte [0x935fc0]
shl ecx, 5
push 0x77
add ecx, 0x9121a0
call fcn.004134d0
push 0x7d0
push 0x3c
call fcn.00406930
add esp, 8
mov dword [0x912144], 0x4b
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret
call fcn.004067e0
push 0x78
movsx ecx, byte [0x935fc0]
shl ecx, 5
add ecx, 0x9121a0
call fcn.004134d0
push 0x7d0
jmp 0x406ec2
call fcn.004067e0
movsx ecx, byte [0x935fc0]
shl ecx, 5
push 0x79
add ecx, 0x9121a0
call fcn.004134d0
push 0xfa0
jmp 0x406ec2
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x912150], eax
mov dword [0x91214c], 0x1f40
jmp 0x4070e6
mov ecx, 0x90feb8
call fcn.004165b0
test eax, eax
jne case.default.0x406de3
mov eax, dword [0x912144]
pop edi
inc eax
pop esi
pop ebp
mov dword [0x912144], eax
pop ebx
add esp, 0x34
ret
call fcn.004067e0
movsx ecx, byte [0x935fc0]
shl ecx, 5
push 0
add ecx, 0x9121a0
call fcn.004137d0
jmp 0x406ebd
push 0x13
mov byte [0x937340], 0
mov byte [0x440db0], 1
call fcn.00405510
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edx, dword [0x91072c]
add edx, 0x190
cmp edx, eax
ja case.default.0x406de3
cmp dword [0x90fed0], 1
jne 0x4072c4
mov al, byte [0x935fc1]
push eax
call fcn.004049f0
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret
push 1
call fcn.004049f0
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret
call fcn.00405690
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push 8
mov dword [0x912150], eax
mov dword [0x91214c], 0x7d0
mov dword [0x910fe0], 0x15
call fcn.00405510
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret
call fcn.004056d0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push 8
mov dword [0x912150], eax
mov dword [0x91214c], 0x3e8
mov dword [0x910fe0], 0x17
call fcn.00405510
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret
call fcn.00405700
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret
cmp byte [0x9106b8], 1
jne 0x407398
mov ecx, dword [0x910fe0]
push ecx
call fcn.00405510
push 0
call fcn.0040f690
mov eax, dword [0x90fecc]
mov ecx, dword [0x910f34]
add esp, 8
mov edx, dword [eax]
push ecx
push eax
call dword [edx + 0x3c]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call esi
mov edx, dword [0x912150]
mov ecx, dword [0x91214c]
add ecx, edx
cmp ecx, eax
ja case.default.0x406de3
mov eax, dword [0x90fecc]
lea ecx, [esp + 0x10]
push ecx
push eax
mov edx, dword [eax]
call dword [edx + 0x18]
mov edx, dword [0x912154]
mov eax, dword [esp + 0x10]
and edx, 0xffff
sub eax, edx
cmp eax, 0xffffec78
jg 0x407415
mov eax, dword [0x910fe0]
push eax
call fcn.00405510
push 0
call fcn.0040f690
mov eax, dword [0x90fecc]
mov edx, dword [0x910f34]
add esp, 8
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x3c]
call esi
pop edi
pop esi
pop ebp
mov dword [0x912150], eax
pop ebx
add esp, 0x34
ret
mov ecx, dword [0x90fecc]
push eax
push ecx
mov edx, dword [ecx]
call dword [edx + 0x3c]
call esi
pop edi
pop esi
pop ebp
mov dword [0x912150], eax
pop ebx
add esp, 0x34
ret
cmp byte [0x9106b8], 1
jne 0x407464
or eax, 0xffffffff
mov dword [0x912228], eax
mov byte [0x91222c], al
mov eax, dword [0x910fe0]
push eax
call fcn.00405510
push 0
call fcn.0040f690
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret
mov ecx, 0x90feb8
call fcn.004165b0
test eax, eax
jne case.default.0x406de3
mov ecx, dword [0x910fe0]
or eax, 0xffffffff
push ecx
mov dword [0x912228], eax
mov byte [0x91222c], al
call fcn.00405510
push 0
call fcn.0040f690
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret
cmp byte [0x9106b8], 1
jne 0x4074d5
mov edx, dword [0x910fe0]
or eax, 0xffffffff
push edx
mov dword [0x912220], eax
mov byte [0x912224], al
call fcn.00405510
push 1
call fcn.0040f690
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret
mov ecx, 0x9103f8
call fcn.004165b0
test eax, eax
jne case.default.0x406de3
or eax, 0xffffffff
mov dword [0x912220], eax
mov byte [0x912224], al
mov eax, dword [0x910fe0]
push eax
call fcn.00405510
push 1
call fcn.0040f690
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret
cmp byte [0x9106b8], 1
jne 0x407545
mov ecx, dword [0x910fe0]
or eax, 0xffffffff
push ecx
mov dword [0x912218], eax
mov byte [0x91221c], al
call fcn.00405510
push 2
call fcn.0040f690
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret
mov ecx, 0x9102a8
call fcn.004165b0
test eax, eax
jne case.default.0x406de3
mov edx, dword [0x910fe0]
or eax, 0xffffffff
push edx
mov dword [0x912218], eax
mov byte [0x91221c], al
call fcn.00405510
push 2
call fcn.0040f690
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret
call fcn.00409940
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret
mov al, byte [0x9106b8]
test al, al
jne 0x4075b4
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [0x912150]
mov edx, dword [0x91214c]
add edx, ecx
cmp edx, eax
ja case.default.0x406de3
mov eax, dword [0x910fe0]
push eax
call fcn.00405510
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret
cmp byte [0x9106b8], 1
jne case.default.0x406de3
mov ecx, dword [0x910fe0]
push ecx
call fcn.00405510
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret
call fcn.004094d0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret
call fcn.00409220
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret
call fcn.00408a10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret
call fcn.00408b00
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret
call fcn.004082f0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret
cmp byte [0x9106b8], 1
jne 0x40768b
movsx edx, byte [0x935fc0]
movsx ecx, byte [0x910588]
shl edx, 5
push 0
add edx, 0x9121a0
push 0
push edx
push 0x1e0
push 0x280
shl ecx, 5
push 0
push 0
add ecx, 0x9121a0
call fcn.00413830
call fcn.00406410
mov eax, dword [0x910fe0]
push eax
call fcn.00405510
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret
mov ecx, 0x440e78
call fcn.00411f40
cmp eax, 1
jne 0x4076a9
mov ecx, dword [0x910fe0]
push ecx
call fcn.00405510
add esp, 4
call fcn.00406410
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret
cmp byte [0x9106b8], 1
jne 0x407712
movsx edx, byte [0x935fc0]
movsx ecx, byte [0x910588]
shl edx, 5
push 0
add edx, 0x9121a0
push 0
push edx
push 0x1e0
push 0x280
shl ecx, 5
push 0
push 0
add ecx, 0x9121a0
call fcn.00413830
call fcn.00406410
mov eax, dword [0x910fe0]
push eax
call fcn.00405510
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret
mov ecx, 0x440c50
call fcn.00412170
cmp eax, 1
jne 0x407730
mov ecx, dword [0x910fe0]
push ecx
call fcn.00405510
add esp, 4
call fcn.00406410
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret
cmp byte [0x9106b8], 1
jne 0x407837
cmp byte [0x912148], 7
jne 0x4077e3
movsx edx, byte [0x935fc0]
mov eax, dword [0x91216c]
mov ecx, dword [0x912168]
shl edx, 5
push eax
add edx, 0x9121a0
push ecx
push edx
mov edx, dword [0x912174]
push edx
mov edx, dword [0x912170]
push edx
push eax
push ecx
movsx ecx, byte [0x910588]
shl ecx, 5
add ecx, 0x9121a0
call fcn.00413830
movsx edx, byte [0x910588]
mov eax, dword [0x91216c]
mov ecx, dword [0x912168]
shl edx, 5
push eax
add edx, 0x9121a0
push ecx
push edx
mov edx, dword [0x912174]
push edx
mov edx, dword [0x912170]
push edx
push eax
push ecx
call fcn.004063c0
mov eax, dword [0x910fe0]
push eax
call fcn.00405510
add esp, 0x20
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret
movsx ecx, byte [0x935fc0]
shl ecx, 5
push 0
add ecx, 0x9121a0
push 0
push ecx
movsx ecx, byte [0x910588]
push 0x1e0
push 0x280
shl ecx, 5
push 0
push 0
add ecx, 0x9121a0
call fcn.00413830
call fcn.00406410
mov edx, dword [0x910fe0]
push edx
call fcn.00405510
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call esi
mov ecx, dword [0x912150]
mov edx, dword [0x91214c]
add edx, ecx
cmp edx, eax
ja case.default.0x406de3
movsx eax, byte [0x912148]
cmp eax, 8
ja case.default.0x407865
jmp dword [eax*4 + 0x4082cc]
call esi
mov ecx, dword [0x912164]
xor edx, edx
sub eax, ecx
div dword [0x91214c]
mov esi, eax
cmp esi, 0xff
jle 0x40788d
mov esi, 0xff
movsx eax, byte [0x935fc0]
movsx ecx, byte [0x925e2c]
shl eax, 5
shl ecx, 5
add eax, 0x9121a0
push esi
add ecx, 0x9121a0
push eax
push ecx
push 0x1e0
movsx ecx, byte [0x910588]
push 0x280
push 0
shl ecx, 5
push 0
add ecx, 0x9121a0
call fcn.00413c90
call fcn.00406410
cmp esi, 0xff
jne case.default.0x407865
mov edx, dword [0x910fe0]
push edx
call fcn.00405510
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret
movsx ecx, byte [0x935fc0]
mov eax, dword [0x912154]
movsx edx, byte [0x925e2c]
shl ecx, 5
and eax, 0xffff
add ecx, 0x9121a0
push eax
push ecx
movsx ecx, byte [0x910588]
shl edx, 5
add edx, 0x9121a0
push edx
push 0x1e0
push 0x280
push 0
shl ecx, 5
push 0
add ecx, 0x9121a0
call fcn.00413c90
call fcn.00406410
mov ax, word [0x912154]
cmp ax, word [0x912158]
jb 0x4080c1
mov eax, dword [0x910fe0]
push eax
call fcn.00405510
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret
mov edx, dword [0x912154]
mov edi, dword [0x91215c]
xor ebx, ebx
mov esi, 0xf
mov eax, edi
mov ecx, edx
imul eax, ebx
and ecx, 0xffff
cmp eax, ecx
jg 0x4079f2
sub ecx, eax
cmp ecx, 0x280
jge 0x4079f2
movsx edx, byte [0x935fc0]
movsx eax, byte [0x925e2c]
shl edx, 5
shl eax, 5
add edx, 0x9121a0
push esi
add eax, 0x9121a0
push edx
push eax
push 0x1e0
push edi
push 0
push ecx
movsx ecx, byte [0x910588]
shl ecx, 5
add ecx, 0x9121a0
call fcn.00413c90
mov edx, dword [0x912154]
mov edi, dword [0x91215c]
add esi, 0x10
inc ebx
cmp esi, 0x10f
jl 0x40798b
mov ecx, dword [0x912160]
and edx, 0xffff
mov eax, edx
push 0
movsx edx, byte [0x910588]
shl edx, 5
sub eax, ecx
add edx, 0x9121a0
push eax
push edx
push 0x1e0
push ecx
push 0
push eax
call fcn.004063c0
mov eax, dword [0x912160]
mov ecx, dword [0x912154]
add eax, 0x280
and ecx, 0xffff
add esp, 0x1c
cmp ecx, eax
jl 0x407c6f
mov edx, dword [0x910fe0]
push edx
call fcn.00405510
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret
mov edx, dword [0x912154]
mov edi, dword [0x91215c]
xor ebp, ebp
mov eax, 0x280
mov dword [esp + 0x24], ebp
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], 0x1e0
mov dword [esp + 0x14], ebp
mov dword [esp + 0x1c], eax
xor ebx, ebx
mov esi, 0xf
mov eax, edi
mov ecx, edx
imul eax, ebx
and ecx, 0xffff
cmp eax, ecx
jg 0x407b04
sub ecx, eax
cmp ecx, 0x1e0
jge 0x407b04
movsx edx, byte [0x935fc0]
movsx eax, byte [0x925e2c]
shl edx, 5
shl eax, 5
add edx, 0x9121a0
push esi
add eax, 0x9121a0
push edx
push eax
push edi
push 0x280
push ecx
movsx ecx, byte [0x910588]
shl ecx, 5
push ebp
add ecx, 0x9121a0
call fcn.00413c90
mov edx, dword [0x912154]
mov edi, dword [0x91215c]
add esi, 0x10
inc ebx
cmp esi, 0x10f
jl 0x407a9e
mov eax, dword [0x912160]
and edx, 0xffff
sub edx, eax
lea ecx, [esp + 0x14]
add eax, edx
mov dword [esp + 0x18], edx
mov dword [esp + 0x20], eax
lea edx, [esp + 0x24]
push ecx
lea eax, [esp + 0x38]
push edx
push eax
call dword [sym.imp.USER32.dll_IntersectRect]
test eax, eax
je 0x407b6d
movsx ecx, byte [0x910588]
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x40]
shl ecx, 5
push eax
add ecx, 0x9121a0
push ebp
sub edx, eax
push ecx
push edx
push 0x280
push eax
push ebp
call fcn.004063c0
add esp, 0x1c
mov eax, dword [0x912160]
mov ecx, dword [0x912154]
add eax, 0x1e0
and ecx, 0xffff
cmp ecx, eax
jl 0x407c6f
mov edx, dword [0x910fe0]
push edx
call fcn.00405510
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret
mov edx, dword [0x91215c]
mov ecx, dword [0x912154]
mov esi, 1
cmp edx, esi
jl 0x407c11
mov edi, edx
mov eax, ecx
imul edi, esi
and eax, 0xffff
sub eax, edi
js 0x407c0c
cmp eax, 0x280
jge 0x407c0c
movsx ecx, byte [0x935fc0]
shl ecx, 5
push 0
add ecx, 0x9121a0
push eax
push ecx
movsx ecx, byte [0x910588]
push 0x1e0
push esi
shl ecx, 5
push 0
push eax
add ecx, 0x9121a0
call fcn.00413830
mov ecx, dword [0x912154]
mov edx, dword [0x91215c]
inc esi
cmp esi, edx
jle 0x407bb7
movsx edx, byte [0x910588]
and ecx, 0xffff
push 0
mov eax, ecx
mov ecx, dword [0x912160]
shl edx, 5
sub eax, ecx
add edx, 0x9121a0
push eax
push edx
push 0x1e0
push ecx
push 0
push eax
call fcn.004063c0
mov eax, dword [0x912160]
mov ecx, dword [0x912154]
add eax, 0x280
and ecx, 0xffff
add esp, 0x1c
cmp ecx, eax
jl 0x407c6f
mov edx, dword [0x910fe0]
push edx
call fcn.00405510
add esp, 4
mov ax, word [0x91215c]
add word [0x912154], ax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
pop edi
pop esi
pop ebp
mov dword [0x912150], eax
pop ebx
add esp, 0x34
ret
mov edx, dword [0x91215c]
mov ecx, dword [0x912154]
mov esi, 1
xor edi, edi
mov ebx, 0x280
cmp edx, esi
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], 0x1e0
mov dword [esp + 0x14], edi
mov dword [esp + 0x1c], ebx
jl 0x407d1b
mov ebp, edx
mov eax, ecx
imul ebp, esi
and eax, 0xffff
sub eax, ebp
js 0x407d16
cmp eax, 0x1e0
jge 0x407d16
movsx ecx, byte [0x935fc0]
shl ecx, 5
push eax
add ecx, 0x9121a0
push edi
push ecx
movsx ecx, byte [0x910588]
push esi
push ebx
shl ecx, 5
push eax
push edi
add ecx, 0x9121a0
call fcn.00413830
mov ecx, dword [0x912154]
mov edx, dword [0x91215c]
inc esi
cmp esi, edx
jle 0x407cc7
mov eax, dword [0x912160]
and ecx, 0xffff
sub ecx, eax
lea edx, [esp + 0x14]
add eax, ecx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x20], eax
lea eax, [esp + 0x24]
push edx
lea ecx, [esp + 0x38]
push eax
push ecx
call dword [sym.imp.USER32.dll_IntersectRect]
test eax, eax
je 0x407d74
movsx edx, byte [0x910588]
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x40]
shl edx, 5
push eax
add edx, 0x9121a0
push edi
sub ecx, eax
push edx
push ecx
push ebx
push eax
push edi
call fcn.004063c0
add esp, 0x1c
mov edx, dword [0x912160]
mov eax, dword [0x912154]
add edx, 0x1e0
and eax, 0xffff
cmp eax, edx
jl 0x407d9d
mov ecx, dword [0x910fe0]
push ecx
call fcn.00405510
add esp, 4
mov dx, word [0x91215c]
add word [0x912154], dx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
pop edi
pop esi
pop ebp
mov dword [0x912150], eax
pop ebx
add esp, 0x34
ret
mov ax, word [0x912154]
push eax
call fcn.00406d30
mov ecx, dword [0x912154]
add esp, 4
and ecx, 0xffff
mov esi, eax
and ecx, reloc.DSOUND.dll_DirectSoundCreate
jns 0x407de8
dec ecx
or ecx, 0xfffffffe
inc ecx
jne 0x407e30
movsx edx, byte [0x935fc0]
movsx ecx, byte [0x910588]
shl edx, 5
push 0
add edx, 0x9121a0
mov eax, 0x280
push 0
push edx
sub eax, esi
push 0x1e0
push eax
shl ecx, 5
push 0
push esi
add ecx, 0x9121a0
call fcn.00413830
push 0x1e0
push esi
push 0
push 0
jmp 0x407e73
movsx ecx, byte [0x935fc0]
shl ecx, 5
push 0
add ecx, 0x9121a0
push esi
push ecx
movsx ecx, byte [0x910588]
mov edi, 0x280
push 0x1e0
sub edi, esi
push edi
push 0
shl ecx, 5
push 0
add ecx, 0x9121a0
call fcn.00413830
push 0x1e0
push esi
push 0
push edi
movsx ecx, byte [0x910588]
shl ecx, 5
add ecx, 0x9121a0
call fcn.004138e0
call fcn.00406410
mov dx, word [0x912154]
cmp dx, word [0x912158]
jne 0x407fee
mov eax, dword [0x910fe0]
push eax
call fcn.00405510
movsx ecx, byte [0x935fc0]
add esp, 4
shl ecx, 5
push 0
add ecx, 0x9121a0
push 0
push ecx
jmp 0x407fc6
mov dx, word [0x912154]
push edx
call fcn.00406d30
mov esi, eax
mov eax, dword [0x912154]
and eax, 0xffff
add esp, 4
and eax, reloc.DSOUND.dll_DirectSoundCreate
jns 0x407ef1
dec eax
or eax, 0xfffffffe
inc eax
jne 0x407f37
movsx ecx, byte [0x935fc0]
shl ecx, 5
push 0
add ecx, 0x9121a0
push 0
push ecx
movsx ecx, byte [0x910588]
mov edx, 0x1e0
sub edx, esi
push edx
push 0x280
shl ecx, 5
push esi
push 0
add ecx, 0x9121a0
call fcn.00413830
push esi
push 0x280
push 0
jmp 0x407f77
movsx eax, byte [0x935fc0]
movsx ecx, byte [0x910588]
shl eax, 5
mov edi, 0x1e0
push esi
add eax, 0x9121a0
sub edi, esi
push 0
push eax
push edi
push 0x280
shl ecx, 5
push 0
push 0
add ecx, 0x9121a0
call fcn.00413830
push esi
push 0x280
push edi
movsx ecx, byte [0x910588]
shl ecx, 5
push 0
add ecx, 0x9121a0
call fcn.004138e0
call fcn.00406410
mov cx, word [0x912154]
cmp cx, word [0x912158]
jne 0x407fee
mov edx, dword [0x910fe0]
push edx
call fcn.00405510
movsx eax, byte [0x935fc0]
add esp, 4
shl eax, 5
push 0
add eax, 0x9121a0
push 0
push eax
movsx ecx, byte [0x910588]
push 0x1e0
push 0x280
shl ecx, 5
push 0
push 0
add ecx, 0x9121a0
call fcn.00413830
call fcn.00406410
inc word [0x912154]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
pop edi
pop esi
pop ebp
mov dword [0x912150], eax
pop ebx
add esp, 0x34
ret
movsx edx, byte [0x935fc0]
movsx eax, byte [0x925e2c]
mov ecx, dword [0x912154]
shl edx, 5
and ecx, 0xffff
add edx, 0x9121a0
shl eax, 5
push ecx
mov ecx, dword [0x912174]
add eax, 0x9121a0
push edx
mov edx, dword [0x912170]
push eax
mov eax, dword [0x91216c]
push ecx
mov ecx, dword [0x912168]
push edx
push eax
push ecx
movsx ecx, byte [0x910588]
shl ecx, 5
add ecx, 0x9121a0
call fcn.00413c90
movsx edx, byte [0x910588]
mov eax, dword [0x91216c]
mov ecx, dword [0x912168]
shl edx, 5
push eax
add edx, 0x9121a0
push ecx
push edx
mov edx, dword [0x912174]
push edx
mov edx, dword [0x912170]
push edx
push eax
push ecx
call fcn.004063c0
mov ax, word [0x912154]
add esp, 0x1c
cmp ax, word [0x912158]
jb 0x4080c1
mov eax, dword [0x910fe0]
push eax
call fcn.00405510
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret
add ax, word [0x912156]
mov word [0x912154], ax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
pop edi
pop esi
pop ebp
mov dword [0x912150], eax
pop ebx
add esp, 0x34
ret
call fcn.00408700
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret