Function at 0x4771e0
Capabilities:
Check for unmoving mouse cursor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4d97bb
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x5c
push esi
mov esi, ecx
mov dword [ebp - 0x2c], esi
mov ecx, dword [esi + 0x54]
test ecx, ecx
je 0x478620
push edi
push 0
push 0
call fcn.0047bbe0
mov ecx, dword [esi + 0x54]
and eax, 0x4000
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x38]
push eax
call fcn.00475800
mov ecx, dword [ebp + 0x18]
mov eax, dword [ebp + 0x10]
mov edi, dword [ebp + 8]
mov dword [esi + 0x38], ecx
lea ecx, [esi + 4]
mov dword [ebp + 0x18], eax
mov eax, dword [ebp + 0x14]
push edi
mov dword [esi + 0x40], 0
mov dword [esi + 0x34], 0
mov dword [ebp - 0x24], eax
call fcn.00440500
test eax, eax
je 0x477266
mov eax, dword [ebp + 0x18]
mov dword [esi + 0x20], eax
mov eax, dword [ebp - 0x24]
mov dword [esi + 0x24], eax
mov ecx, dword [0x51735c]
cmp ecx, dword [esi + 0x58]
mov eax, dword [ebp + 0xc]
cmovne ecx, dword [esi + 0x58]
mov dword [0x51735c], ecx
mov ecx, dword [eax]
test ecx, ecx
jne 0x477286
xor eax, eax
jmp 0x477298
mov eax, dword [ecx]
lea edx, [ebp + 0x18]
push edx
push 0x10000312
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp + 0x18]
shr eax, 0x10
test al, 1
jne 0x4773cd
mov ecx, dword [edi]
test ecx, ecx
jne 0x4772ad
xor eax, eax
jmp 0x4772bf
mov eax, dword [ecx]
lea edx, [ebp + 0x18]
push edx
push 0x10000312
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp + 0x18]
shr eax, 0x10
test al, 1
je 0x4773cd
cmp dword [esi + 0xf4], 0
je 0x4773cd
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0
mov ecx, dword [esi + 0x54]
mov eax, dword [esi + 0x50]
add eax, 0xbf4
mov dword [ebp - 4], 0
push eax
mov edx, dword [ecx]
mov eax, dword [edx + 0x2c]
call eax
test eax, eax
je 0x477313
mov dword [ebp + 0x18], 0xd
jmp 0x47738b
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov ecx, dword [esi + 0x54]
push eax
call fcn.00475200
mov dword [ebp + 0x18], eax
test eax, eax
je 0x477397
lea eax, [ebp - 0x28]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
mov eax, dword [ebp + 0x18]
lea edx, [ebp - 0x58]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0xac]
push dword [ebp - 0x24]
lea eax, [ebp - 0x58]
push dword [ebp - 0x28]
push eax
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
je 0x477384
mov eax, dword [esi + 0x50]
test eax, eax
je 0x477397
mov ecx, dword [eax + 0x34]
test ecx, ecx
jne 0x47736c
lea ecx, [eax + 0x40]
test ecx, ecx
je 0x477397
mov ecx, dword [eax + 0x34]
test ecx, ecx
jne 0x477376
lea ecx, [eax + 0x40]
mov eax, dword [ecx]
push 1
push 0
push 0
push ecx
call dword [eax + 0x28]
jmp 0x477397
mov dword [ebp + 0x18], 0x1b
lea eax, [ebp + 0x18]
push eax
lea ecx, [ebp - 0x44]
call fcn.0047ac90
mov ecx, dword [esi + 0x54]
lea eax, [ebp - 0x44]
push eax
call fcn.00479c90
mov ecx, esi
call fcn.00474ee0
lea ecx, [ebp - 0x44]
mov dword [esi + 0xf4], 0
mov dword [esi + 0xf0], 0
mov dword [ebp - 4], 0xffffffff
call fcn.00446850
mov ecx, dword [esi + 0x54]
push 0
push 0
call fcn.0047bb00
mov ecx, dword [edi]
mov edx, dword [esi + 0x50]
mov dword [ebp - 0x10], eax
mov dword [ebp + 0x18], edx
test ecx, ecx
jne 0x4773ec
xor eax, eax
jmp 0x477401
mov eax, dword [ecx]
lea edx, [ebp - 0x24]
push edx
push 0x10000315
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp + 0x18]
cmp al, 3
jne 0x477430
mov ecx, dword [edx + 0xbf4]
test ecx, ecx
jne 0x477413
xor eax, eax
jmp 0x477425
mov eax, dword [ecx]
lea edx, [ebp - 0x24]
push edx
push 0x10000315
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x1c], 1
cmp al, 3
je 0x477437
mov dword [ebp - 0x1c], 0
mov ecx, dword [edi]
test ecx, ecx
jne 0x477442
mov dword [ebp - 0x14], ecx
jmp 0x477457
mov eax, dword [ecx]
lea edx, [ebp - 0x24]
push edx
push 0x10000303
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp + 0x18]
mov ecx, dword [ecx + 0xbf4]
test ecx, ecx
jne 0x477468
xor eax, eax
jmp 0x47747a
mov eax, dword [ecx]
lea edx, [ebp + 0x18]
push edx
push 0x10000303
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp + 0x18]
mov ecx, dword [esi + 0x54]
sub dword [ebp - 0x14], eax
mov eax, dword [esi + 0x50]
add eax, 0xbf4
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 0x2c]
call eax
mov ecx, dword [esi + 0x54]
push edi
mov dword [ebp - 0x20], eax
mov edx, dword [ecx]
mov edx, dword [edx + 0x2c]
call edx
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x24], eax
call fcn.0041df00
test al, al
je 0x4774c5
mov ecx, edi
call fcn.0041df00
test al, al
je 0x4774c5
mov ecx, dword [esi + 0x54]
push edi
call fcn.004763b0
test eax, eax
je 0x4774f3
cmp dword [ebp - 0x1c], 0
je 0x478617
mov ecx, dword [esi + 0x50]
push edi
call fcn.0041de10
test eax, eax
jne 0x478617
push dword [ebp + 0xc]
mov ecx, dword [esi + 0x50]
call fcn.0041de10
test eax, eax
je 0x478617
mov eax, dword [esi + 0x58]
mov dword [ebp + 0x18], eax
cmp eax, 0xa
ja case.0x477502.8
jmp dword [eax*4 + 0x478634]
cmp dword [esi + 0x54], 0
je case.0x477502.8
mov ecx, edi
mov dword [ebp + 0xc], 0
call fcn.00404850
cmp dword [ebp - 0x1c], 0
je 0x4775bb
push eax
lea eax, [esi + 0x70]
mov ecx, esi
push eax
push edi
call fcn.00475730
lea ecx, [esi + 0x70]
call fcn.00404df0
cmp eax, dword [esi + 0xe0]
jle 0x4785fa
lea ecx, [esi + 0x70]
call fcn.00404e50
cmp eax, dword [esi + 0xd8]
jle 0x4785fa
lea ecx, [esi + 0x78]
call fcn.00404df0
cmp eax, dword [esi + 0xe0]
jle 0x4785fa
lea ecx, [esi + 0x78]
call fcn.00404e50
cmp eax, dword [esi + 0xd8]
jle 0x4785fa
lea ecx, [esi + 0x80]
call fcn.00404df0
cmp eax, dword [esi + 0xe0]
jle 0x4785fa
lea ecx, [esi + 0x80]
call fcn.00404e50
cmp eax, dword [esi + 0xd8]
jle 0x4785fa
jmp 0x477685
cmp eax, 1
jne 0x4785fa
cmp dword [ebp - 0x20], 0
je 0x4775f3
cmp dword [ebp - 0x24], 0
je 0x4775de
mov ecx, dword [esi + 0x50]
push eax
call fcn.00424550
jmp 0x477685
cmp dword [ebp - 0x14], 0x64
jae 0x4775f3
mov ecx, dword [esi + 0x50]
push 1
call fcn.00424550
jmp 0x477685
mov ecx, dword [esi + 0x50]
lea ecx, [ecx + 0xbf4]
call fcn.00404e50
mov ecx, dword [esi + 0xd4]
sub ecx, eax
mov eax, ecx
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x258
jge 0x4785fa
mov ecx, dword [esi + 0x50]
lea ecx, [ecx + 0xbf4]
call fcn.00404df0
mov ecx, dword [esi + 0xdc]
sub ecx, eax
cmp ecx, 0x64
jle 0x4785fa
call fcn.0049d840
push eax
call fcn.0049f730
add esp, 4
test eax, eax
je 0x4785fa
push 0xff
call fcn.0043a320
add esp, 4
test al, al
jne 0x4785fa
call fcn.004555a0
test al, al
jne 0x4785fa
mov ecx, dword [esi + 0x54]
push 3
push 1
call fcn.0047a640
mov dword [ebp + 0xc], 1
lea eax, [esi + 0xb0]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
push edi
mov ecx, esi
mov dword [esi + 0xc0], 0
mov dword [esi + 0xe8], 0
mov dword [esi + 0xec], 0
mov dword [esi + 0xf0], 0
call fcn.00476530
test eax, eax
je 0x47774e
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov ecx, dword [esi + 0x54]
push eax
call fcn.00475200
test eax, eax
je 0x47774e
mov ecx, esi
call fcn.004794f0
test byte [ebp - 0x10], 0x80
mov eax, dword [esi + 0x60]
mov dword [ebp + 0x18], eax
je case.0x477502.8
cmp dword [ebp + 0xc], 0
jne case.0x477502.8
cmp eax, 3
je 0x47770c
cmp eax, 4
jne case.0x477502.8
mov ecx, dword [esi + 0x50]
lea ecx, [ecx + 0xba4]
call fcn.0040a0b0
test al, al
je 0x4785fa
mov ecx, edi
call fcn.0040a0b0
test al, al
jne 0x4785fa
mov ecx, esi
call fcn.00476be0
mov ecx, dword [esi + 0x54]
push 3
push 0
call fcn.0047a640
mov eax, 0xa
jmp case.0x477502.8
test byte [ebp - 0x10], 0x80
je 0x477789
cmp dword [ebp + 0xc], 0
jne 0x477789
mov ecx, dword [esi + 0x50]
lea ecx, [ecx + 0xba4]
call fcn.0040a0b0
test al, al
jne 0x477789
mov ecx, edi
call fcn.0040a0b0
test al, al
je 0x477789
push edi
mov ecx, esi
call fcn.00476f00
mov eax, 9
jmp case.0x477502.8
mov eax, 1
jmp case.0x477502.8
mov ecx, edi
call fcn.00404850
cmp eax, 1
jne 0x477b7d
cmp dword [ebp - 0x20], 0
je 0x477acf
cmp dword [ebp - 0x24], 0
je 0x477acf
mov ecx, edi
call fcn.0042a250
add dword [esi + 0xcc], eax
mov ecx, edi
call fcn.0042a410
add dword [esi + 0xd0], eax
mov eax, dword [ebp - 0x10]
test al, 0x10
je 0x47793e
push edi
mov ecx, esi
call fcn.00476190
test eax, eax
jne 0x4777f8
push edi
mov ecx, esi
call fcn.00475c70
test eax, eax
je 0x47793b
cmp dword [ebp - 0x14], 0x1f4
jae 0x4785fa
mov ecx, dword [esi + 0x54]
call fcn.00476bc0
test eax, eax
je 0x4778bd
xor eax, eax
mov dword [esi + 0xc8], 0xffffffff
cmp dword [esi + 0xcc], eax
mov dword [esi + 0xd0], 0
setge al
mov dword [esi + 0xcc], 0
lea eax, [eax*2 - 1]
mov dword [esi + 0xc4], eax
lea eax, [ebp - 0x30]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x30]
mov edi, dword [esi + 0x54]
push eax
call fcn.00404e50
mov ecx, dword [ebp + 8]
push eax
call fcn.00404df0
push eax
mov ecx, edi
call fcn.00476c80
mov eax, dword [ebp - 0x38]
xor ecx, ecx
cmp dword [ebp - 0x18], ecx
mov dword [esi + 0xe8], 1
cmove eax, ecx
mov ecx, edi
mov dword [ebp - 0x30], eax
mov eax, dword [edi]
push 1
call dword [eax + 0x84]
mov ecx, dword [esi + 0x54]
push 3
push 1
call fcn.0047a640
mov ecx, dword [esi + 0x54]
lea eax, [ebp - 0x30]
push 1
push dword [ebp + 8]
push eax
call fcn.00479d40
mov eax, 6
jmp 0x477918
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0
lea eax, [ebp + 0xc]
mov dword [ebp - 4], 1
push eax
lea ecx, [ebp - 0x44]
mov dword [ebp + 0xc], 0x5b
call fcn.0047ac90
lea eax, [ebp + 0xc]
mov dword [ebp + 0xc], 9
push eax
lea ecx, [ebp - 0x44]
call fcn.0047ac90
mov ecx, dword [esi + 0x54]
lea eax, [ebp - 0x44]
push eax
call fcn.00479c90
lea ecx, [ebp - 0x44]
call fcn.00446850
mov eax, 0xb
mov dword [esi + 0xe4], 0
mov dword [esi + 0xf0], 0
mov dword [esi + 0xf4], 0
jmp case.0x477502.8
mov eax, dword [ebp - 0x10]
test al, 0x40
je 0x477a2b
mov ecx, edi
call fcn.0042a250
cdq
xor eax, edx
sub eax, edx
cmp eax, 0xa
jge 0x477a28
mov ecx, edi
call fcn.0042a410
cdq
xor eax, edx
sub eax, edx
cmp eax, 0xa
jge 0x477a28
mov eax, dword [esi + 0x54]
mov ecx, dword [eax + 0xc]
lea ecx, [ecx + 0xbf4]
call fcn.0040c2e0
mov ecx, dword [ebp + 8]
mov edi, eax
call fcn.0040c2e0
sub eax, edi
cmp eax, 0x64
jbe 0x4785fa
mov ecx, dword [esi + 0x54]
test ecx, ecx
je 0x477a00
cmp dword [ecx + 0x2bc], 0
je 0x4779e7
cmp dword [ebp - 0x18], 0
push 0
jne 0x4779b2
push 0
jmp 0x4779b7
push 0xffff
call fcn.00476cc0
mov eax, dword [esi + 0x50]
test eax, eax
je 0x4779e7
mov ecx, dword [eax + 0x34]
test ecx, ecx
jne 0x4779d1
lea ecx, [eax + 0x40]
test ecx, ecx
je 0x4779e7
mov ecx, dword [eax + 0x34]
test ecx, ecx
jne 0x4779db
lea ecx, [eax + 0x40]
mov eax, dword [ecx]
push 0
push 0x32
push 0
push ecx
call dword [eax + 0x28]
mov ecx, dword [esi + 0x54]
push 1
mov eax, dword [ecx]
call dword [eax + 0x84]
mov ecx, dword [esi + 0x54]
push 3
push 1
call fcn.0047a640
mov dword [esi + 0xc0], 0
mov eax, 2
mov dword [esi + 0xd0], 0
mov dword [esi + 0xcc], 0
jmp case.0x477502.8
mov eax, dword [ebp - 0x10]
test al, 0x20
je 0x477a90
mov ecx, edi
call fcn.0042a250
cdq
xor eax, edx
sub eax, edx
cmp eax, 0xa
jge 0x477a8d
mov ecx, edi
call fcn.0042a410
cmp eax, 0xfffffff6
jge 0x477a8d
mov ecx, dword [esi + 0x54]
push 1
mov eax, dword [ecx]
call dword [eax + 0x84]
mov ecx, dword [esi + 0x54]
push 3
push 1
call fcn.0047a640
mov dword [esi + 0xd0], 0
mov eax, 2
mov dword [esi + 0xcc], 0
mov dword [esi + 0xc0], 0
jmp case.0x477502.8
mov eax, dword [ebp - 0x10]
test al, al
jns 0x4785fa
mov ecx, dword [esi + 0x50]
lea ecx, [ecx + 0xba4]
call fcn.0040a0b0
test al, al
jne 0x4785fa
mov ecx, edi
call fcn.0040a0b0
test al, al
je 0x4785fa
push edi
mov ecx, esi
call fcn.00476f00
mov eax, 9
jmp case.0x477502.8
push dword [ebp + 0xc]
mov ecx, esi
push edi
call fcn.00476910
test eax, eax
je 0x4785fa
cmp dword [ebp - 0x14], 0x1f4
jae 0x4785fa
cmp dword [esi + 0x54], 0
je 0x477b4b
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0
lea eax, [ebp + 0xc]
mov dword [ebp - 4], 2
push eax
lea ecx, [ebp - 0x44]
mov dword [ebp + 0xc], 0x5b
call fcn.0047ac90
lea eax, [ebp + 0xc]
mov dword [ebp + 0xc], 0x5a
push eax
lea ecx, [ebp - 0x44]
call fcn.0047ac90
mov ecx, dword [esi + 0x54]
lea eax, [ebp - 0x44]
push eax
call fcn.00479c90
lea ecx, [ebp - 0x44]
call fcn.00446850
mov dword [esi + 0xc4], 0xffffffff
mov eax, 0xb
mov dword [esi + 0xc8], 1
mov dword [esi + 0xd0], 0
mov dword [esi + 0xcc], 0
jmp case.0x477502.8
cmp dword [ebp - 0x1c], 0
je 0x4785fa
push fcn.0040ac20
push 0x40ab30
push 4
push 8
lea eax, [ebp - 0x68]
mov dword [ebp + 8], 0
push eax
call fcn.004a608d
mov ecx, edi
mov dword [ebp - 4], 3
call fcn.00404850
push eax
lea eax, [ebp - 0x68]
mov ecx, esi
push eax
push edi
call fcn.00475730
test eax, eax
je 0x477c2b
lea eax, [ebp - 0x68]
mov ecx, esi
push eax
call fcn.00476580
mov ecx, edi
mov dword [ebp + 8], eax
mov dword [ebp + 0xc], 0
call fcn.00404850
test eax, eax
jle 0x477c2b
lea ecx, [esi + 0x90]
xor edx, edx
mov esi, ecx
mov edi, edi
mov ecx, dword [esi]
test ecx, ecx
jne 0x477bf9
lea ecx, [esi + 4]
lea eax, [edx*8]
mov edx, dword [ebp + eax - 0x68]
test edx, edx
jne 0x477c0d
lea edx, [ebp - 0x64]
add edx, eax
mov eax, dword [ecx]
push edx
push ecx
call dword [eax + 0x18]
inc dword [ebp + 0xc]
mov ecx, edi
add esi, 8
call fcn.00404850
mov edx, dword [ebp + 0xc]
cmp edx, eax
jl 0x477bf0
mov esi, dword [ebp - 0x2c]
mov ecx, dword [esi + 0x54]
call fcn.00476bc0
test eax, eax
je 0x477ce1
cmp dword [ebp + 8], 0
je 0x477ce1
push edi
lea eax, [ebp - 0x38]
mov ecx, esi
push eax
call fcn.00475310
push dword [ebp - 0x34]
lea eax, [ebp - 0x38]
mov ecx, esi
push dword [ebp - 0x38]
push eax
call fcn.00475650
mov eax, dword [ebp - 0x38]
xor ecx, ecx
mov dword [esi + 0xbc], ecx
mov dword [ebp - 0x34], ecx
mov ecx, dword [esi + 0x54]
mov dword [esi + 0xb8], eax
mov dword [esi + 0xe8], 1
push 1
mov eax, dword [ecx]
call dword [eax + 0x84]
mov ecx, dword [esi + 0x54]
push 3
push 1
call fcn.0047a640
mov ecx, dword [esi + 0x54]
lea eax, [ebp - 0x38]
push 1
push edi
push eax
call fcn.00479d40
mov dword [esi + 0xf0], 0
mov dword [esi + 0xc4], 0xffffffff
mov dword [esi + 0xc8], 0xffffffff
mov dword [esi + 0xd0], 0
mov dword [esi + 0xcc], 0
mov dword [ebp + 0x18], 6
push fcn.0040ac20
push 4
push 8
lea eax, [ebp - 0x68]
mov dword [ebp - 4], 0xffffffff
push eax
call fcn.004a60ef
jmp 0x4785fa
mov ecx, edi
call fcn.00404850
mov ecx, edi
cmp eax, 1
jne 0x477e5e
call fcn.0042a250
add dword [esi + 0xcc], eax
mov ecx, edi
call fcn.0042a410
add dword [esi + 0xd0], eax
mov ecx, dword [ebp - 0x10]
test cl, 0x40
je 0x477d83
mov ecx, edi
call fcn.0042a250
cdq
xor eax, edx
sub eax, edx
cmp eax, 0xa
jge 0x477d80
mov ecx, edi
call fcn.0042a410
cdq
xor eax, edx
sub eax, edx
cmp eax, 0xa
jge 0x477d80
mov eax, dword [esi + 0x54]
mov ecx, dword [eax + 0xc]
lea ecx, [ecx + 0xbf4]
call fcn.0040c2e0
mov ecx, dword [ebp + 8]
mov edi, eax
call fcn.0040c2e0
sub eax, edi
cmp eax, 0x190
jbe 0x4785fa
push dword [ebp + 8]
jmp 0x477dbe
mov ecx, dword [ebp - 0x10]
test cl, 0x20
je 0x477de3
mov eax, dword [esi + 0xcc]
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x32
jge 0x477de3
mov eax, dword [esi + 0xd0]
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x64
jle 0x477de3
mov eax, dword [esi + 0x50]
test eax, eax
je 0x477dc5
mov ecx, dword [eax + 0x34]
test ecx, ecx
jne 0x477dbd
lea ecx, [eax + 0x40]
test ecx, ecx
je 0x477dc5
push edi
mov ecx, esi
call fcn.00476f00
mov dword [esi + 0xd0], 0
mov eax, 3
mov dword [esi + 0xcc], 0
jmp case.0x477502.8
test cl, 0x10
je 0x477e1f
push edi
mov ecx, esi
call fcn.00476190
test eax, eax
je 0x477e1c
mov dword [esi + 0xec], 1
mov eax, 4
mov dword [esi + 0xd0], 0
mov dword [esi + 0xcc], 0
jmp case.0x477502.8
mov ecx, dword [ebp - 0x10]
test cl, cl
jns 0x4785fa
mov ecx, dword [esi + 0x50]
lea ecx, [ecx + 0xba4]
call fcn.0040a0b0
test al, al
jne 0x4785fa
mov ecx, edi
call fcn.0040a0b0
test al, al
je 0x4785fa
push edi
mov ecx, esi
call fcn.00476f00
mov eax, 9
jmp case.0x477502.8
call fcn.00404850
jmp 0x4785fa
mov ecx, edi
call fcn.00404850
mov ecx, edi
cmp eax, 1
jne 0x477e5e
call fcn.0042a250
add dword [esi + 0xcc], eax
mov ecx, edi
call fcn.0042a410
add eax, dword [esi + 0xd0]
mov dword [esi + 0xd0], eax
cdq
xor eax, edx
sub eax, edx
cmp eax, 0xc8
jle 0x477f0f
mov eax, dword [esi + 0x50]
test eax, eax
je 0x477ef1
mov ecx, dword [eax + 0x34]
test ecx, ecx
jne 0x477eb5
lea ecx, [eax + 0x40]
test ecx, ecx
je 0x477ef1
cmp dword [esi + 0x54], 0
je 0x477ef1
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov ecx, dword [esi + 0x54]
push eax
call fcn.00475200
test eax, eax
je 0x477ef1
xor ecx, ecx
cmp dword [esi + 0xd0], ecx
setle cl
lea ecx, [ecx*2 - 1]
push ecx
push edi
mov dword [esi + 0xc8], ecx
mov ecx, dword [esi + 0x54]
push eax
call fcn.0047a380
mov dword [esi + 0xf0], 1
mov dword [esi + 0xd0], 0
mov dword [esi + 0xcc], 0
mov eax, dword [esi + 0xcc]
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x64
jle 0x477f7a
mov eax, dword [esi + 0x50]
test eax, eax
je 0x477f5c
mov ecx, dword [eax + 0x34]
test ecx, ecx
jne 0x477f34
lea ecx, [eax + 0x40]
test ecx, ecx
je 0x477f5c
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov ecx, dword [esi + 0x54]
xorps xmm0, xmm0
push eax
movdqu xmmword [ebp - 0x58], xmm0
call fcn.00475200
test eax, eax
je 0x477f5c
lea ecx, [ebp - 0x58]
push ecx
mov ecx, dword [esi + 0x54]
push eax
call fcn.00475110
mov eax, 4
mov dword [esi + 0xd0], 0
mov dword [esi + 0xcc], 0
mov dword [ebp + 0x18], eax
jmp 0x477f7d
mov eax, dword [ebp + 0x18]
cmp dword [esi + 0xf4], 0
je case.0x477502.8
mov ecx, dword [esi + 0x50]
lea ecx, [ecx + 0xba4]
call fcn.0040a0b0
test al, al
je 0x4785fa
mov ecx, edi
call fcn.0040a0b0
test al, al
jne 0x4785fa
mov ecx, esi
call fcn.00476be0
mov eax, dword [ebp - 0x10]
not al
movzx eax, al
shr eax, 7
or eax, 0xa
jmp case.0x477502.8
mov ecx, edi
call fcn.00404850
mov ecx, edi
cmp eax, 1
jne 0x477e5e
lea eax, [ebp - 0x30]
push eax
call fcn.00404e50
push eax
mov ecx, edi
call fcn.00404df0
mov ecx, dword [esi + 0x54]
push eax
call fcn.00476c80
mov ecx, edi
call fcn.0042a250
cdq
xor eax, edx
sub eax, edx
cmp eax, 0xa
jge 0x47805c
mov ecx, dword [ebp + 0xc]
call fcn.0042a250
cdq
xor eax, edx
sub eax, edx
cmp eax, 0xa
jge 0x47805c
mov ecx, edi
call fcn.0042a410
cdq
xor eax, edx
sub eax, edx
cmp eax, 0xa
jle 0x47805c
mov ecx, dword [ebp + 0xc]
call fcn.0042a410
cdq
xor eax, edx
sub eax, edx
cmp eax, 0xa
jle 0x47805c
mov eax, 3
mov dword [esi + 0xd0], 0
mov dword [esi + 0xcc], 0
mov dword [ebp + 0x18], eax
jmp 0x477f7d
mov ecx, edi
call fcn.0042a250
cdq
xor eax, edx
sub eax, edx
cmp eax, 0xa
jle 0x4780c3
mov ecx, dword [ebp + 0xc]
call fcn.0042a250
cdq
xor eax, edx
sub eax, edx
cmp eax, 0xa
jle 0x4780c3
mov ecx, edi
call fcn.0042a410
cdq
xor eax, edx
sub eax, edx
cmp eax, 0xa
jge 0x4780c3
mov ecx, dword [ebp + 0xc]
call fcn.0042a410
cdq
xor eax, edx
sub eax, edx
cmp eax, 0xa
jge 0x4780c3
mov eax, 5
mov dword [esi + 0xd0], 0
mov dword [esi + 0xcc], 0
mov dword [ebp + 0x18], eax
jmp 0x477f7d
mov ecx, dword [ebp - 0x30]
cmp ecx, 0x64
jle 0x4780d1
cmp dword [ebp - 0x18], 0
je 0x4780ee
mov eax, dword [ebp - 0x38]
sub eax, ecx
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x64
jle 0x477f7a
cmp dword [ebp - 0x18], 0
je 0x477f7a
mov eax, 5
mov dword [esi + 0xd0], 0
mov dword [esi + 0xcc], 0
mov dword [ebp + 0x18], eax
jmp 0x477f7d
mov ecx, edi
call fcn.00404850
mov ecx, edi
cmp eax, 1
jne 0x477e5e
call fcn.0042a250
add dword [esi + 0xcc], eax
mov ecx, edi
call fcn.0042a410
mov ecx, eax
mov eax, dword [esi + 0xcc]
add ecx, dword [esi + 0xd0]
cdq
xor eax, edx
mov dword [esi + 0xd0], ecx
sub eax, edx
cmp eax, 0x32
jle 0x4785fa
mov eax, ecx
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x32
jge 0x4785fa
mov eax, dword [esi + 0x50]
test eax, eax
je 0x4785fa
mov ecx, dword [eax + 0x34]
test ecx, ecx
jne 0x478182
lea ecx, [eax + 0x40]
test ecx, ecx
je 0x4785fa
lea eax, [ebp - 0x30]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
cmp dword [esi + 0xec], 0
je 0x4781c7
lea eax, [ebp - 0x30]
mov ecx, edi
push eax
call fcn.00404e50
push eax
mov ecx, edi
call fcn.00404df0
mov ecx, dword [esi + 0x54]
push eax
call fcn.00476c80
mov eax, dword [ebp - 0x38]
xor ecx, ecx
cmp dword [ebp - 0x18], ecx
mov dword [esi + 0xec], ecx
cmove eax, ecx
mov dword [ebp - 0x30], eax
jmp 0x478207
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov ecx, dword [esi + 0x54]
xorps xmm0, xmm0
push eax
movdqu xmmword [ebp - 0x48], xmm0
call fcn.00475200
lea ecx, [ebp - 0x48]
push ecx
mov ecx, dword [esi + 0x54]
push eax
call fcn.00475110
mov eax, dword [ebp - 0x40]
add eax, dword [ebp - 0x48]
cdq
sub eax, edx
sar eax, 1
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x3c]
add eax, dword [ebp - 0x44]
cdq
sub eax, edx
sar eax, 1
mov dword [ebp - 0x2c], eax
mov ecx, dword [esi + 0x54]
call fcn.00476bc0
test eax, eax
je 0x47824e
mov ecx, dword [esi + 0x54]
mov dword [esi + 0xe8], 1
push 1
mov eax, dword [ecx]
call dword [eax + 0x84]
mov ecx, dword [esi + 0x54]
push 3
push 1
call fcn.0047a640
mov ecx, dword [esi + 0x54]
lea eax, [ebp - 0x30]
push 1
push edi
push eax
call fcn.00479d40
mov dword [ebp + 0x18], 6
jmp 0x478298
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0
lea eax, [ebp + 0xc]
mov dword [ebp - 4], 4
push eax
lea ecx, [ebp - 0x44]
mov dword [ebp + 0xc], 0xd
call fcn.0047ac90
mov ecx, dword [esi + 0x54]
lea eax, [ebp - 0x44]
push eax
call fcn.00479c90
lea ecx, [ebp - 0x44]
mov dword [ebp + 0x18], 0xb
call fcn.00446850
xor eax, eax
mov dword [esi + 0xe4], 0
cmp dword [esi + 0xcc], eax
mov dword [esi + 0xf0], 0
setge al
mov dword [esi + 0xf4], 0
mov dword [esi + 0xc8], 0xffffffff
mov dword [esi + 0xd0], 0
mov dword [esi + 0xcc], 0
lea eax, [eax*2 - 1]
mov dword [esi + 0xc4], eax
jmp 0x4785fa
mov ecx, edi
call fcn.00404850
cmp eax, 1
jne 0x478543
mov eax, dword [ebp - 0x38]
xor ecx, ecx
cmp dword [ebp - 0x18], ecx
push ecx
cmove eax, ecx
mov dword [ebp - 0x34], ecx
mov ecx, dword [esi + 0x54]
mov dword [ebp - 0x38], eax
lea eax, [ebp - 0x38]
push edi
push eax
call fcn.00479d40
mov ecx, edi
call fcn.0042a250
add dword [esi + 0xcc], eax
mov ecx, edi
call fcn.0042a410
add dword [esi + 0xd0], eax
mov eax, dword [esi + 0xc8]
cmp eax, 0xffffffff
jne 0x47837d
mov ecx, edi
call fcn.0042a250
cdq
xor eax, edx
sub eax, edx
cmp eax, 0xa
jge 0x4783cc
mov ecx, dword [ebp + 0xc]
call fcn.0042a250
cdq
xor eax, edx
sub eax, edx
cmp eax, 0xa
jge 0x4783cc
cmp dword [esi + 0xd0], 0xffffffce
jge 0x4783cc
mov dword [esi + 0xc8], 1
jmp 0x4783b8
cmp eax, 1
jne 0x4783cc
mov ecx, edi
call fcn.0042a250
cdq
xor eax, edx
sub eax, edx
cmp eax, 0xa
jge 0x4783cc
mov ecx, dword [ebp + 0xc]
call fcn.0042a250
cdq
xor eax, edx
sub eax, edx
cmp eax, 0xa
jge 0x4783cc
cmp dword [esi + 0xd0], 0x32
jle 0x4783cc
mov dword [esi + 0xc8], 0xffffffff
mov dword [esi + 0xcc], 0
mov dword [esi + 0xd0], 0
lea eax, [ebp - 0x38]
mov ecx, edi
push eax
call fcn.00404e50
push eax
mov ecx, edi
call fcn.00404df0
mov ecx, dword [esi + 0x54]
push eax
call fcn.00476c80
cmp dword [esi + 0xe8], 0
je 0x4784ce
mov ecx, dword [esi + 0xe4]
mov eax, dword [ebp - 0x38]
test ecx, ecx
jne 0x47841e
cmp eax, 0x64
jle 0x478416
mov dword [esi + 0xe4], 1
jmp 0x4784ce
test ecx, ecx
je 0x4784ce
cmp eax, 0x64
jg 0x4784ce
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0
lea eax, [ebp + 0xc]
mov dword [ebp - 4], 5
push eax
lea ecx, [ebp - 0x44]
mov dword [esi + 0xec], 0
mov dword [esi + 0xe8], 0
mov dword [esi + 0xe4], 0
mov dword [esi + 0xf4], 0
mov dword [ebp + 0xc], 0x1b
call fcn.0047ac90
mov ecx, dword [esi + 0x54]
lea eax, [ebp - 0x44]
push eax
call fcn.00479c90
mov ecx, dword [esi + 0x54]
call fcn.0047a620
mov ecx, dword [esi + 0x54]
call fcn.00479430
lea ecx, [ebp - 0x44]
mov dword [esi + 0xc0], 0
mov dword [esi + 0xd0], 0
mov dword [esi + 0xcc], 0
mov dword [ebp + 0x18], 7
mov dword [ebp - 4], 0xffffffff
call fcn.00446850
cmp dword [esi + 0xf4], 0
jne 0x477f8a
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov ecx, dword [esi + 0x54]
push eax
call fcn.00475200
test eax, eax
jne 0x4785fa
test byte [ebp - 0x10], 0x80
je 0x4785fa
mov ecx, dword [esi + 0x50]
lea ecx, [ecx + 0xba4]
call fcn.0040a0b0
test al, al
jne 0x4785fa
mov ecx, edi
call fcn.0040a0b0
test al, al
je 0x4785fa
mov ecx, dword [esi + 0x54]
call fcn.0047a620
mov ecx, dword [esi + 0x54]
call fcn.00479430
push edi
mov ecx, esi
call fcn.00476f00
mov eax, 9
jmp case.0x477502.8
mov ecx, edi
call fcn.00404850
cmp eax, 3
jne 0x4785fa
push edi
lea eax, [ebp - 0x30]
mov ecx, esi
push eax
call fcn.00475310
mov eax, dword [esi + 0xb8]
mov ecx, dword [esi + 0x54]
mov dword [ebp - 0x38], eax
mov eax, dword [esi + 0xbc]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x2c]
push 8
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x38]
push edi
push eax
call fcn.00479d40
jmp 0x4785fa
mov ecx, edi
call fcn.00404850
cmp eax, 1
jne 0x4785fa
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov ecx, dword [esi + 0x54]
push eax
call fcn.00475200
test eax, eax
je 0x477a00
mov ecx, dword [esi + 0x54]
call fcn.00479430
jmp 0x4785fa
mov ecx, dword [esi + 0x50]
lea ecx, [ecx + 0xba4]
call fcn.0040a0b0
test al, al
je 0x4785fa
mov ecx, edi
call fcn.0040a0b0
test al, al
jne 0x4785fa
mov eax, 3
jmp case.0x477502.8
mov ecx, dword [esi + 0x50]
lea ecx, [ecx + 0xba4]
call fcn.0040a0b0
test al, al
jne 0x4785fa
mov ecx, edi
call fcn.0040a0b0
test al, al
jne 0x478529
mov eax, dword [ebp + 0x18]
cmp dword [esi + 0x58], eax
je 0x47861f
pop edi
mov dword [esi + 0x58], eax
pop esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 0x18
push edi
mov ecx, esi
call fcn.00479960
pop edi
mov ecx, dword [ebp - 0xc]
pop esi
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 0x18