Function at 0x10e7a63
Capabilities:
Log keystrokes via polling

Disassembly:
mov eax, 0x127ce1d
call fcn.01160458
sub esp, 0x178
push ebx
push esi
push edi
mov edi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 0x20
pop eax
push 0x1b
mov ebx, ecx
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x20], eax
call edi
neg ax
sbb eax, eax
neg eax
setne al
test al, al
je 0x10e7aac
and dword [ebx + 0xfc], 0
and dword [ebx + 0x100], 0
jmp 0x10e7dc6
push 0x25
call edi
push 0x27
call edi
push 0x26
call edi
push 0x28
call edi
push 0x12
call edi
push 0x10
call edi
xor ecx, ecx
cmp dword [ebx + 0xf4], 2
lea edi, [ebx + 0x84]
mov eax, dword [edi]
sete cl
push ecx
push edi
call dword [eax + 0x34]
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x4c], eax
jne 0x10e7af6
mov eax, dword [edi]
push edi
call dword [eax + 0x30]
test eax, eax
jne 0x10e7af6
xor esi, esi
inc esi
jmp 0x10e7af8
xor esi, esi
and dword [ebp - 0x48], 0
test esi, esi
je 0x10e7dc6
xor eax, eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 4], eax
mov eax, dword [edi]
lea ecx, [ebp - 0x40]
push ecx
push edi
call dword [eax + 0x10]
test eax, eax
jne 0x10e7b46
mov eax, dword [ebp - 0x40]
test eax, eax
je 0x10e7b46
mov ecx, dword [eax]
lea edx, [ebp - 0x24]
push edx
push eax
call dword [ecx + 0x30]
test eax, eax
jne 0x10e7b46
cmp dword [ebp - 0x24], eax
jne 0x10e7b3b
xor esi, esi
jmp 0x10e7b46
xor eax, eax
inc eax
cmp dword [ebp - 0x24], eax
jle 0x10e7b46
mov dword [ebp - 0x48], eax
or dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x40]
test eax, eax
je 0x10e7b57
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
test esi, esi
je 0x10e7dc6
cmp dword [ebp - 0x48], 0
jne 0x10e7dc6
and dword [ebp - 0x14], 0
xor esi, esi
inc esi
mov dword [ebp - 4], esi
and dword [ebp - 0x1c], 0
mov byte [ebp - 4], 2
mov eax, dword [ebx + 0xa0]
lea edx, [ebp - 0x1c]
add eax, 0x24
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0xc]
mov edi, eax
test edi, edi
jge 0x10e7bbd
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x10e7ba5
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
or dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x10e7bb6
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, edi
jmp 0x10e7dc8
mov ecx, dword [ebp - 0x1c]
test ecx, ecx
jne 0x10e7be3
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x10e7bd5
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
or dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x14]
test eax, eax
jmp 0x10e8182
mov eax, dword [ebx + 0xb8]
test eax, eax
je 0x10e7bfb
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.0103db49
xor edi, edi
jmp 0x10e7c29
mov eax, dword [ecx]
lea edx, [ebp - 0x14]
push edx
mov edx, dword [ebx + 0xf8]
fld qword [edx + 8]
push ecx
push ecx
fstp qword [esp]
push ecx
call dword [eax + 0x8c]
xor edi, edi
test eax, eax
jne 0x10e7da4
cmp dword [ebp - 0x14], edi
je 0x10e7da4
cmp dword [ebp - 0x14], edi
jne 0x10e7c4d
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x1c]
cmp eax, edi
je 0x10e7c3f
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
or dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x14]
cmp eax, edi
jmp 0x10e8182
cmp dword [ebx + 0xa0], edi
je 0x10e7c2e
push dword [ebp - 0x14]
lea ecx, [ebp - 0x2c]
mov byte [ebp - 0x31], 0
mov byte [ebp - 0xd], 0
mov byte [ebp - 0xe], 0
call fcn.0106307f
mov byte [ebp - 4], 3
push dword [ebp - 0x14]
lea ecx, [ebp - 0x38]
call fcn.01086d86
mov byte [ebp - 4], 4
push dword [ebp - 0x14]
lea ecx, [ebp - 0x30]
call fcn.010537fb
mov byte [ebp - 4], 5
cmp dword [ebp - 0x30], edi
je 0x10e7dfb
cmp dword [ebp - 0x2c], edi
jne 0x10e7e00
mov dword [ebp - 0x28], edi
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
lea edx, [ebp - 0x28]
push edx
push eax
call dword [ecx + 0x6c]
cmp eax, edi
mov dword [ebp - 0x54], eax
jge 0x10e7cd5
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x28]
cmp eax, edi
je 0x10e84e1
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x10e84e1
cmp dword [ebp - 0x28], edi
jne 0x10e7d27
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x28]
cmp eax, edi
je 0x10e7ceb
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x30]
cmp eax, edi
je 0x10e7cfc
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x38]
cmp eax, edi
je 0x10e7d0d
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x2c]
cmp eax, edi
je 0x10e7c2e
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x10e7c2e
push dword [ebp - 0x28]
lea ecx, [ebp - 0x24]
call fcn.0103d6f3
mov byte [ebp - 4], 7
cmp dword [ebp - 0x24], edi
je 0x10e7dd9
cmp dword [ebx + 0xf4], edi
mov byte [ebp - 0xe], 1
je 0x10e7dd9
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x24]
cmp eax, edi
je 0x10e7d60
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x28]
cmp eax, edi
je 0x10e7d71
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x30]
cmp eax, edi
je 0x10e7d82
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x38]
cmp eax, edi
je 0x10e7d93
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x2c]
cmp eax, edi
je 0x10e7da4
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x1c]
cmp eax, edi
je 0x10e7db5
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
or dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x14]
cmp eax, edi
je 0x10e7dc6
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
xor eax, eax
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret 0x10
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x24]
cmp eax, edi
je 0x10e7dea
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x28]
cmp eax, edi
je 0x10e7dfb
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
cmp dword [ebp - 0x2c], edi
je 0x10e7e17
mov eax, dword [ebx + 0xf4]
cmp eax, edi
mov byte [ebp - 0xd], 1
je 0x10e7e17
cmp eax, 4
jne 0x10e7d71
cmp dword [ebp - 0x38], edi
je 0x10e7e2c
cmp dword [ebx + 0xf4], esi
mov byte [ebp - 0x31], 1
jne 0x10e7d71
cmp byte [ebp - 0xe], 0
jne 0x10e7e40
mov dword [ebx + 0x100], edi
mov dword [ebx + 0xfc], esi
jmp 0x10e7e4c
mov dword [ebx + 0x100], esi
mov dword [ebx + 0xfc], edi
mov dword [ebp - 0xc0], edi
xor eax, eax
lea edi, [ebp - 0xbc]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
lea eax, [ebp - 0xc0]
push eax
push dword [ebp - 0x14]
mov ecx, ebx
call fcn.010de5de
mov eax, dword [ebp - 0xb8]
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0xc0]
lea ecx, [ebx + 0x80]
mov dword [ebp - 0x48], eax
mov eax, dword [ecx]
call dword [eax]
mov dword [ebp - 0x3c], eax
lea eax, [ebp - 0xb0]
push eax
push dword [ebx + 8]
call dword [sym.imp.USER32.dll_GetClientRect]
mov edx, dword [ebp - 0xa4]
mov ecx, dword [ebp - 0xac]
mov eax, edx
sub eax, ecx
cmp eax, 0x20
jge 0x10e7ebc
dec eax
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x20], eax
mov esi, dword [ebp - 0xb0]
mov eax, dword [ebp - 0xc0]
cmp esi, eax
mov dword [ebp - 0x68], esi
jg 0x10e7ed2
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0xb8]
mov dword [ebp - 0x64], ecx
mov ecx, dword [ebp - 0xa8]
cmp ecx, eax
mov dword [ebp - 0x60], ecx
jl 0x10e7eeb
mov dword [ebp - 0x60], eax
mov ecx, dword [ebp - 0x68]
xor eax, eax
cmp dword [ebp - 0x60], ecx
mov dword [ebp - 0x5c], edx
setg al
test eax, eax
jne 0x10e7f4f
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x30]
test eax, eax
je 0x10e7f0e
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x38]
test eax, eax
je 0x10e7f1f
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x10e7f30
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x10e7f41
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
or dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x14]
test eax, eax
jmp 0x10e80fd
mov edi, dword [sym.imp.USER32.dll_MapWindowPoints]
push 2
lea eax, [ebp - 0x68]
push eax
push 0
push dword [ebx + 8]
call edi
mov esi, dword [sym.imp.USER32.dll_GetParent]
lea eax, [ebp - 0x118]
push eax
push dword [ebx + 8]
call esi
push eax
call dword [sym.imp.USER32.dll_GetClientRect]
push 2
lea eax, [ebp - 0x118]
push eax
push 0
push dword [ebx + 8]
call esi
push eax
call edi
mov eax, dword [ebp - 0x114]
cmp dword [ebp - 0x64], eax
jg 0x10e7f9c
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x10c]
cmp dword [ebp - 0x5c], eax
jl 0x10e7faa
mov dword [ebp - 0x5c], eax
mov ecx, dword [ebp - 0x58]
lea esi, [ebp - 0x68]
lea edi, [ebp - 0x80]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, ecx
cdq
sub eax, edx
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x44], eax
sar dword [ebp - 0x44], 1
cmp dword [ebx + 0x100], 0
mov eax, dword [ebp - 0x60]
movsd dword es:[edi], dword [esi]
mov esi, dword [ebp - 0x20]
jne 0x10e7fd4
mov eax, dword [ebp - 0x68]
sub eax, dword [ebp - 0x44]
mov dword [ebp - 0x80], eax
add eax, ecx
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x5c]
sub eax, dword [ebp - 0x64]
cdq
sub eax, edx
mov ecx, eax
mov eax, esi
cdq
sar ecx, 1
sub eax, edx
sar eax, 1
sub ecx, eax
add ecx, dword [ebp - 0x64]
mov dword [ebp - 0x7c], ecx
add ecx, esi
mov dword [ebp - 0x74], ecx
lea ecx, [ebp - 0x108]
call fcn.010e26da
mov byte [ebp - 4], 8
push 0x80020
lea eax, [ebp - 0xb0]
push eax
lea eax, [ebp - 0x68]
push eax
push dword [ebx + 8]
lea ecx, [ebp - 0x108]
call fcn.010e61f1
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x4c], eax
jne 0x10e804c
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x108]
call fcn.010e271d
jmp 0x10e7efd
xor esi, esi
cmp dword [ebp - 0xe8], esi
je 0x10e8126
lea ecx, [ebp - 0x174]
call fcn.010e26da
mov byte [ebp - 4], 9
push 0x80008
lea eax, [ebp - 0xb0]
push eax
lea eax, [ebp - 0x80]
push eax
push dword [ebx + 8]
lea ecx, [ebp - 0x174]
call fcn.010e61f1
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x4c], eax
jne 0x10e810f
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x174]
call fcn.010e271d
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x108]
call fcn.010e271d
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x30]
cmp eax, esi
je 0x10e80c1
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x38]
cmp eax, esi
je 0x10e80d2
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x2c]
cmp eax, esi
je 0x10e80e3
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x1c]
cmp eax, esi
je 0x10e80f4
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
or dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x14]
cmp eax, esi
je 0x10e8105
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, 0x80004005
jmp 0x10e7dc8
cmp dword [ebp - 0x154], esi
jne 0x10e8194
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x174]
call fcn.010e271d
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x108]
call fcn.010e271d
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x30]
cmp eax, esi
je 0x10e8146
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x38]
cmp eax, esi
je 0x10e8157
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x2c]
cmp eax, esi
je 0x10e8168
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x1c]
cmp eax, esi
je 0x10e8179
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
or dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x14]
cmp eax, esi
je 0x10e818a
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, 0x80004003
jmp 0x10e7dc8
mov eax, dword [ebx + 0xf4]
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x24], esi
cmp eax, esi
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
mov edi, 0x438
jne 0x10e81b5
cmp byte [ebp - 0xd], 0
je 0x10e81ba
cmp eax, 4
jne 0x10e8200
push dword [ebp - 0x14]
lea ecx, [ebp - 0x88]
call fcn.010562c1
mov byte [ebp - 4], 0xa
cmp dword [ebp - 0x88], 0
je 0x10e81ea
push dword [ebx + 8]
call dword [sym.imp.USER32.dll_GetParent]
push dword [ebp - 0x14]
push 2
push edi
push eax
call esi
mov dword [ebp - 0x20], eax
mov byte [ebp - 4], 9
mov eax, dword [ebp - 0x88]
test eax, eax
je 0x10e821a
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x10e821a
cmp eax, 2
jne 0x10e821a
push dword [ebx + 8]
call dword [sym.imp.USER32.dll_GetParent]
push dword [ebp - 0x14]
push 0
push edi
push eax
call esi
mov dword [ebp - 0x20], eax
mov esi, dword [ebp - 0xe8]
mov dword [ebp - 0x12c], esi
mov byte [ebp - 4], 0xb
and dword [ebp - 0x28], 0
mov byte [ebp - 4], 0xc
push 0x800000
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
push eax
mov dword [ebp - 0x28], eax
lea eax, [ebp - 0xb0]
push eax
push esi
call dword [sym.imp.USER32.dll_FillRect]
lea ecx, [ebp - 0x108]
call fcn.010de8c1
sub esp, 0x10
mov edi, esp
push dword [ebp - 0x154]
lea esi, [ebp - 0x80]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov ecx, ebx
movsd dword es:[edi], dword [esi]
call fcn.010e03bb
lea ecx, [ebp - 0x174]
call fcn.010de8c1
push dword [ebx + 8]
call dword [sym.imp.USER32.dll_SetFocus]
push 1
push 0xfa
call dword [sym.imp.KERNEL32.dll_SleepEx]
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 0x1b
call esi
and al, 1
push 0x12
mov byte [ebp - 0x15], al
call esi
push 0x10
shr eax, 0xf
and al, 1
mov byte [ebp - 0xd], al
call esi
shr eax, 0xf
and al, 1
cmp byte [ebp - 0x15], 0
jne 0x10e83d2
cmp byte [ebp - 0xd], 0
je 0x10e83d2
test al, al
je 0x10e83d2
push 0x25
call esi
and al, 1
push 0x27
mov byte [ebp - 0x15], al
call esi
and al, 1
push 0x26
mov byte [ebp - 0xd], al
call esi
and al, 1
push 0x28
mov byte [ebp - 0x4d], al
call esi
push 1
and al, 1
push 0xfa
mov byte [ebp - 0x32], al
call dword [sym.imp.KERNEL32.dll_SleepEx]
cmp byte [ebp - 0x15], 0
jne 0x10e848e
cmp byte [ebp - 0xd], 0
jne 0x10e848e
cmp byte [ebp - 0x4d], 0
jne 0x10e8329
cmp byte [ebp - 0x32], 0
je 0x10e83aa
cmp byte [ebp - 0xe], 0
jne 0x10e83aa
cmp byte [ebp - 0x31], 0
jne 0x10e83aa
xor eax, eax
cmp dword [ebx + 0xfc], eax
sete al
xor ecx, ecx
cmp dword [ebx + 0x100], ecx
sete cl
mov dword [ebx + 0xfc], eax
test eax, eax
mov eax, dword [ebp - 0x68]
mov dword [ebx + 0x100], ecx
mov ecx, dword [ebp - 0x58]
jne 0x10e8364
mov eax, dword [ebp - 0x60]
sub eax, dword [ebp - 0x44]
sub esp, 0x10
mov dword [ebp - 0x80], eax
add eax, ecx
mov dword [ebp - 0x78], eax
mov edi, esp
push dword [ebp - 0x154]
lea esi, [ebp - 0x80]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov ecx, ebx
movsd dword es:[edi], dword [esi]
call fcn.010e03bb
lea ecx, [ebp - 0x174]
call fcn.010de8c1
push 1
lea eax, [ebp - 0x80]
push eax
lea ecx, [ebp - 0x170]
call fcn.0103c6d7
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 0x1b
call esi
and al, 1
push 0x12
mov byte [ebp - 0x15], al
call esi
push 0x10
shr eax, 0xf
and al, 1
mov byte [ebp - 0xd], al
call esi
shr eax, 0xf
and al, 1
cmp byte [ebp - 0x15], 0
je 0x10e82c2
xor esi, esi
lea ecx, [ebp - 0x108]
mov dword [ebx + 0xfc], esi
mov dword [ebx + 0x100], esi
call fcn.010de8ea
lea ecx, [ebp - 0x174]
call fcn.010de8ea
cmp dword [ebp - 0x20], esi
je 0x10e840d
mov ecx, dword [ebp - 0x20]
call fcn.010de8ea
mov ecx, dword [ebp - 0x20]
push 1
call fcn.010e2775
mov byte [ebp - 4], 0xb
cmp dword [ebp - 0x28], esi
je 0x10e841e
lea ecx, [ebp - 0x28]
call fcn.0103d890
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x174]
call fcn.010e271d
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x108]
call fcn.010e271d
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x30]
cmp eax, esi
je 0x10e844d
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x38]
cmp eax, esi
je 0x10e845e
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x2c]
cmp eax, esi
je 0x10e846f
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x1c]
cmp eax, esi
je 0x10e8480
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
or dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x14]
cmp eax, esi
jmp 0x10e7dbe
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
lea edx, [ebp - 0x120]
push edx
lea edx, [ebp - 0x128]
push edx
push eax
call dword [ecx + 0x58]
xor edi, edi
cmp eax, edi
mov dword [ebp - 0x54], eax
jge 0x10e853e
mov byte [ebp - 4], 0xb
cmp dword [ebp - 0x28], edi
je 0x10e84c3
lea ecx, [ebp - 0x28]
call fcn.0103d890
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x174]
call fcn.010e271d
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x108]
call fcn.010e271d
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x30]
cmp eax, edi
je 0x10e84f2
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x38]
cmp eax, edi
je 0x10e8503
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x2c]
cmp eax, edi
je 0x10e8514
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x1c]
cmp eax, edi
je 0x10e8525
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
or dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x14]
cmp eax, edi
je 0x10e8536
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x54]
jmp 0x10e7dc8
fld qword [0x10054b0]
mov byte [ebp - 0xe], 1
fstp qword [ebp - 0x70]
push 0x1b
call esi
neg ax
sbb eax, eax
neg eax
cmp eax, edi
setne al
test al, al
jne 0x10e8913
push 0x12
call esi
push 0x10
shr eax, 0xf
and al, 1
mov byte [ebp - 0x32], al
call esi
shr eax, 0xf
and al, 1
cmp byte [ebp - 0x32], 0
je 0x10e891f
test al, al
je 0x10e891f
push 1
push 0xfa
call dword [sym.imp.KERNEL32.dll_SleepEx]
cmp byte [ebp - 0x15], 0
jne 0x10e85a7
cmp byte [ebp - 0xd], 0
je 0x10e88f6
lea eax, [ebp - 0x70]
push eax
movzx eax, byte [ebp - 0x15]
push eax
push dword [ebx + 0xfc]
mov ecx, ebx
push dword [ebp - 0x14]
call fcn.010df632
cmp eax, 1
jne 0x10e85ca
mov byte [ebp - 0xd], al
jmp 0x10e8633
fld qword [ebp - 0x128]
sub esp, 0x10
fstp qword [esp + 8]
mov byte [ebp - 0xd], 0
fld qword [ebp - 0x70]
fstp qword [esp]
call fcn.010865ed
test al, al
je 0x10e8633
fld qword [ebp - 0x70]
sub esp, 0x10
fstp qword [esp + 8]
fld qword [ebp - 0x120]
fstp qword [esp]
call fcn.010865ed
test al, al
je 0x10e8633
sub esp, 0x10
fldz
fstp qword [esp + 8]
fld qword [ebp - 0x70]
fstp qword [esp]
call fcn.010865ed
test al, al
je 0x10e8633
movzx eax, byte [ebp - 0xe]
fld qword [ebp - 0x70]
push edi
push ecx
push ecx
mov ecx, ebx
fstp qword [esp]
push eax
call fcn.010de74b
mov eax, dword [ebp - 0x3c]
lea ecx, [ebx + 0x80]
mov dword [ebp - 0x40], eax
mov eax, dword [ecx]
call dword [eax]
cmp byte [ebp - 0xe], 0
mov dword [ebp - 0x3c], eax
je 0x10e866e
lea eax, [ebp - 0xc0]
push eax
push dword [ebp - 0x14]
mov ecx, ebx
call fcn.010de5de
cmp dword [ebp - 0x3c], edi
je 0x10e866e
mov eax, dword [ebp - 0x40]
sub eax, dword [ebp - 0x3c]
add dword [ebp - 0xd4], eax
cmp dword [ebx + 0xfc], edi
jne 0x10e8682
cmp dword [ebx + 0x100], edi
je 0x10e88f6
cmp byte [ebp - 0xd], 0
jne 0x10e88f6
mov ecx, dword [ebx + 0xf8]
fld qword [ebp - 0x70]
xor eax, eax
push ecx
lea edi, [ebp - 0x178]
stosd dword es:[edi], eax
mov eax, dword [ecx]
push ecx
fstp qword [esp]
call dword [eax + 0x2c]
mov edi, eax
mov eax, dword [ebp - 0x178]
sub edi, dword [ebp - 0x3c]
push 1
mov dword [ebp - 0x9c], eax
lea eax, [ebp - 0xa0]
push eax
push 0
push dword [ebx + 8]
mov dword [ebp - 0xa0], edi
call dword [sym.imp.USER32.dll_MapWindowPoints]
lea eax, [ebp - 0x98]
push eax
push dword [ebx + 8]
call dword [sym.imp.USER32.dll_GetClientRect]
push 2
lea eax, [ebp - 0x98]
push eax
push 0
push dword [ebx + 8]
call dword [sym.imp.USER32.dll_MapWindowPoints]
mov eax, dword [ebp - 0x114]
cmp dword [ebp - 0x94], eax
jg 0x10e870b
mov dword [ebp - 0x94], eax
mov eax, dword [ebp - 0x8c]
cmp eax, dword [ebp - 0x10c]
jl 0x10e8725
mov eax, dword [ebp - 0x10c]
mov dword [ebp - 0x8c], eax
mov ecx, dword [ebp - 0x94]
sub eax, ecx
mov dword [ebp - 0xc8], eax
mov eax, dword [ebp - 0x20]
test eax, eax
mov dword [ebp - 0xd0], ecx
je 0x10e87d1
and dword [ebp - 0x20], 0
mov dword [ebp - 0x24], eax
mov eax, dword [ebx + 0xf4]
test eax, eax
jne 0x10e87a6
push dword [ebx + 0xbc]
lea ecx, [ebp - 0x54]
call fcn.010562c1
mov byte [ebp - 4], 0xd
cmp dword [ebp - 0x54], 0
je 0x10e8793
mov eax, dword [ebx + 0xbc]
push dword [ebx + 8]
mov dword [ebp - 0x20], eax
call dword [sym.imp.USER32.dll_GetParent]
push dword [ebp - 0x20]
push 2
push 0x438
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
mov dword [ebp - 0x20], eax
mov byte [ebp - 4], 0xc
mov eax, dword [ebp - 0x54]
test eax, eax
je 0x10e87d1
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x10e87d1
cmp eax, 2
jne 0x10e87d1
mov eax, dword [ebx + 0xbc]
push dword [ebx + 8]
mov dword [ebp - 0x20], eax
call dword [sym.imp.USER32.dll_GetParent]
push dword [ebp - 0x20]
push 0
push 0x438
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
mov dword [ebp - 0x20], eax
cmp dword [ebx + 0xfc], 0
mov ecx, dword [ebp - 0xa0]
je 0x10e8820
cmp byte [ebp - 0xe], 0
mov dword [ebp - 0xd4], ecx
je 0x10e8810
mov eax, dword [ebp - 0x40]
sub eax, dword [ebp - 0x3c]
add dword [ebp - 0x84], eax
cmp dword [ebp - 0x3c], 0
je 0x10e880c
mov eax, ecx
sub eax, dword [ebp - 0x40]
add eax, dword [ebp - 0x3c]
mov dword [ebp - 0xd4], eax
mov byte [ebp - 0xe], 0
mov eax, dword [ebp - 0x84]
sub eax, edi
mov dword [ebp - 0xcc], eax
jmp 0x10e8873
mov edx, dword [ebp - 0x48]
mov eax, edi
sub eax, edx
cmp byte [ebp - 0xe], 0
mov dword [ebp - 0xcc], eax
je 0x10e8873
mov ecx, dword [ebp - 0x40]
sub ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x4c], edx
add dword [ebp - 0x48], ecx
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x3c]
sub edx, ecx
add eax, edx
cmp dword [ebp - 0x3c], 0
mov dword [ebp - 0xcc], eax
jne 0x10e885d
add dword [ebp - 0xd4], ecx
jmp 0x10e8869
cmp dword [ebp - 0x4c], 0
jge 0x10e8869
sub dword [ebp - 0xd4], ecx
mov ecx, dword [ebp - 0xa0]
mov byte [ebp - 0xe], 0
sub ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x58]
mov dword [ebp - 0x80], ecx
add ecx, edx
cmp edi, dword [ebp - 0x3c]
mov dword [ebp - 0x78], ecx
jge 0x10e889e
mov ecx, edi
sub ecx, dword [ebp - 0x3c]
add eax, ecx
mov dword [ebp - 0xcc], eax
mov eax, dword [ebp - 0x3c]
sub eax, edi
add dword [ebp - 0xd4], eax
lea ecx, [ebp - 0x108]
call fcn.010de8c1
mov ecx, dword [ebp - 0x20]
test ecx, ecx
je 0x10e88c7
mov eax, dword [ebp - 0xcc]
mov dword [ecx + 0x3c], eax
mov eax, dword [ebp - 0xd4]
mov dword [ecx + 0x34], eax
call fcn.010de8c1
cmp dword [ebp - 0x24], 0
je 0x10e88e3
mov ecx, dword [ebp - 0x24]
call fcn.010de8ea
mov ecx, dword [ebp - 0x24]
push 1
call fcn.010e2775
and dword [ebp - 0x24], 0
push 1
lea eax, [ebp - 0x80]
push eax
lea ecx, [ebp - 0x170]
call fcn.0103c6d7
xor edi, edi
push 0x25
call esi
test ax, 0x8001
push 0x27
setne byte [ebp - 0x15]
call esi
test ax, 0x8001
setne byte [ebp - 0xd]
jmp 0x10e854b
mov dword [ebx + 0xfc], edi
mov dword [ebx + 0x100], edi
lea ecx, [ebp - 0x108]
call fcn.010de8ea
lea ecx, [ebp - 0x174]
call fcn.010de8ea
cmp dword [ebp - 0x20], edi
je 0x10e894c
mov ecx, dword [ebp - 0x20]
call fcn.010de8ea
mov ecx, dword [ebp - 0x20]
push 1
call fcn.010e2775
push edi
push 0x2c4
push 0x111
push dword [ebx + 8]
mov dword [ebp - 0x24], edi
call dword [sym.imp.USER32.dll_GetParent]
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
test eax, eax
je 0x10e8bb5
cmp byte [ebp - 0x31], 0
jne 0x10e89b0
mov ecx, dword [ebx + 0xa0]
fld qword [ebp - 0x70]
mov eax, dword [ebx + 0xfc]
cmp eax, edi
push ecx
push ecx
je 0x10e89a4
fsub qword [ebp - 0x128]
fstp qword [esp]
push eax
push dword [ebp - 0x14]
call fcn.010db704
mov dword [ebp - 0x24], eax
jmp 0x10e89f9
fsub qword [ebp - 0x120]
fstp qword [esp]
push edi
jmp 0x10e8997
mov dword [ebp - 0x4c], edi
mov byte [ebp - 4], 0xe
push dword [ebp - 0x14]
lea ecx, [ebp - 0x48]
call fcn.01086d86
mov byte [ebp - 4], 0xf
cmp dword [ebp - 0x48], edi
je 0x10e89e4
mov ecx, dword [ebx + 0xa0]
fld qword [ebp - 0x70]
push ecx
push ecx
fstp qword [esp]
push dword [ebp - 0x48]
call fcn.010d7eaf
mov dword [ebp - 0x24], eax
mov byte [ebp - 4], 0xe
mov eax, dword [ebp - 0x48]
cmp eax, edi
je 0x10e89f5
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0xc
mov eax, dword [ebx + 0xbc]
lea ecx, [ebp - 0x184]
push ecx
push eax
mov ecx, ebx
call fcn.010de5de
cmp dword [ebp - 0x24], edi
jne 0x10e8b2b
cmp dword [ebx + 0x100], edi
je 0x10e8a42
mov ecx, dword [ebx + 0xf8]
mov eax, dword [ecx]
push 1
call dword [eax + 0x20]
fdivr qword [0x1003510]
push ecx
push ecx
mov ecx, ebx
fsubr qword [ebp - 0x70]
fstp qword [esp]
push edi
call fcn.010de74b
mov dword [ebp - 0x40], edi
mov byte [ebp - 4], 0x10
lea edx, [ebp - 0x40]
lea eax, [ebx + 0x84]
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x10]
cmp eax, edi
mov dword [ebp - 0x4c], eax
jge 0x10e8b01
mov byte [ebp - 4], 0xc
mov eax, dword [ebp - 0x40]
cmp eax, edi
je 0x10e8a75
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0xb
cmp dword [ebp - 0x28], edi
je 0x10e8a86
lea ecx, [ebp - 0x28]
call fcn.0103d890
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x174]
call fcn.010e271d
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x108]
call fcn.010e271d
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x30]
cmp eax, edi
je 0x10e8ab5
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x38]
cmp eax, edi
je 0x10e8ac6
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x2c]
cmp eax, edi
je 0x10e8ad7
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x1c]
cmp eax, edi
je 0x10e8ae8
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
or dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x14]
cmp eax, edi
je 0x10e8af9
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x4c]
jmp 0x10e7dc8
push dword [ebx + 8]
call dword [sym.imp.USER32.dll_GetParent]
push edi
push dword [ebp - 0x40]
push 0x443
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
mov byte [ebp - 4], 0xc
mov eax, dword [ebp - 0x40]
cmp eax, edi
je 0x10e8b2b
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
lea eax, [ebp - 0x80]
push eax
push dword [ebx + 8]
mov dword [ebx + 0x10c], 1
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [ebx + 0xb8]
lea ecx, [ebp - 0x98]
push ecx
push eax
mov ecx, ebx
call fcn.010de5de
mov eax, dword [ebp - 0x78]
cmp dword [ebp - 0x90], eax
jg 0x10e8b68
mov dword [ebp - 0x90], eax
push 1
lea eax, [ebp - 0x98]
push eax
push dword [ebx + 8]
call dword [sym.imp.USER32.dll_InvalidateRect]
cmp dword [ebp - 0x24], edi
jne 0x10e8b9a
push edi
push 0x2bc
push 0x111
push dword [ebx + 8]
call dword [sym.imp.USER32.dll_GetParent]
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
push edi
push 0x2bd
push 0x111
push dword [ebx + 8]
call dword [sym.imp.USER32.dll_GetParent]
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
push 0x25
mov dword [ebx + 0xfc], edi
mov dword [ebx + 0x100], edi
call esi
push 0x27
call esi
push 0x26
call esi
push 0x28
call esi
mov byte [ebp - 4], 0xb
cmp dword [ebp - 0x28], edi
je 0x10e8be2
lea ecx, [ebp - 0x28]
call fcn.0103d890
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x174]
call fcn.010e271d
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x108]
call fcn.010e271d
jmp 0x10e7d71