Function at 0x41c680
Capabilities:
Check for foreground window switch

Disassembly:
push 0xffffffffffffffff
push 0x4656b0
mov eax, dword fs:[0]
push eax
sub esp, 0x30
push ebx
push ebp
push esi
push edi
mov eax, dword [0x47a770]
xor eax, esp
push eax
lea eax, [esp + 0x44]
mov dword fs:[0], eax
mov edi, ecx
mov dword [esp + 0x4c], 0
mov eax, dword [esp + 0x54]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x24], esp
mov esi, esp
push eax
call fcn.00429de0
add eax, 0x10
mov dword [esi], eax
lea eax, [esp + 0x34]
add esp, 4
push eax
mov eax, edi
call fcn.00405d80
mov eax, dword [esp + 0x5c]
add esp, 4
add eax, 0xfffffff0
mov dword [esp + 0x24], esp
mov esi, esp
push eax
call fcn.00429de0
add eax, 0x10
mov dword [esi], eax
add esp, 4
mov eax, edi
call fcn.004046f0
add esp, 4
test al, al
jne 0x41dc74
cmp dword [esp + 0x2c], 0x32
jne 0x41dc74
cmp dword [esp + 0x30], 0xe6
jne 0x41dc74
mov ecx, dword [esp + 0x58]
mov edx, dword [ecx + 0x64]
push edx
lea eax, [esp + 0x18]
push eax
mov ecx, edi
call fcn.00404c30
add esp, 8
mov byte [esp + 0x4c], 1
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx - 0xc]
mov ebx, dword [sym.imp.USER32.dll_GetForegroundWindow]
mov ebp, dword [sym.imp.KERNEL32.dll_Sleep]
test eax, eax
jl 0x41c966
push 0x46dd70
push ecx
call fcn.0044d4ee
add esp, 8
test eax, eax
je 0x41c966
sub eax, dword [esp + 0x14]
js 0x41c966
mov eax, dword [esp + 0x54]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x24], esp
mov esi, esp
push eax
call fcn.00429de0
add eax, 0x10
mov dword [esi], eax
add esp, 4
mov eax, edi
call fcn.004046f0
add esp, 4
test al, al
jne 0x41c966
push 0x47e5d8
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
call ebx
cmp eax, edi
je 0x41c7ef
mov esi, dword [sym.imp.USER32.dll_SetForegroundWindow]
mov edi, edi
push edi
call esi
push 0
call fcn.0044bf56
push eax
call fcn.0044bf22
add esp, 8
call fcn.0044bf34
cdq
mov ecx, 0x64
idiv ecx
add edx, 0x12c
push edx
call ebp
call ebx
cmp eax, edi
jne 0x41c7c0
push 0x47e5d8
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov edx, dword [esp + 0x58]
mov eax, dword [edx + 8]
cmp eax, 0x32
je 0x41c833
cmp eax, 0x46
je 0x41c827
cmp eax, 0x5a
mov ebx, 0xa1
lea eax, [esp + 0x54]
je 0x41c820
push 0x124
jmp 0x41c841
push 0x154
jmp 0x41c841
push 0x143
mov ebx, 0x95
jmp 0x41c83d
push 0x133
mov ebx, 0x9d
lea eax, [esp + 0x58]
push ecx
mov esi, esp
mov dword [esp + 0x28], esp
call fcn.00403870
mov ecx, ebx
mov edx, edi
call fcn.004062f0
add esp, 8
push 0x12c
call ebp
xor ebx, ebx
mov eax, dword [esp + 0x54]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x24], esp
mov esi, esp
push eax
call fcn.00429de0
add eax, 0x10
mov dword [esi], eax
add esp, 4
mov eax, edi
call fcn.00406270
add esp, 4
cmp al, 1
jne 0x41c8b2
mov eax, dword [esp + 0x54]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x24], esp
mov esi, esp
push eax
call fcn.00429de0
add eax, 0x10
mov dword [esi], eax
add esp, 4
mov esi, edi
call fcn.00407f60
add esp, 4
mov eax, dword [esp + 0x58]
mov ecx, dword [eax + 0x64]
push ecx
lea edx, [esp + 0x1c]
push edx
mov ecx, edi
call fcn.00404c30
add esp, 8
mov byte [esp + 0x4c], 2
mov eax, dword [esp + 0x18]
cmp dword [eax - 0xc], 0
jl 0x41c91a
push 0x46dd88
push eax
call fcn.0044d4ee
add esp, 8
test eax, eax
je 0x41c91a
sub eax, dword [esp + 0x18]
js 0x41c91a
mov eax, dword [esp + 0x54]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x24], esp
mov esi, esp
push eax
call fcn.00429de0
add eax, 0x10
mov dword [esi], eax
add esp, 4
mov eax, edi
call fcn.004046f0
add esp, 4
test al, al
je 0x41c952
push 0x190
call ebp
mov byte [esp + 0x4c], 1
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41c946
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
inc ebx
cmp ebx, 5
jle 0x41c862
jmp 0x41c960
lea ecx, [esp + 0x18]
mov byte [esp + 0x4c], 1
call fcn.004020d0
mov ebx, dword [sym.imp.USER32.dll_GetForegroundWindow]
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx - 0xc]
test eax, eax
jl 0x41cbb0
push 0x46dd88
push ecx
call fcn.0044d4ee
add esp, 8
test eax, eax
je 0x41cbb0
sub eax, dword [esp + 0x14]
js 0x41cbb0
mov eax, dword [esp + 0x54]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x24], esp
mov esi, esp
push eax
call fcn.00429de0
add eax, 0x10
mov dword [esi], eax
add esp, 4
mov eax, edi
call fcn.004046f0
add esp, 4
test al, al
jne 0x41cbb0
push 0x47e5d8
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
call ebx
cmp eax, edi
je 0x41ca0f
mov esi, dword [sym.imp.USER32.dll_SetForegroundWindow]
lea ebx, [ebx]
push edi
call esi
push 0
call fcn.0044bf56
push eax
call fcn.0044bf22
add esp, 8
call fcn.0044bf34
cdq
mov ecx, 0x64
idiv ecx
add edx, 0x12c
push edx
call ebp
call ebx
cmp eax, edi
jne 0x41c9e0
push 0x47e5d8
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov edx, dword [esp + 0x58]
mov eax, dword [edx + 0x1c]
sub eax, 1
mov eax, dword [esp + 0x54]
je 0x41ca36
push 0x114
mov esi, 0xaa
jmp 0x41ca40
push 0x124
mov esi, 0x95
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x28], esp
mov ebx, esp
push eax
call fcn.00429de0
add eax, 0x10
add esp, 4
mov ecx, esi
mov edx, edi
mov dword [ebx], eax
call fcn.004062f0
add esp, 8
push 0x12c
call ebp
xor ebx, ebx
lea ecx, [ecx]
mov eax, dword [esp + 0x54]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x24], esp
mov esi, esp
push eax
call fcn.00429de0
add eax, 0x10
mov dword [esi], eax
add esp, 4
mov eax, edi
call fcn.00406270
add esp, 4
cmp al, 1
jne 0x41cac0
mov eax, dword [esp + 0x54]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x24], esp
mov esi, esp
push eax
call fcn.00429de0
add eax, 0x10
mov dword [esi], eax
add esp, 4
mov esi, edi
call fcn.00407f60
add esp, 4
mov eax, dword [esp + 0x58]
mov ecx, dword [eax + 0x64]
push ecx
lea edx, [esp + 0x1c]
push edx
mov ecx, edi
call fcn.00404c30
add esp, 8
mov byte [esp + 0x4c], 3
mov ecx, dword [esp + 0x18]
cmp dword [ecx - 0xc], 0
jl 0x41cb4c
push 0x46dd94
push ecx
call fcn.0044d4ee
add esp, 8
test eax, eax
je 0x41cb2a
mov ecx, dword [esp + 0x18]
sub eax, ecx
js 0x41cb2e
mov eax, dword [esp + 0x54]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x24], esp
mov esi, esp
push eax
call fcn.00429de0
add eax, 0x10
mov dword [esi], eax
add esp, 4
mov eax, edi
call fcn.004046f0
add esp, 4
test al, al
je 0x41cb84
mov ecx, dword [esp + 0x18]
cmp dword [ecx - 0xc], 0
jl 0x41cb4c
push 0x46dda8
push ecx
call fcn.0044d4ee
add esp, 8
test eax, eax
je 0x41cb4c
sub eax, dword [esp + 0x18]
jns 0x41cb84
push 0x190
call ebp
mov byte [esp + 0x4c], 1
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41cb78
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
inc ebx
cmp ebx, 5
jle 0x41ca70
jmp 0x41cba9
mov byte [esp + 0x4c], 1
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41cba9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x190
call ebp
mov eax, dword [esp + 0x14]
cmp dword [eax - 0xc], 0
jl 0x41cbfc
push 0x46dd94
push eax
call fcn.0044d4ee
add esp, 8
test eax, eax
je 0x41cbfc
sub eax, dword [esp + 0x14]
js 0x41cbfc
mov eax, dword [esp + 0x54]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x24], esp
mov esi, esp
push eax
call fcn.00429de0
add eax, 0x10
mov dword [esi], eax
add esp, 4
mov eax, edi
call fcn.004046f0
add esp, 4
test al, al
je 0x41cc2a
mov eax, dword [esp + 0x14]
cmp dword [eax - 0xc], 0
jl 0x41d928
push 0x46dda8
push eax
call fcn.0044d4ee
add esp, 8
test eax, eax
je 0x41d928
sub eax, dword [esp + 0x14]
js 0x41d928
push 0x12c
call ebp
mov ecx, dword [esp + 0x14]
cmp dword [ecx - 0xc], 0
jl 0x41d921
push 0x46ddbc
push ecx
call fcn.0044d4ee
mov ecx, dword [esp + 0x1c]
add esp, 8
test eax, eax
je 0x41cce4
sub eax, ecx
js 0x41cce4
mov eax, dword [esp + 0x54]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x24], esp
mov esi, esp
push eax
call fcn.00429de0
add eax, 0x10
mov dword [esi], eax
add esp, 4
mov eax, edi
call fcn.00406270
add esp, 4
cmp al, 1
je 0x41ccbd
mov eax, dword [esp + 0x54]
push 0xf0
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x28], esp
mov ebx, esp
push eax
mov esi, 0x203
call fcn.00429de0
add eax, 0x10
add esp, 4
mov ecx, esi
mov edx, edi
mov dword [ebx], eax
call fcn.004062f0
add esp, 8
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x54]
push ecx
push edi
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x2c], esp
mov esi, esp
push eax
call fcn.00429de0
add eax, 0x10
add esp, 4
mov dword [esi], eax
call fcn.0040e820
cmp dword [ecx - 0xc], 0
jl 0x41d921
push 0x46ddd4
push ecx
call fcn.0044d4ee
mov ecx, dword [esp + 0x1c]
add esp, 8
test eax, eax
je 0x41cd93
sub eax, ecx
js 0x41cd93
mov eax, dword [esp + 0x54]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x24], esp
mov esi, esp
push eax
call fcn.00429de0
add eax, 0x10
mov dword [esi], eax
add esp, 4
mov eax, edi
call fcn.00406270
add esp, 4
cmp al, 1
je 0x41cd6c
mov eax, dword [esp + 0x54]
push 0xf0
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x28], esp
mov ebx, esp
push eax
mov esi, 0x203
call fcn.00429de0
add eax, 0x10
add esp, 4
mov ecx, esi
mov edx, edi
mov dword [ebx], eax
call fcn.004062f0
add esp, 8
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x54]
push edx
push edi
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x2c], esp
mov esi, esp
push eax
call fcn.00429de0
add eax, 0x10
add esp, 4
mov dword [esi], eax
call fcn.00410120
cmp dword [ecx - 0xc], 0
jl 0x41d921
push 0x46dde0
push ecx
call fcn.0044d4ee
mov ecx, dword [esp + 0x1c]
add esp, 8
test eax, eax
je 0x41ce42
sub eax, ecx
js 0x41ce42
mov eax, dword [esp + 0x54]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x24], esp
mov esi, esp
push eax
call fcn.00429de0
add eax, 0x10
mov dword [esi], eax
add esp, 4
mov eax, edi
call fcn.00406270
add esp, 4
cmp al, 1
je 0x41ce1b
mov eax, dword [esp + 0x54]
push 0xf0
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x28], esp
mov ebx, esp
push eax
mov esi, 0x203
call fcn.00429de0
add eax, 0x10
add esp, 4
mov ecx, esi
mov edx, edi
mov dword [ebx], eax
call fcn.004062f0
add esp, 8
mov eax, dword [esp + 0x58]
push eax
mov eax, dword [esp + 0x58]
push edi
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x2c], esp
mov esi, esp
push eax
call fcn.00429de0
add eax, 0x10
add esp, 4
mov dword [esi], eax
call fcn.00413170
cmp dword [ecx - 0xc], 0
jl 0x41d921
push 0x46ddf4
push ecx
call fcn.0044d4ee
mov ecx, dword [esp + 0x1c]
add esp, 8
test eax, eax
je 0x41cf4f
sub eax, ecx
js 0x41cf4f
mov eax, dword [esp + 0x54]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x24], esp
mov esi, esp
push eax
call fcn.00429de0
add eax, 0x10
mov dword [esi], eax
add esp, 4
mov eax, edi
call fcn.00406270
add esp, 4
cmp al, 1
je 0x41cebe
push 0xf0
push ecx
lea eax, [esp + 0x5c]
mov esi, esp
mov ebx, 0x203
mov dword [esp + 0x28], esp
call fcn.00403870
mov ecx, ebx
mov edx, edi
call fcn.004062f0
add esp, 8
mov ecx, dword [esp + 0x14]
cmp dword [ecx - 0xc], 0
jge 0x41cecd
or esi, 0xffffffff
jmp 0x41ceec
push 0x46de00
push ecx
call fcn.0044d4ee
mov ecx, dword [esp + 0x1c]
add esp, 8
test eax, eax
jne 0x41cee8
or esi, 0xffffffff
jmp 0x41ceec
sub eax, ecx
mov esi, eax
cmp dword [ecx - 0xc], 0
jge 0x41cef7
or eax, 0xffffffff
jmp 0x41cf12
push 0x46de04
push ecx
call fcn.0044d4ee
add esp, 8
test eax, eax
jne 0x41cf0e
or eax, 0xffffffff
jmp 0x41cf12
sub eax, dword [esp + 0x14]
sub eax, esi
cmp eax, 0x16
lea eax, [esp + 0x54]
jle 0x41cf36
mov ecx, dword [esp + 0x58]
push 1
push ecx
push edi
push ecx
mov esi, esp
mov dword [esp + 0x30], esp
call fcn.00403870
call fcn.004146a0
mov edx, dword [esp + 0x58]
push 2
push edx
push edi
push ecx
mov esi, esp
mov dword [esp + 0x30], esp
call fcn.00403870
call fcn.004146a0
cmp dword [ecx - 0xc], 0
jl 0x41d921
push 0x46de08
push ecx
call fcn.0044d4ee
mov ecx, dword [esp + 0x1c]
add esp, 8
test eax, eax
je 0x41cfd2
sub eax, ecx
js 0x41cfd2
push ecx
lea eax, [esp + 0x58]
mov esi, esp
mov dword [esp + 0x24], esp
call fcn.00403870
mov eax, edi
call fcn.00406270
add esp, 4
cmp al, 1
je 0x41cfb7
push 0xf0
push ecx
lea eax, [esp + 0x5c]
mov esi, esp
mov ebx, 0x203
mov dword [esp + 0x28], esp
call fcn.00403870
mov ecx, ebx
mov edx, edi
call fcn.004062f0
add esp, 8
mov eax, dword [esp + 0x58]
push eax
push edi
push ecx
lea eax, [esp + 0x60]
mov esi, esp
mov dword [esp + 0x2c], esp
call fcn.00403870
call fcn.0040be20
cmp dword [ecx - 0xc], 0
jl 0x41d921
push 0x46de10
push ecx
call fcn.0044d4ee
mov ecx, dword [esp + 0x1c]
add esp, 8
test eax, eax
je 0x41d057
sub eax, ecx
js 0x41d057
push ecx
lea eax, [esp + 0x58]
mov esi, esp
mov dword [esp + 0x24], esp
call fcn.00403870
mov eax, edi
call fcn.00406270
add esp, 4
cmp al, 1
je 0x41d03a
push 0xf0
push ecx
lea eax, [esp + 0x5c]
mov esi, esp
mov ebx, 0x203
mov dword [esp + 0x28], esp
call fcn.00403870
mov ecx, ebx
mov edx, edi
call fcn.004062f0
add esp, 8
mov ecx, dword [esp + 0x58]
push 1
push ecx
push edi
push ecx
lea eax, [esp + 0x64]
mov esi, esp
mov dword [esp + 0x30], esp
call fcn.00403870
call fcn.00415c90
cmp dword [ecx - 0xc], 0
jl 0x41d921
push 0x46de18
push ecx
call fcn.0044d4ee
mov ecx, dword [esp + 0x1c]
add esp, 8
test eax, eax
je 0x41d0dc
sub eax, ecx
js 0x41d0dc
push ecx
lea eax, [esp + 0x58]
mov esi, esp
mov dword [esp + 0x24], esp
call fcn.00403870
mov eax, edi
call fcn.00406270
add esp, 4
cmp al, 1
je 0x41d0bf
push 0xf0
push ecx
lea eax, [esp + 0x5c]
mov esi, esp
mov ebx, 0x203
mov dword [esp + 0x28], esp
call fcn.00403870
mov ecx, ebx
mov edx, edi
call fcn.004062f0
add esp, 8
mov edx, dword [esp + 0x58]
push 2
push edx
push edi
push ecx
lea eax, [esp + 0x64]
mov esi, esp
mov dword [esp + 0x30], esp
call fcn.00403870
call fcn.00415c90
cmp dword [ecx - 0xc], 0
jl 0x41d921
push 0x46de24
push ecx
call fcn.0044d4ee
mov ecx, dword [esp + 0x1c]
add esp, 8
test eax, eax
je 0x41d15f
sub eax, ecx
js 0x41d15f
push ecx
lea eax, [esp + 0x58]
mov esi, esp
mov dword [esp + 0x24], esp
call fcn.00403870
mov eax, edi
call fcn.00406270
add esp, 4
cmp al, 1
je 0x41d144
push 0xf0
push ecx
lea eax, [esp + 0x5c]
mov esi, esp
mov ebx, 0x203
mov dword [esp + 0x28], esp
call fcn.00403870
mov ecx, ebx
mov edx, edi
call fcn.004062f0
add esp, 8
mov eax, dword [esp + 0x58]
push eax
push edi
push ecx
lea eax, [esp + 0x60]
mov esi, esp
mov dword [esp + 0x2c], esp
call fcn.00403870
call fcn.00417e90
cmp dword [ecx - 0xc], 0
jl 0x41d921
push 0x46de38
push ecx
call fcn.0044d4ee
mov ecx, dword [esp + 0x1c]
add esp, 8
test eax, eax
je 0x41d563
sub eax, ecx
js 0x41d563
lea ecx, [esp + 0x24]
call fcn.00402160
mov byte [esp + 0x4c], 4
mov eax, dword [esp + 0x14]
mov ecx, dword [eax - 0xc]
test ecx, ecx
jge 0x41d1a9
or eax, 0xffffffff
jmp 0x41d1c4
push 0x46de44
push eax
call fcn.0044d4ee
add esp, 8
test eax, eax
jne 0x41d1c0
or eax, 0xffffffff
jmp 0x41d1c4
sub eax, dword [esp + 0x14]
lea ebx, [eax + 2]
mov ecx, ebx
mov edx, 0x46de44
lea esi, [esp + 0x14]
call fcn.00428670
push 3
push ebx
lea ecx, [esp + 0x28]
push ecx
lea ecx, [esp + 0x20]
mov esi, eax
call fcn.004286a0
push 3
add esi, 2
push esi
lea edx, [esp + 0x24]
push edx
lea ecx, [esp + 0x20]
mov byte [esp + 0x58], 5
call fcn.004286a0
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x24]
push ecx
mov byte [esp + 0x54], 6
call fcn.00428750
add esp, 8
push ecx
test al, al
mov dword [esp + 0x1c], esp
mov esi, esp
lea eax, [esp + 0x58]
je 0x41d27f
call fcn.00403870
mov eax, edi
call fcn.00406270
add esp, 4
cmp al, 1
je 0x41d262
push 0xf0
push ecx
lea eax, [esp + 0x5c]
mov esi, esp
mov ebx, 0x203
mov dword [esp + 0x20], esp
call fcn.00403870
mov ecx, ebx
mov edx, edi
call fcn.004062f0
add esp, 8
mov edx, dword [esp + 0x58]
push 1
push edx
push edi
push ecx
lea eax, [esp + 0x64]
mov esi, esp
mov dword [esp + 0x28], esp
call fcn.00403870
call fcn.004118b0
call fcn.00403870
mov eax, edi
call fcn.00406270
add esp, 4
cmp al, 1
je 0x41d2b8
push 0xf0
push ecx
lea eax, [esp + 0x5c]
mov esi, esp
mov ebx, 0x203
mov dword [esp + 0x34], esp
call fcn.00403870
mov ecx, ebx
mov edx, edi
call fcn.004062f0
add esp, 8
push 0x13
push ecx
lea eax, [esp + 0x5c]
mov esi, esp
mov dword [esp + 0x34], esp
call fcn.00403870
call fcn.004054b0
add esp, 8
push 0x708
call ebp
push 0x13
push ecx
lea eax, [esp + 0x5c]
mov esi, esp
mov dword [esp + 0x34], esp
call fcn.00403870
call fcn.004054b0
push edi
lea ecx, [esp + 0x24]
call fcn.00404e20
add esp, 0xc
mov byte [esp + 0x4c], 7
mov eax, dword [esp + 0x18]
cmp dword [eax - 0xc], 0
jl 0x41d43a
push 0x46de48
push eax
call fcn.0044d4ee
add esp, 8
test eax, eax
je 0x41d43a
mov ecx, dword [esp + 0x18]
sub eax, ecx
js 0x41d43a
cmp dword [ecx - 0xc], 0
jl 0x41d3d9
push 0x46de50
push ecx
call fcn.0044d4ee
add esp, 8
test eax, eax
je 0x41d3d9
mov ecx, dword [esp + 0x18]
sub eax, ecx
js 0x41d3d9
cmp dword [ecx - 0xc], 0
jl 0x41d3d9
push 0x46de5c
push ecx
call fcn.0044d4ee
add esp, 8
test eax, eax
je 0x41d3d9
sub eax, dword [esp + 0x18]
js 0x41d3d9
push ecx
lea eax, [esp + 0x58]
mov esi, esp
mov dword [esp + 0x30], esp
call fcn.00403870
mov eax, edi
call fcn.00406270
add esp, 4
cmp al, 1
je 0x41d3bc
push 0xf0
push ecx
lea eax, [esp + 0x5c]
mov esi, esp
mov ebx, 0x203
mov dword [esp + 0x34], esp
call fcn.00403870
mov ecx, ebx
mov edx, edi
call fcn.004062f0
add esp, 8
mov eax, dword [esp + 0x58]
push 3
push eax
push edi
push ecx
lea eax, [esp + 0x64]
mov esi, esp
mov dword [esp + 0x3c], esp
call fcn.00403870
call fcn.004118b0
push ecx
lea eax, [esp + 0x58]
mov esi, esp
mov dword [esp + 0x30], esp
call fcn.00403870
mov eax, edi
call fcn.00406270
add esp, 4
cmp al, 1
je 0x41d41d
push 0xf0
push ecx
lea eax, [esp + 0x5c]
mov esi, esp
mov ebx, 0x203
mov dword [esp + 0x34], esp
call fcn.00403870
mov ecx, ebx
mov edx, edi
call fcn.004062f0
add esp, 8
mov ecx, dword [esp + 0x58]
push 2
push ecx
push edi
push ecx
lea eax, [esp + 0x64]
mov esi, esp
mov dword [esp + 0x3c], esp
call fcn.00403870
call fcn.004118b0
push 0x47e5d8
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov esi, dword [sym.imp.USER32.dll_GetForegroundWindow]
call esi
cmp eax, edi
je 0x41d468
mov ebx, dword [sym.imp.USER32.dll_SetForegroundWindow]
push edi
call ebx
call fcn.00408120
push eax
call ebp
call esi
cmp eax, edi
jne 0x41d457
push 0x47e5d8
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
fld dword [0x46f354]
lea edx, [esp + 0x2c]
push edx
lea eax, [esp + 0x40]
push eax
push 0xa
sub esp, 8
fstp dword [esp + 4]
mov ecx, esp
mov dword [esp + 0x50], esp
push 0x46de64
call fcn.0042a2b0
lea ecx, [esp + 0x68]
push ecx
mov ecx, edi
call fcn.0042af60
push ecx
test eax, eax
mov dword [esp + 0x40], esp
mov esi, esp
lea eax, [esp + 0x58]
jl 0x41d50d
call fcn.00403870
mov eax, edi
call fcn.00406270
add esp, 4
cmp al, 1
je 0x41d4f0
push 0xf0
push ecx
lea eax, [esp + 0x5c]
mov esi, esp
mov ebx, 0x203
mov dword [esp + 0x44], esp
call fcn.00403870
mov ecx, ebx
mov edx, edi
call fcn.004062f0
add esp, 8
mov edx, dword [esp + 0x58]
push 3
push edx
push edi
push ecx
lea eax, [esp + 0x64]
mov esi, esp
mov dword [esp + 0x4c], esp
call fcn.00403870
call fcn.004118b0
call fcn.00403870
mov eax, edi
call fcn.00406270
add esp, 4
cmp al, 1
je 0x41d546
push 0xf0
push ecx
lea eax, [esp + 0x5c]
mov esi, esp
mov ebx, 0x203
mov dword [esp + 0x44], esp
call fcn.00403870
mov ecx, ebx
mov edx, edi
call fcn.004062f0
add esp, 8
mov eax, dword [esp + 0x58]
push 2
push eax
push edi
push ecx
lea eax, [esp + 0x64]
mov esi, esp
mov dword [esp + 0x4c], esp
call fcn.00403870
call fcn.004118b0
cmp dword [ecx - 0xc], 0
jl 0x41d921
push 0x46de70
push ecx
call fcn.0044d4ee
mov ecx, dword [esp + 0x1c]
add esp, 8
test eax, eax
je 0x41d5e6
sub eax, ecx
js 0x41d5e6
push ecx
lea eax, [esp + 0x58]
mov esi, esp
mov dword [esp + 0x40], esp
call fcn.00403870
mov eax, edi
call fcn.00406270
add esp, 4
cmp al, 1
je 0x41d5cb
push 0xf0
push ecx
lea eax, [esp + 0x5c]
mov esi, esp
mov ebx, 0x203
mov dword [esp + 0x44], esp
call fcn.00403870
mov ecx, ebx
mov edx, edi
call fcn.004062f0
add esp, 8
mov ecx, dword [esp + 0x58]
push ecx
push edi
push ecx
lea eax, [esp + 0x60]
mov esi, esp
mov dword [esp + 0x48], esp
call fcn.00403870
call fcn.0041ac20
cmp dword [ecx - 0xc], 0
jl 0x41d921
push 0x46dda8
push ecx
call fcn.0044d4ee
mov ecx, dword [esp + 0x1c]
add esp, 8
test eax, eax
je 0x41d669
sub eax, ecx
js 0x41d669
push ecx
lea eax, [esp + 0x58]
mov esi, esp
mov dword [esp + 0x40], esp
call fcn.00403870
mov eax, edi
call fcn.00406270
add esp, 4
cmp al, 1
je 0x41d64e
push 0xf0
push ecx
lea eax, [esp + 0x5c]
mov esi, esp
mov ebx, 0x203
mov dword [esp + 0x44], esp
call fcn.00403870
mov ecx, ebx
mov edx, edi
call fcn.004062f0
add esp, 8
mov edx, dword [esp + 0x58]
push edx
push edi
push ecx
lea eax, [esp + 0x60]
mov esi, esp
mov dword [esp + 0x48], esp
call fcn.00403870
call fcn.0040d220
cmp dword [ecx - 0xc], 0
jl 0x41d921
push 0x46de8c
push ecx
call fcn.0044d4ee
mov ecx, dword [esp + 0x1c]
add esp, 8
test eax, eax
je 0x41d76e
sub eax, ecx
js 0x41d76e
push ecx
lea eax, [esp + 0x58]
mov esi, esp
mov dword [esp + 0x40], esp
call fcn.00403870
mov eax, edi
call fcn.00406270
add esp, 4
cmp al, 1
je 0x41d6d9
push 0xf0
push ecx
lea eax, [esp + 0x5c]
mov esi, esp
mov ebx, 0x203
mov dword [esp + 0x44], esp
call fcn.00403870
mov ecx, ebx
mov edx, edi
call fcn.004062f0
add esp, 8
mov ecx, dword [esp + 0x14]
cmp dword [ecx - 0xc], 0
jge 0x41d6e8
or esi, 0xffffffff
jmp 0x41d707
push 0x46de00
push ecx
call fcn.0044d4ee
mov ecx, dword [esp + 0x1c]
add esp, 8
test eax, eax
jne 0x41d703
or esi, 0xffffffff
jmp 0x41d707
sub eax, ecx
mov esi, eax
cmp dword [ecx - 0xc], 0
jge 0x41d712
or eax, 0xffffffff
jmp 0x41d72d
push 0x46de04
push ecx
call fcn.0044d4ee
add esp, 8
test eax, eax
jne 0x41d729
or eax, 0xffffffff
jmp 0x41d72d
sub eax, dword [esp + 0x14]
sub eax, esi
cmp eax, 0x16
jle 0x41d751
mov eax, dword [esp + 0x58]
push 1
push eax
push edi
push ecx
lea eax, [esp + 0x64]
mov esi, esp
mov dword [esp + 0x4c], esp
call fcn.00403870
call fcn.004146a0
mov ecx, dword [esp + 0x58]
push 2
push ecx
push edi
push ecx
lea eax, [esp + 0x64]
mov esi, esp
mov dword [esp + 0x4c], esp
call fcn.00403870
call fcn.004146a0
cmp dword [ecx - 0xc], 0
jl 0x41d921
push 0x46deb0
push ecx
call fcn.0044d4ee
add esp, 8
test eax, eax
je 0x41d81d
mov ecx, dword [esp + 0x14]
sub eax, ecx
js 0x41d821
cmp dword [ecx - 0xc], 0
jl 0x41d921
push 0x46deb4
push ecx
call fcn.0044d4ee
add esp, 8
test eax, eax
je 0x41d81d
mov ecx, dword [esp + 0x14]
sub eax, ecx
js 0x41d821
push ecx
lea eax, [esp + 0x58]
mov esi, esp
mov dword [esp + 0x40], esp
call fcn.00403870
mov eax, edi
call fcn.00406270
add esp, 4
cmp al, 1
je 0x41d802
push 0xf0
push ecx
lea eax, [esp + 0x5c]
mov esi, esp
mov ebx, 0x203
mov dword [esp + 0x44], esp
call fcn.00403870
mov ecx, ebx
mov edx, edi
call fcn.004062f0
add esp, 8
mov edx, dword [esp + 0x58]
push edx
push edi
push ecx
lea eax, [esp + 0x60]
mov esi, esp
mov dword [esp + 0x48], esp
call fcn.00403870
call fcn.0040a950
mov ecx, dword [esp + 0x14]
cmp dword [ecx - 0xc], 0
jl 0x41d921
push 0x46deb8
push ecx
call fcn.0044d4ee
mov ecx, dword [esp + 0x1c]
add esp, 8
test eax, eax
je 0x41d8a4
sub eax, ecx
js 0x41d8a4
push ecx
lea eax, [esp + 0x58]
mov esi, esp
mov dword [esp + 0x40], esp
call fcn.00403870
mov eax, edi
call fcn.00406270
add esp, 4
cmp al, 1
je 0x41d889
push 0xf0
push ecx
lea eax, [esp + 0x5c]
mov esi, esp
mov ebx, 0x203
mov dword [esp + 0x44], esp
call fcn.00403870
mov ecx, ebx
mov edx, edi
call fcn.004062f0
add esp, 8
mov eax, dword [esp + 0x58]
push eax
push edi
push ecx
lea eax, [esp + 0x60]
mov esi, esp
mov dword [esp + 0x48], esp
call fcn.00403870
call fcn.00419d50
cmp dword [ecx - 0xc], 0
jl 0x41d921
push 0x46dec8
push ecx
call fcn.0044d4ee
add esp, 8
test eax, eax
je 0x41d921
sub eax, dword [esp + 0x14]
js 0x41d921
push ecx
lea eax, [esp + 0x58]
mov esi, esp
mov dword [esp + 0x40], esp
call fcn.00403870
mov eax, edi
call fcn.00406270
add esp, 4
cmp al, 1
je 0x41d906
push 0xf0
push ecx
lea eax, [esp + 0x5c]
mov esi, esp
mov ebx, 0x203
mov dword [esp + 0x44], esp
call fcn.00403870
mov ecx, ebx
mov edx, edi
call fcn.004062f0
add esp, 8
mov ecx, dword [esp + 0x58]
push ecx
push edi
push ecx
lea eax, [esp + 0x60]
mov esi, esp
mov dword [esp + 0x48], esp
call fcn.00403870
call fcn.0041b880
push 0x12c
call ebp
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx - 0xc]
test eax, eax
jl 0x41d9b2
push 0x46dedc
push ecx
call fcn.0044d4ee
add esp, 8
test eax, eax
je 0x41d9b2
sub eax, dword [esp + 0x14]
js 0x41d9b2
mov eax, dword [esp + 0x54]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x40], esp
mov esi, esp
push eax
call fcn.00429de0
add eax, 0x10
mov dword [esi], eax
add esp, 4
mov eax, edi
call fcn.00406270
add esp, 4
cmp al, 1
je 0x41d9ab
mov eax, dword [esp + 0x54]
push 0xf0
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x44], esp
mov ebx, esp
push eax
mov esi, 0x203
call fcn.00429de0
add eax, 0x10
add esp, 4
mov ecx, esi
mov edx, edi
mov dword [ebx], eax
call fcn.004062f0
add esp, 8
push 0x1194
call ebp
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx - 0xc]
mov ebp, dword [sym.imp.KERNEL32.dll_FreeLibrary]
test eax, eax
jl 0x41da46
push 0x46defc
push ecx
call fcn.0044d4ee
add esp, 8
test eax, eax
je 0x41da46
sub eax, dword [esp + 0x14]
js 0x41da46
cmp byte [0x47bb50], 1
jne 0x41d9fa
push 0xbb8
push 0xbb8
call dword [sym.imp.KERNEL32.dll_Beep]
jmp 0x41da46
lea esi, [esp + 0x2c]
call fcn.0042e050
push ecx
mov byte [esp + 0x50], 8
mov ebx, esp
mov dword [esp + 0x40], esp
push str.img__1.wav
call fcn.00401d10
mov ecx, dword [esp + 0x34]
call fcn.00429d00
mov byte [esp + 0x4c], 1
mov eax, dword [esp + 0x2c]
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov eax, dword [esp + 0x30]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [esp + 0x38]
push eax
call ebp
mov eax, dword [esp + 0x14]
cmp dword [eax - 0xc], 0
jl 0x41db65
push 0x46df14
push eax
call fcn.0044d4ee
add esp, 8
test eax, eax
je 0x41db65
sub eax, dword [esp + 0x14]
js 0x41db65
mov eax, dword [esp + 0x54]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x40], esp
mov esi, esp
push eax
call fcn.00429de0
add eax, 0x10
mov dword [esi], eax
add esp, 4
mov eax, edi
call fcn.004046f0
add esp, 4
test al, al
jne 0x41db65
mov eax, dword [esp + 0x54]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x40], esp
mov esi, esp
push eax
call fcn.00429de0
add eax, 0x10
lea ecx, [esp + 0x44]
add esp, 4
mov dword [esi], eax
push ecx
mov eax, edi
call fcn.00405d80
mov eax, dword [esp + 0x44]
add esp, 8
cmp eax, 0x32
jne 0x41dae2
cmp dword [esp + 0x40], 0xe6
jne 0x41db37
jmp 0x41daf3
cmp eax, 0xffffffff
jne 0x41db37
mov edx, dword [esp + 0x40]
add edx, 0xffffffad
cmp edx, 3
ja 0x41db37
push ecx
lea eax, [esp + 0x58]
mov esi, esp
mov dword [esp + 0x40], esp
call fcn.00403870
mov eax, edi
call fcn.00406270
add esp, 4
cmp al, 1
je 0x41db37
push 0xf0
push ecx
lea eax, [esp + 0x5c]
mov esi, esp
mov ebx, 0x203
mov dword [esp + 0x44], esp
call fcn.00403870
mov ecx, ebx
mov edx, edi
call fcn.004062f0
add esp, 8
mov eax, dword [esp + 0x58]
push 1
push 0
push eax
mov eax, dword [esp + 0x60]
push edi
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x50], esp
mov esi, esp
push eax
call fcn.00429de0
add eax, 0x10
add esp, 4
mov dword [esi], eax
call fcn.0041c1f0
add esp, 0x14
mov eax, dword [esp + 0x14]
cmp dword [eax - 0xc], 0
jl 0x41dbb9
push 0x46df24
push eax
call fcn.0044d4ee
add esp, 8
test eax, eax
je 0x41dbb9
sub eax, dword [esp + 0x14]
js 0x41dbb9
mov eax, dword [esp + 0x54]
push 0xf0
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x44], esp
mov ebx, esp
push eax
mov esi, 0x203
call fcn.00429de0
add eax, 0x10
add esp, 4
mov ecx, esi
mov edx, edi
mov dword [ebx], eax
call fcn.004062f0
add esp, 8
mov eax, dword [esp + 0x14]
cmp dword [eax - 0xc], 0
jl 0x41dc46
push 0x46df38
push eax
call fcn.0044d4ee
add esp, 8
test eax, eax
je 0x41dc46
sub eax, dword [esp + 0x14]
js 0x41dc46
cmp byte [0x47bb50], 1
jne 0x41dbfa
push 0xbb8
push 0xbb8
call dword [sym.imp.KERNEL32.dll_Beep]
jmp 0x41dc46
lea esi, [esp + 0x2c]
call fcn.0042e050
push ecx
mov byte [esp + 0x50], 9
mov ebx, esp
mov dword [esp + 0x40], esp
push str.img__1.wav
call fcn.00401d10
mov ecx, dword [esp + 0x34]
call fcn.00429d00
mov byte [esp + 0x4c], 1
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [esp + 0x30]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [esp + 0x38]
push eax
call ebp
mov byte [esp + 0x4c], 0
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41dec3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x41dec3
mov eax, dword [esp + 0x54]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x40], esp
mov esi, esp
push eax
call fcn.00429de0
add eax, 0x10
mov dword [esi], eax
add esp, 4
mov eax, edi
call fcn.00406270
add esp, 4
cmp al, 1
mov eax, dword [esp + 0x54]
jne 0x41dcc9
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x40], esp
mov esi, esp
push eax
call fcn.00429de0
add eax, 0x10
mov dword [esi], eax
add esp, 4
mov esi, edi
call fcn.00407f60
add esp, 4
jmp 0x41dec3
add eax, 0xfffffff0
push eax
call fcn.00429de0
mov ecx, dword [0x47bb44]
add esp, 4
push ecx
mov ecx, edi
mov esi, eax
call fcn.0042bd60
test eax, eax
jne 0x41dcf9
mov edx, dword [0x47bb44]
push 0x7a
push edx
mov ecx, edi
call fcn.0042be10
mov eax, esi
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41dd14
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x54]
push 0x21
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x44], esp
mov ebx, esp
push eax
mov esi, 0x12
call fcn.00429de0
add eax, 0x10
mov ecx, esi
add esp, 4
mov esi, edi
mov dword [ebx], eax
call fcn.00407980
add esp, 8
xor ebx, ebx
mov eax, dword [esp + 0x54]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x40], esp
mov esi, esp
push eax
mov dword [esp + 0x28], ebx
call fcn.00429de0
add eax, 0x10
lea ecx, [esp + 0x2c]
add esp, 4
mov dword [esi], eax
push ecx
mov eax, edi
call fcn.00405d80
mov edx, dword [eax + 4]
mov ebp, dword [eax]
mov eax, dword [esp + 0x5c]
add esp, 4
add eax, 0xfffffff0
mov dword [esp + 0x40], esp
mov esi, esp
push eax
mov dword [esp + 0x38], edx
call fcn.00429de0
add eax, 0x10
mov dword [esi], eax
add esp, 4
mov eax, edi
call fcn.004046f0
add esp, 4
test al, al
jne 0x41ddb5
cmp ebp, 0x32
jne 0x41ddb5
cmp dword [esp + 0x30], 0xe6
je 0x41ddca
push 0xc8
call dword [sym.imp.KERNEL32.dll_Sleep]
inc ebx
cmp ebx, 7
jle 0x41dd45
cmp dword [esp + 0x20], 7
jne 0x41dec3
mov eax, dword [esp + 0x54]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x40], esp
mov esi, esp
push eax
call fcn.00429de0
add eax, 0x10
mov dword [esi], eax
add esp, 4
mov eax, edi
call fcn.004046f0
add esp, 4
test al, al
je 0x41dec3
push 0
call fcn.0044bf56
push eax
call fcn.0044bf22
call fcn.0044bf34
cdq
mov ecx, 0x3c
idiv ecx
mov esi, 0x1e
sub esi, edx
call fcn.0044bf34
cdq
mov ecx, 0x3c
idiv ecx
mov eax, dword [esp + 0x5c]
add eax, 0xfffffff0
mov ebx, 0x1e
push eax
sub ebx, edx
call fcn.00429de0
mov edx, dword [0x47bb44]
add esp, 0xc
push edx
mov ecx, edi
mov ebp, eax
call fcn.0042bd60
test eax, eax
jne 0x41de6b
mov eax, dword [0x47bb44]
push 0x5a
push eax
mov ecx, edi
call fcn.0042be10
mov eax, ebp
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41de86
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x32
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [esp + 0x54]
add ebx, 0xf6
push ebx
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x44], esp
mov ebx, esp
push eax
add esi, 0x145
call fcn.00429de0
add eax, 0x10
add esp, 4
mov ecx, esi
mov edx, edi
mov dword [ebx], eax
call fcn.004062f0
add esp, 8
mov dword [esp + 0x4c], 0xffffffff
mov eax, dword [esp + 0x54]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41deeb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x44]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3c
ret