Function at 0x14001e0c0
Capabilities:
Check for foreground window switch
Check for time delay via gettickcount
Get keyboard layout
Log keystrokes
Log keystrokes via polling

Disassembly:
mov qword [rsp + 0x20], r9
mov dword [rsp + 0x18], r8d
mov dword [rsp + 0x10], edx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x118
lea rbp, [rsp + 0x60]
cmp word [rcx], 0
mov r12, r9
mov r14d, r8d
mov r15d, edx
mov rsi, rcx
je 0x14001fa2d
mov r13, qword [0x14015bc10]
mov eax, dword [0x1401648c0]
mov edi, dword gs:[0x48]
mov qword [rbp + 0x58], r13
mov dword [rbp + 0x48], eax
mov dword [rbp + 0x18], edi
test edx, edx
jne 0x14001e140
lea r8d, [rdx + 7]
lea rdx, str.Blind
call fcn.1400f7630
test eax, eax
jne 0x14001e140
mov byte [0x140164c30], 1
add rsi, 0xe
jmp 0x14001e14c
mov byte [0x140164c30], 0
test r15d, r15d
jne 0x14001e176
mov r8d, 6
lea rdx, [0x1401375d0]
mov rcx, rsi
call fcn.1400f7630
test eax, eax
jne 0x14001e176
mov r15d, 2
add rsi, 0xc
mov dword [rbp + 0x108], r15d
mov eax, dword [r13 + 0x7c]
mov dword [rbp + 0x4c], eax
mov eax, dword [r13 + 0x84]
mov dword [rbp + 0x50], eax
lea eax, [r14 - 1]
test eax, 0xfffffffd
jne 0x14001e264
mov rcx, qword [0x140164b20]
test rcx, rcx
je 0x14001e1a8
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea r8, str.AHK_Keybd
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateMutexW]
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp qword [0x140164b20], 0
mov edi, eax
je 0x14001e1d7
mov qword [0x140164b20], rbx
jmp 0x14001e1e5
test rbx, rbx
je 0x14001e1e5
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
cmp edi, 0xb7
je 0x14001e21e
test r15d, r15d
jne 0x14001e20f
call fcn.140016820
test al, al
je 0x14001e20f
lea rdx, str.Click
mov rcx, rsi
call fcn.1400d0d80
test rax, rax
jne 0x14001e21e
mov r14d, 1
mov dword [rbp + 0x110], r14d
jmp 0x14001e261
cmp r14d, 3
jne 0x14001e233
mov r14d, 2
mov dword [rbp + 0x110], r14d
jmp 0x14001e261
xor eax, eax
mov r14d, eax
mov dword [rbp + 0x110], eax
cmp dword [r13 + 0x7c], eax
jge 0x14001e252
cmp dword [r13 + 0x84], eax
jge 0x14001e252
mov eax, 0xffffffff
mov dword [r13 + 0x84], eax
mov dword [r13 + 0x7c], 0xffffffff
mov edi, dword [rbp + 0x18]
xor r13d, r13d
mov byte [rbp + 9], 0
mov ebx, r13d
test r12, r12
je 0x14001e2c9
xor edx, edx
mov rcx, r12
call qword [sym.imp.USER32.dll_GetWindowThreadProcessId]
mov dword [rbp + 0x30], eax
mov r14d, eax
test eax, eax
je 0x14001e385
cmp eax, dword [0x140163c90]
je 0x14001e385
mov rcx, r12
call fcn.1400d86f0
test al, al
jne 0x14001e385
mov ecx, dword [0x140163c90]
lea r8d, [r13 + 1]
mov edx, r14d
call qword [sym.imp.USER32.dll_AttachThreadInput]
test eax, eax
mov ebx, r14d
setne byte [rbp + 9]
jmp 0x14001e385
test byte [0x14016486e], 0xc0
je 0x14001e36c
call qword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [0x140164864]
cmp eax, 0x32
jae 0x14001e36c
cmp r14d, 2
je 0x14001e36c
cmp byte [0x140164c30], bl
jne 0x14001e36c
cmp r15d, 2
je 0x14001e36c
cmp byte [0x140164ae3], bl
je 0x14001e36c
cmp edi, dword [0x140163c90]
jne 0x14001e36c
test r15d, r15d
je 0x14001e424
mov r8, rsi
test rsi, rsi
je 0x14001e360
movzx edx, word [rsi]
test dx, dx
je 0x14001e360
mov r9d, 0x4c
nop
lea rcx, [0x140137ad8]
movzx eax, r9w
nop dword [rax + rax]
cmp dx, ax
je 0x14001e363
movzx eax, word [rcx + 2]
add rcx, 2
test ax, ax
jne 0x14001e340
movzx edx, word [r8 + 2]
add r8, 2
test dx, dx
jne 0x14001e330
mov r8, r13
test r8, r8
jne 0x14001e4b0
call qword [sym.imp.USER32.dll_GetForegroundWindow]
mov rdx, rax
call fcn.140023b20
mov ebx, eax
mov eax, dword [rbp + 0x100]
mov dword [rbp + 0x30], eax
mov ecx, ebx
call qword [sym.imp.USER32.dll_GetKeyboardLayout]
lea r9, [0x140164b70]
mov qword [0x140164b68], rax
mov rdx, r9
mov ecx, r13d
mov rdi, rax
mov r8, qword [rdx]
test r8, r8
je 0x14001e3c0
cmp r8, rdi
je 0x14001e4fa
inc ecx
add rdx, 0x10
cmp ecx, 0xa
jl 0x14001e3a4
cmp ecx, 0xa
mov eax, 9
cmovl eax, ecx
mov rcx, rdi
movsxd rbx, eax
shl rbx, 4
add rbx, r9
call fcn.140023b90
mov dword [rbx + 8], eax
mov qword [rbx], rdi
mov cl, 1
mov dword [0x140164c10], eax
call fcn.1400235b0
and byte [0x140164b67], al
movzx ebx, al
cmp qword [0x140160790], r13
je 0x14001e50a
movzx eax, byte [0x1401616d2]
movzx ecx, byte [0x1401616d0]
movzx r13d, al
and r13b, cl
not al
and al, cl
jmp 0x14001e531
mov r9d, 0x4c
mov rdx, rsi
lea r10d, [r9 + 0x2f]
test rdx, rdx
je 0x14001e36c
movzx r8d, word [rdx]
test r8w, r8w
je 0x14001e36c
lea rcx, [0x140137ad8]
movzx eax, r9w
cmp r8w, ax
je 0x14001e46c
movzx eax, word [rcx + 2]
add rcx, 2
test ax, ax
jne 0x14001e453
add rdx, 2
jmp 0x14001e43a
add rdx, 2
je 0x14001e4b0
movzx r8d, word [rdx]
test r8w, r8w
je 0x14001e4b0
lea rcx, [0x140137ae0]
movzx eax, r10w
cmp r8w, ax
je 0x14001e4a0
movzx eax, word [rcx + 2]
add rcx, 2
test ax, ax
jne 0x14001e487
add rdx, 2
jmp 0x14001e472
cmp word [rdx], r10w
jne 0x14001e431
nop word [rax + rax]
mov ecx, 0x5b
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
bt ax, 0xf
jb 0x14001e4d8
mov ecx, 0x5c
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
bt ax, 0xf
jae 0x14001e36c
mov edx, 1
mov dword [0x14015bc04], r13d
mov ecx, 0x8000012f
call fcn.140001a10
mov dword [0x14015bc04], 1
jmp 0x14001e4b0
movsxd rax, ecx
add rax, rax
mov eax, dword [r9 + rax*8 + 8]
jmp 0x14001e3e3
call qword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [0x140164864]
cmp eax, dword [0x14015d654]
jae 0x14001e529
movzx ecx, byte [0x14016486e]
and cl, bl
jmp 0x14001e52b
xor cl, cl
movzx r13d, cl
xor al, al
not r13b
mov byte [rbp + 5], cl
and r13b, byte [0x140164b66]
and r13b, bl
mov byte [rbp + 7], al
cmp byte [0x140164c30], 0
mov byte [rbp + 1], r13b
mov byte [0x140164b66], r13b
je 0x14001e56e
not r13b
mov byte [rbp + 1], bl
and r13b, bl
mov byte [rbp + 4], bl
mov byte [rbp + 6], r13b
movzx r13d, bl
jmp 0x14001e577
xor al, al
mov byte [rbp + 4], r13b
mov byte [rbp + 6], al
mov rax, qword [rbp + 0x58]
cmp byte [rax + 0x133], 0
je 0x14001e5a1
cmp byte [0x140164c30], 0
jne 0x14001e5a1
cmp r15d, 2
je 0x14001e5a1
mov edx, 2
mov cl, reloc.OLEAUT32.dll_SafeArrayLock
call fcn.140022bd0
jmp 0x14001e5a3
xor eax, eax
mov ecx, dword [rbp + 0x110]
mov r14d, 0x5dc
mov dword [rbp + 0x2c], eax
mov eax, 0x1f4
mov dword [0x140164c24], ecx
test ecx, ecx
je 0x14001e64e
cmp ecx, 1
mov edx, 0x2ee0
cmovne eax, r14d
mov dword [0x140164c18], eax
mov eax, 0x4e20
cmovne eax, edx
lea rcx, [rax + 0xf]
cmp rcx, rax
ja 0x14001e5f2
movabs rcx, 0xffffffffffffff0
and rcx, 0xfffffffffffffff0
mov rax, rcx
call fcn.1401119a0
mov rax, qword [0x14015e430]
sub rsp, rcx
mov byte [0x140164c20], bl
xor ebx, ebx
mov byte [0x140164c21], 0
mov dword [0x140164c14], ebx
lea rcx, [rsp + 0x60]
mov byte [0x140164c22], bl
mov qword [rax], rcx
mov ecx, dword [rbp + 0x110]
mov dword [0x140164c28], 0x80000000
mov dword [0x140164c2c], 0x80000000
mov byte [0x140164c23], 1
jmp 0x14001e650
xor ebx, ebx
mov eax, dword [reloc.WSOCK32.dll_inet_ntoa]
movzx r15d, byte [0x140160842]
add eax, 0xfffffff8
mov byte [rbp + 0x10], r15b
test eax, 0xfffffffd
jne 0x14001e68d
test ecx, ecx
jne 0x14001e68d
test r12, r12
jne 0x14001e68d
lea ecx, [r12 + 1]
mov byte [rbp + 0xa], 1
call qword [sym.imp.USER32.dll_BlockInput]
mov byte [0x140160842], 1
jmp 0x14001e691
mov byte [rbp + 0xa], 0
xor dil, dil
cmp word [rsi], 0
mov byte [rbp + 2], dil
je 0x14001f78a
lea r14, [0x140000000]
jmp 0x14001e6b2
xor ebx, ebx
cmp dword [0x140164c24], 0
mov byte [rbp], 0
jne 0x14001e71d
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov rcx, qword [0x14015bc10]
sub eax, dword [0x1401648c4]
cmp eax, dword [rcx + 0x118]
jbe 0x14001e71d
xor r9d, r9d
mov dword [rsp + 0x20], ebx
xor r8d, r8d
lea rcx, [rbp + 0x78]
xor edx, edx
call qword [sym.imp.USER32.dll_PeekMessageW]
test eax, eax
je 0x14001e711
mov edx, 1
mov dword [0x14015bc04], ebx
lea ecx, [rdx - 2]
call fcn.140001a10
mov dword [0x14015bc04], 1
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x1401648c4], eax
mov r15d, dword [rbp + 0x108]
test r15d, r15d
jne 0x14001f667
movzx edx, word [rsi]
lea rcx, [0x140137ae8]
call fcn.1400f0a4c
test rax, rax
je 0x14001f6cf
movzx eax, word [rsi]
add eax, 0xffffffdf
cmp eax, 0x5c
ja case.0x14001e76a.38
cdqe
movzx eax, byte [r14 + rax + 0x1fa60]
mov ecx, dword [r14 + rax*4 + 0x1fa44]
add rcx, r14
jmp rcx
test r13b, 3
jne case.0x14001e76a.38
movzx r12d, byte [rbp]
or dil, 1
jmp 0x14001f758
test r13b, 0x30
jne case.0x14001e76a.38
movzx r12d, byte [rbp]
or dil, 0x10
jmp 0x14001f758
test r13b, 0xc
jne case.0x14001e76a.38
movzx r12d, byte [rbp]
or dil, 4
jmp 0x14001f758
test r13b, 0xc0
jne case.0x14001e76a.38
movzx r12d, byte [rbp]
or dil, 0x40
jmp 0x14001f758
lea rbx, [rsi + 2]
mov r15d, 0x7d
mov edx, r15d
mov rcx, rbx
call fcn.1400f0a4c
mov qword [rbp + 0x38], rax
mov r14, rax
test rax, rax
je case.0x14001e76a.38
mov rsi, rbx
movzx ecx, word [rsi]
cmp cx, 0x20
je 0x14001e803
cmp cx, 9
jne 0x14001e809
add rsi, 2
jmp 0x14001e7f4
mov r12, rax
mov qword [rbp + 0x100], rsi
sub r12, rsi
sar r12, 1
jne 0x14001e8c0
lea rbx, [rax + 2]
movzx eax, word [rax + 2]
cmp ax, r15w
jne 0x14001e83f
mov r14, rbx
mov qword [rbp + 0x38], rbx
mov r12d, 1
jmp 0x14001e8c0
cmp ax, 0x20
je 0x14001e85c
cmp ax, 9
jne 0x14001edf7
nop
cmp ax, 0x20
je 0x14001e85c
cmp ax, 9
jne 0x14001e866
movzx eax, word [rbx + 2]
add rbx, 2
jmp 0x14001e850
mov r8d, 4
lea rdx, str.Down
mov rcx, rbx
call fcn.1400f7630
test eax, eax
je 0x14001e89c
mov r8d, 2
lea rdx, [0x1401364d8]
mov rcx, rbx
call fcn.1400f7630
test eax, eax
jne 0x14001edf7
mov edx, r15d
mov rcx, rbx
call fcn.1400f0a4c
mov qword [rbp + 0x38], rax
mov r14, rax
test rax, rax
je case.0x14001e76a.38
mov r12, rax
sub r12, rsi
sar r12, 1
mov r8d, 5
lea rdx, [0x140134760]
mov rcx, rsi
call fcn.1400f7630
test eax, eax
jne 0x14001e9bd
xor ebx, ebx
lea rcx, [rsi + 0xa]
mov word [r14], bx
movzx eax, word [rcx]
cmp ax, 0x20
je 0x14001e8f6
cmp ax, 9
jne 0x14001e8fc
add rcx, 2
jmp 0x14001e8e7
lea rax, [rbp + 8]
mov qword [rsp + 0x30], rax
lea r9, [rbp + 3]
lea rax, [rbp + 0x14]
mov qword [rsp + 0x28], rax
lea r8, [rbp + 0x20]
lea rax, [rbp + 0xc]
lea rdx, [rbp + 0x24]
mov qword [rsp + 0x20], rax
call fcn.140020a40
mov ecx, dword [rbp + 0x14]
mov word [r14], r15w
cmp ecx, 1
jge 0x14001e969
mov rax, qword [rbp + 0x58]
lea r8, [rbp + 0x60]
lea rdx, [rbp + 0x20]
lea rcx, [rbp + 0x24]
movzx r9d, byte [rax + 0x12f]
movzx eax, byte [rbp + 8]
mov byte [rsp + 0x20], al
call fcn.140021e50
mov rsi, qword [rbp + 0x38]
xor dil, dil
movzx r12d, bl
jmp 0x14001f758
movzx eax, byte [rbp + 8]
xor edx, edx
mov byte [rsp + 0x50], al
movzx r9d, r13b
mov eax, dword [rbp + 0x20]
movzx r8d, dil
mov dword [rsp + 0x48], eax
mov eax, dword [rbp + 0x24]
mov dword [rsp + 0x40], eax
mov rax, qword [rbp + 0x118]
mov qword [rsp + 0x38], rax
mov eax, dword [rbp + 0xc]
mov byte [rsp + 0x30], dl
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], ecx
movzx ecx, byte [rbp + 3]
call fcn.14001fac0
mov rsi, qword [rbp + 0x38]
xor dil, dil
movzx r12d, bl
jmp 0x14001f758
mov r8d, 3
lea rdx, [0x140137af8]
mov rcx, rsi
call fcn.1400f7630
test eax, eax
jne 0x14001e9f4
movzx r12d, byte [rbp]
mov r15d, 1
mov rsi, qword [rbp + 0x38]
xor dil, dil
mov dword [rbp + 0x108], r15d
jmp 0x14001f758
mov r8d, 4
lea rdx, str.Text
mov rcx, rsi
call fcn.1400f7630
test eax, eax
jne 0x14001ea4d
lea rcx, [rsi + 8]
movzx eax, word [rcx]
cmp ax, 0x20
je 0x14001ea20
cmp ax, 9
jne 0x14001ea26
add rcx, 2
jmp 0x14001ea11
movzx r12d, byte [rbp]
cmp rcx, r14
jne 0x14001edfc
mov rsi, qword [rbp + 0x38]
mov r15d, 2
mov dword [rbp + 0x108], r15d
xor dil, dil
jmp 0x14001f758
xor edi, edi
mov dword [rbp + 0xc], 2
mov word [r14], di
mov r15d, 1
movzx edx, word [rsi]
mov r13, r12
mov dword [rbp + 0x14], r15d
mov r14, rsi
test dx, dx
je 0x14001eab0
nop dword [rax]
nop word [rax + rax]
lea rcx, [0x1401373a0]
mov eax, SafeArrayAllocDescriptor
nop dword [rax]
cmp dx, ax
je 0x14001eae6
movzx eax, word [rcx + 2]
add rcx, 2
test ax, ax
jne 0x14001ea90
movzx edx, word [r14 + 2]
add r14, 2
test dx, dx
jne 0x14001ea80
mov r14, rdi
mov rax, qword [0x140164b68]
lea rdx, [rbp + 2]
mov r8b, 1
mov qword [rsp + 0x20], rax
mov rcx, rsi
call fcn.140024340
mov byte [rbp + 3], al
movzx edi, al
test al, al
je 0x14001ec21
xor ebx, ebx
movzx esi, bx
jmp 0x14001eca9
movzx eax, word [r14]
lea rbx, [r14 + 2]
mov r13, r14
mov word [rbp + 0x1c], ax
sub r13, rsi
mov word [r14], di
sar r13, 1
nop
movzx eax, word [rbx]
cmp ax, 0x20
je 0x14001eb0f
cmp ax, 9
jne 0x14001eb15
add rbx, 2
jmp 0x14001eb00
mov rax, qword [rbp + 0x38]
sub rax, rbx
sar rax, 1
test eax, eax
je 0x14001eab3
mov r8d, 4
lea rdx, str.Down
mov rcx, rbx
call fcn.1400f7630
test eax, eax
jne 0x14001eb7f
lea r8d, [rax + 4]
mov dword [rbp + 0xc], edi
lea rdx, str.Temp
lea rcx, [rbx + 8]
call fcn.1400f7630
test eax, eax
jne 0x14001eb5f
mov dword [rbp + 0x28], edi
jmp 0x14001eab3
cmp word [rbx + 8], 0x52
mov ecx, edi
sete cl
call fcn.140101d48
test eax, eax
mov ebx, edi
setne bl
inc ebx
mov dword [rbp + 0x28], ebx
jmp 0x14001eab3
lea rdx, [0x1401364d8]
mov rcx, rbx
call fcn.1400f55a0
test eax, eax
jne 0x14001eb9b
mov dword [rbp + 0xc], r15d
jmp 0x14001eab3
mov rcx, rbx
nop
movzx eax, word [rcx]
cmp ax, 0x20
je 0x14001ebaf
cmp ax, 9
jne 0x14001ebb5
add rcx, 2
jmp 0x14001eba0
test ax, ax
je 0x14001ec0e
cmp ax, 0x2d
je 0x14001ebc6
cmp ax, 0x2b
jne 0x14001ebd0
lea rax, [rcx + 2]
mov rcx, rax
movzx eax, word [rax]
cmp ax, 0x30
jne 0x14001ec0e
movzx eax, word [rcx + 2]
mov edx, 0xffdf
sub ax, 0x58
test dx, ax
jne 0x14001ec0e
movzx ecx, word [rcx + 4]
call fcn.1400f57c0
test eax, eax
je 0x14001ec0e
xor edx, edx
mov rcx, rbx
lea r8d, [rdx + 0x10]
call fcn.1400f7190
mov r15d, eax
mov dword [rbp + 0x14], eax
jmp 0x14001eab3
mov rcx, rbx
call fcn.1400f73ac
mov r15d, eax
mov dword [rbp + 0x14], eax
jmp 0x14001eab3
xor edx, edx
mov rcx, rsi
call fcn.140024220
movzx esi, ax
test ax, ax
jne 0x14001eca7
mov rbx, qword [rbp + 0x100]
lea rdx, [0x1401373fc]
mov rcx, rbx
mov r8d, 2
call fcn.1400f7630
test eax, eax
jne 0x14001eca7
lea rcx, [rbx + 4]
lea r8d, [rax + 0x10]
lea rdx, [rbp + 0x40]
call fcn.1400f7244
mov rcx, qword [rbp + 0x40]
lea rdx, [0x140137c68]
mov r8d, 2
mov ebx, eax
call fcn.1400f7630
test eax, eax
jne 0x14001eca7
mov rcx, qword [rbp + 0x40]
lea r8d, [rax + 0x10]
add rcx, 4
lea rdx, [rbp + 0x40]
call fcn.1400f7244
mov rcx, qword [rbp + 0x40]
cmp word [rcx], si
jne 0x14001eca7
movzx edi, bl
mov byte [rbp + 3], bl
movzx esi, ax
xor ebx, ebx
test r14, r14
je 0x14001ecb6
movzx eax, word [rbp + 0x1c]
mov word [r14], ax
mov rax, qword [rbp + 0x38]
mov ecx, 0x7d
mov word [rax], cx
cmp r15d, 1
jl 0x14001edf2
test dil, dil
jne 0x14001f4b9
test si, si
jne 0x14001f4b9
mov rsi, qword [rbp + 0x100]
movzx ecx, byte [rsi]
call fcn.1400f5710
test eax, eax
je 0x14001eff9
cmp r13, 1
jbe 0x14001effd
cmp dword [0x140164c24], 0
je 0x14001ee08
mov rcx, rsi
nop
movzx eax, word [rcx]
cmp ax, 0x20
je 0x14001ed1f
cmp ax, 9
jne 0x14001ed25
add rcx, 2
jmp 0x14001ed10
test ax, ax
je 0x14001ed75
cmp ax, 0x2d
je 0x14001ed36
cmp ax, 0x2b
jne 0x14001ed40
lea rax, [rcx + 2]
mov rcx, rax
movzx eax, word [rax]
cmp ax, 0x30
jne 0x14001ed75
movzx eax, word [rcx + 2]
mov edx, 0xffdf
sub ax, 0x58
test dx, ax
jne 0x14001ed75
movzx ecx, word [rcx + 4]
call fcn.1400f57c0
test eax, eax
je 0x14001ed75
xor edx, edx
mov rcx, rsi
lea r8d, [rdx + 0x10]
call fcn.1400f7190
jmp 0x14001ed7d
mov rcx, rsi
call fcn.1400f73ac
mov ebx, eax
mov eax, dword [0x140164c18]
cmp dword [0x140164c14], eax
jne 0x14001ed96
call fcn.140022500
test eax, eax
je 0x14001edf2
cmp dword [0x140164c24], 1
jne 0x14001edd3
mov eax, dword [0x140164c14]
lea rcx, [rax + rax*4]
mov rax, qword [0x1401617a8]
mov dword [rax + rcx*8], 1
lea rdx, [rax + rcx*8]
xor ecx, ecx
or byte [0x140164c21], 1
mov eax, ebx
mov qword [rdx + 8], rcx
mov qword [rdx + 0x18], rax
mov dword [rdx + 0x10], ecx
jmp 0x14001edec
mov rax, qword [0x14015e430]
mov edx, dword [0x140164c14]
mov rcx, qword [rax]
xor eax, eax
mov dword [rcx + rdx*8], eax
mov dword [rcx + rdx*8 + 4], ebx
inc dword [0x140164c14]
movzx r13d, byte [rbp + 1]
movzx r12d, byte [rbp]
mov rsi, qword [rbp + 0x38]
xor dil, dil
jmp 0x14001f758
mov eax, dword [rbp + 0x18]
cmp dword [0x140163c90], eax
mov dword [0x14015bc04], ebx
je 0x14001ef56
mov rcx, rsi
movzx eax, word [rcx]
cmp ax, 0x20
je 0x14001ee2f
cmp ax, 9
jne 0x14001ee35
add rcx, 2
jmp 0x14001ee20
test ax, ax
je 0x14001ee85
cmp ax, 0x2d
je 0x14001ee46
cmp ax, 0x2b
jne 0x14001ee50
lea rax, [rcx + 2]
mov rcx, rax
movzx eax, word [rax]
mov ebx, 0xffdf
cmp ax, 0x30
jne 0x14001ee8a
movzx eax, word [rcx + 2]
sub ax, 0x58
test bx, ax
jne 0x14001ee8a
movzx ecx, word [rcx + 4]
call fcn.1400f57c0
test eax, eax
je 0x14001ee8a
xor edx, edx
mov rcx, rsi
lea r8d, [rdx + 0x10]
call fcn.1400f7190
jmp 0x14001ee92
mov ebx, 0xffdf
mov rcx, rsi
call fcn.1400f73ac
test eax, eax
js 0x14001ef56
mov rcx, rsi
nop dword [rax]
movzx eax, word [rcx]
cmp ax, 0x20
je 0x14001eeaf
cmp ax, 9
jne 0x14001eeb5
add rcx, 2
jmp 0x14001eea0
test ax, ax
je 0x14001ef26
cmp ax, 0x2d
je 0x14001eec6
cmp ax, 0x2b
jne 0x14001eed0
lea rax, [rcx + 2]
mov rcx, rax
movzx eax, word [rax]
cmp ax, 0x30
jne 0x14001ef26
movzx eax, word [rcx + 2]
sub ax, 0x58
test bx, ax
jne 0x14001ef26
movzx ecx, word [rcx + 4]
call fcn.1400f57c0
test eax, eax
je 0x14001ef26
xor edx, edx
mov rcx, rsi
lea r8d, [rdx + 0x10]
call fcn.1400f7190
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_Sleep]
movzx r13d, byte [rbp + 1]
xor dil, dil
movzx r12d, byte [rbp]
mov rsi, qword [rbp + 0x38]
mov dword [0x14015bc04], 1
jmp 0x14001f758
mov rcx, rsi
call fcn.1400f73ac
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_Sleep]
movzx r13d, byte [rbp + 1]
xor dil, dil
movzx r12d, byte [rbp]
mov rsi, qword [rbp + 0x38]
mov dword [0x14015bc04], 1
jmp 0x14001f758
mov rcx, rsi
nop dword [rax]
movzx eax, word [rcx]
cmp ax, 0x20
je 0x14001ef6f
cmp ax, 9
jne 0x14001ef75
add rcx, 2
jmp 0x14001ef60
test ax, ax
je 0x14001efc5
cmp ax, 0x2d
je 0x14001ef86
cmp ax, 0x2b
jne 0x14001ef90
lea rax, [rcx + 2]
mov rcx, rax
movzx eax, word [rax]
cmp ax, 0x30
jne 0x14001efc5
movzx eax, word [rcx + 2]
mov edx, 0xffdf
sub ax, 0x58
test dx, ax
jne 0x14001efc5
movzx ecx, word [rcx + 4]
call fcn.1400f57c0
test eax, eax
je 0x14001efc5
xor edx, edx
mov rcx, rsi
lea r8d, [rdx + 0x10]
call fcn.1400f7190
jmp 0x14001efcd
mov rcx, rsi
call fcn.1400f73ac
mov edx, 1
mov ecx, eax
call fcn.140001a10
movzx r13d, byte [rbp + 1]
xor dil, dil
movzx r12d, byte [rbp]
mov rsi, qword [rbp + 0x38]
mov dword [0x14015bc04], 1
jmp 0x14001f758
cmp r13, 1
jne 0x14001f07b
cmp dword [rbp + 0xc], 1
je 0x14001edf2
mov r14, qword [rbp + 0x118]
test r14, r14
je 0x14001f052
test r15d, r15d
jle 0x14001edf2
mov ebx, r15d
movzx r8d, word [rsi]
xor r9d, r9d
mov edx, 0x102
mov rcx, r14
call qword [sym.imp.USER32.dll_PostMessageW]
sub rbx, 1
jne 0x14001f021
movzx r13d, byte [rbp + 1]
xor dil, dil
movzx r12d, byte [rbp]
mov rsi, qword [rbp + 0x38]
jmp 0x14001f758
movzx r8d, byte [rbp + 2]
mov edx, r15d
movzx r13d, byte [rbp + 1]
movzx ecx, word [rsi]
or r8b, r13b
call fcn.14001fd20
movzx r12d, byte [rbp]
xor dil, dil
mov rsi, qword [rbp + 0x38]
jmp 0x14001f758
mov r14, qword [rbp + 0x118]
lea r9, [rbp + 4]
test r14, r14
lea r8, [rbp + 0xc]
mov rdx, r12
mov rcx, rsi
sete al
mov byte [rsp + 0x20], al
call fcn.1400246a0
mov byte [rbp + 3], al
movzx edi, al
test al, al
je 0x14001f242
mov esi, dword [rbp + 0xc]
test r14, r14
jne 0x14001f147
test esi, esi
jne 0x14001f0c9
movzx r12d, al
mov byte [rbp], al
jmp 0x14001f14c
cmp dword [0x140164b60], 0
jne 0x14001f147
cmp byte [0x140164b65], dil
je 0x14001f147
cmp byte [0x140164c30], 0
jne 0x14001f147
movzx ecx, byte [0x140164b64]
lea eax, [rdi - 0x5b]
cmp al, 1
ja 0x14001f102
lea eax, [rcx - 0x5b]
cmp al, 1
ja 0x14001f102
cmp dword [0x140164c24], 2
jne 0x14001f11f
cmp dil, 0xa4
je 0x14001f117
cmp dil, 0xa5
jne 0x14001f147
cmp dword [0x140164c10], 3
je 0x14001f147
add cl, 0x5c
cmp cl, 1
ja 0x14001f147
movzx r8d, word [0x14015d658]
xor r9d, r9d
movzx edx, byte [reloc.OLEAUT32.dll_SafeArrayGetElemsize]
mov dword [rsp + 0x28], 0xffc3d44d
mov byte [rsp + 0x20], 0
lea ecx, [r9 + 2]
call fcn.140020230
movzx r12d, byte [rbp]
cmp dword [0x140164c24], 0
je 0x14001f15e
movzx eax, byte [0x140164c20]
jmp 0x14001f165
xor ecx, ecx
call fcn.1400235b0
movzx r13d, byte [rbp + 4]
xor r9d, r9d
movzx ecx, r13b
mov dword [rsp + 0x28], 0xffc3d44d
mov r8, r14
mov byte [rsp + 0x20], 0
movzx edx, al
mov byte [rbp + 1], r13b
call fcn.140022d20
test r15d, r15d
jle 0x14001edfc
mov ebx, r15d
xor r12d, r12d
nop dword [rax]
xor r8d, r8d
mov dword [rsp + 0x28], 0xffc3d44d
mov r9, r14
mov byte [rsp + 0x20], 1
movzx edx, dil
mov ecx, esi
call fcn.140020230
cmp dword [0x140164c24], r12d
jne 0x14001f227
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov rcx, qword [0x14015bc10]
sub eax, dword [0x1401648c4]
cmp eax, dword [rcx + 0x118]
jbe 0x14001f227
xor r9d, r9d
mov dword [rsp + 0x20], r12d
xor r8d, r8d
lea rcx, [rbp + 0x78]
xor edx, edx
call qword [sym.imp.USER32.dll_PeekMessageW]
test eax, eax
je 0x14001f21b
mov edx, 1
mov dword [0x14015bc04], r12d
lea ecx, [rdx - 2]
call fcn.140001a10
mov dword [0x14015bc04], 1
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x1401648c4], eax
sub rbx, 1
jne 0x14001f1a0
movzx r12d, byte [rbp]
xor dil, dil
mov rsi, qword [rbp + 0x38]
jmp 0x14001f758
cmp r12, 4
jbe 0x14001f2e3
mov r8d, 4
lea rdx, [0x140137b10]
mov rcx, rsi
call fcn.1400f7630
test eax, eax
jne 0x14001f2e9
test r14, r14
jne 0x14001f2e9
lea rcx, [rsi + 6]
movzx eax, word [rcx]
cmp ax, 0x20
je 0x14001f281
cmp ax, 9
jne 0x14001f287
add rcx, 2
jmp 0x14001f272
call fcn.14001ff00
cmp dword [0x140164c24], 2
mov rax, qword [0x14015bc10]
jne 0x14001f2c1
mov ecx, dword [rax + 0x80]
call fcn.140022830
movzx r13d, byte [rbp + 4]
xor dil, dil
movzx r12d, byte [rbp]
mov rsi, qword [rbp + 0x38]
mov byte [rbp + 1], r13b
jmp 0x14001f758
mov ecx, dword [rax + 0x7c]
call fcn.140022830
movzx r13d, byte [rbp + 4]
xor dil, dil
movzx r12d, byte [rbp]
mov rsi, qword [rbp + 0x38]
mov byte [rbp + 1], r13b
jmp 0x14001f758
cmp r12, 2
jbe 0x14001f2c9
mov r8d, 2
lea rdx, [0x140137b1c]
mov rcx, rsi
call fcn.1400f7630
test eax, eax
jne 0x14001f2c9
lea rcx, [rsi + 4]
xor edx, edx
lea r8d, [rax + 0x10]
call fcn.1400f7190
cmp eax, 0x10000
jb 0x14001f344
add eax, 0xffff0000
mov edx, 0x3ff
mov ecx, eax
movzx ebx, ax
shr ecx, 0xa
and bx, dx
and cx, dx
mov r8d, 0x2800
sub cx, r8w
mov edx, 0x2400
sub bx, dx
jmp 0x14001f347
movzx ecx, ax
movzx r13d, byte [rbp + 4]
mov byte [rbp + 1], r13b
test r14, r14
je 0x14001f38d
movzx r8d, cx
xor r9d, r9d
mov rcx, r14
mov edx, 0x102
call qword [sym.imp.USER32.dll_PostMessageW]
test bx, bx
je 0x14001f474
movzx r8d, bx
xor r9d, r9d
mov edx, 0x102
mov rcx, r14
call qword [sym.imp.USER32.dll_PostMessageW]
jmp 0x14001f474
cmp dword [0x140164c24], 2
je 0x14001f3c0
movzx edi, byte [rbp + 2]
or dil, r13b
movzx edx, dil
call fcn.14001de20
test bx, bx
je 0x14001f474
movzx edx, dil
movzx ecx, bx
call fcn.14001de20
jmp 0x14001f474
mov ecx, gethostbyname
lea rdx, [rbp + 0x6a]
mov word [rbp + 0x68], cx
lea r8d, [rcx - 0x26]
mov ecx, eax
call fcn.1400f5404
cmp dword [0x140164c24], 0
je 0x14001f3ea
movzx eax, byte [0x140164c20]
jmp 0x14001f3f1
xor ecx, ecx
call fcn.1400235b0
movzx ecx, al
mov dword [rsp + 0x28], 0xffc3d44f
and cl, 0xc4
mov byte [rsp + 0x20], 1
or cl, 4
xor r9d, r9d
xor r8d, r8d
movzx edx, al
call fcn.140022d20
movzx eax, word [rbp + 0x68]
lea rbx, [rbp + 0x68]
cmp ax, 0x30
jb 0x14001f456
cmp ax, 0x39
ja 0x14001f456
xor r8d, r8d
mov dword [rsp + 0x28], 0xffc3d44d
lea edx, [rax + 0x30]
mov byte [rsp + 0x20], r8b
xor r9d, r9d
lea ecx, [r8 + 2]
call fcn.140020230
movzx eax, word [rbx + 2]
add rbx, 2
cmp ax, 0x30
jae 0x14001f423
xor r8d, r8d
mov dword [rsp + 0x28], 0xffc3d44d
xor r9d, r9d
mov byte [rsp + 0x20], r8b
mov dl, reloc.OLEAUT32.dll_SafeArrayGetUBound
lea ecx, [r8 + 1]
call fcn.140020230
cmp dword [0x140164c24], 2
mov rax, qword [0x14015bc10]
jne 0x14001f4a0
mov ecx, dword [rax + 0x80]
call fcn.140022830
movzx r12d, byte [rbp]
xor dil, dil
mov rsi, qword [rbp + 0x38]
jmp 0x14001f758
mov ecx, dword [rax + 0x7c]
call fcn.140022830
movzx r12d, byte [rbp]
xor dil, dil
mov rsi, qword [rbp + 0x38]
jmp 0x14001f758
xor r8d, r8d
movzx edx, si
movzx ecx, dil
call fcn.140023810
mov r14d, dword [rbp + 0xc]
movzx ebx, al
test al, al
je 0x14001f603
cmp qword [rbp + 0x118], 0
jne 0x14001f603
test r14d, r14d
jne 0x14001f531
mov eax, dword [rbp + 0x28]
movzx r12d, dil
cmp eax, 1
jne 0x14001f511
movzx r13d, byte [rbp + 1]
or byte [0x140164b66], bl
or r13b, bl
mov byte [rbp + 1], r13b
mov byte [rbp + 4], r13b
jmp 0x14001f60d
cmp eax, 2
jne 0x14001f51c
or byte [0x140164b67], bl
movzx r13d, byte [rbp + 1]
or r13b, bl
mov byte [rbp + 1], r13b
mov byte [rbp + 4], r13b
jmp 0x14001f60d
cmp r14d, 1
jne 0x14001f603
cmp dword [0x140164b60], 0
jne 0x14001f5bb
cmp byte [0x140164b65], dil
je 0x14001f5bb
cmp byte [0x140164c30], 0
jne 0x14001f5bb
movzx ecx, byte [0x140164b64]
lea eax, [rdi - 0x5b]
cmp al, r14b
ja 0x14001f576
lea eax, [rcx - 0x5b]
cmp al, r14b
ja 0x14001f576
cmp dword [0x140164c24], 2
jne 0x14001f593
cmp dil, 0xa4
je 0x14001f58b
cmp dil, 0xa5
jne 0x14001f5bb
cmp dword [0x140164c10], 3
je 0x14001f5bb
add cl, 0x5c
cmp cl, 1
ja 0x14001f5bb
movzx r8d, word [0x14015d658]
xor r9d, r9d
movzx edx, byte [reloc.OLEAUT32.dll_SafeArrayGetElemsize]
mov dword [rsp + 0x28], 0xffc3d44d
mov byte [rsp + 0x20], 0
lea ecx, [r9 + 2]
call fcn.140020230
movzx ecx, byte [rbp + 6]
movzx eax, bl
not al
and byte [0x140164b67], al
and cl, al
movzx r13d, al
mov byte [rbp + 6], cl
and r13b, byte [0x140164b66]
mov byte [0x140164b66], r13b
cmp dil, 0xa5
jne 0x14001f5f6
cmp dword [0x140164c10], 3
jne 0x14001f5f6
and cl, 0xfe
mov byte [rbp + 6], cl
or r13b, cl
mov byte [rbp + 1], r13b
mov byte [rbp + 4], r13b
jmp 0x14001f608
movzx r13d, byte [rbp + 1]
movzx r12d, byte [rbp]
mov rdx, qword [rbp + 0x118]
movzx r9d, r13b
movzx r8d, byte [rbp + 2]
movzx ecx, dil
mov byte [rsp + 0x50], 0
mov dword [rsp + 0x48], 0x80000000
mov dword [rsp + 0x40], 0x80000000
mov qword [rsp + 0x38], rdx
movzx edx, si
mov byte [rsp + 0x30], bl
mov dword [rsp + 0x28], r14d
mov dword [rsp + 0x20], r15d
call fcn.14001fac0
mov rsi, qword [rbp + 0x38]
xor dil, dil
jmp 0x14001f758
movzx r12d, byte [rbp]
jmp 0x14001f75c
cmp r15d, 2
jne 0x14001f6cf
movzx ecx, word [rsi]
sub ecx, 8
je 0x14001f6c8
sub ecx, 1
je 0x14001f6c1
sub ecx, 1
je 0x14001f6ba
cmp ecx, 3
je 0x14001f6ad
mov byte [rbp + 3], 0
movzx ecx, word [rsi]
test r12, r12
je 0x14001f740
mov r8d, ecx
xor r9d, r9d
mov rcx, r12
mov edx, 0x102
call qword [sym.imp.USER32.dll_PostMessageW]
jmp 0x14001f751
cmp word [rsi + 2], 0xa
lea rax, [rsi + 2]
cmove rsi, rax
mov al, 0xd
mov byte [rbp + 3], al
jmp 0x14001f6ff
mov al, 9
mov byte [rbp + 3], al
jmp 0x14001f6ff
mov al, 8
mov byte [rbp + 3], al
jmp 0x14001f6ff
or dil, r13b
je 0x14001f6de
test r15d, r15d
jne 0x14001f6de
mov r9b, 1
jmp 0x14001f6e1
xor r9d, r9d
mov r8, qword [0x140164b68]
lea rdx, [rbp + 2]
movzx ecx, word [rsi]
call fcn.140024490
movzx edi, byte [rbp + 2]
mov byte [rbp + 3], al
test al, al
je 0x14001f688
xor edx, edx
movzx r9d, r13b
mov byte [rsp + 0x50], dl
movzx r8d, dil
mov dword [rsp + 0x48], 0x80000000
movzx ecx, al
mov dword [rsp + 0x40], 0x80000000
mov qword [rsp + 0x38], r12
mov byte [rsp + 0x30], dl
mov dword [rsp + 0x28], 2
mov dword [rsp + 0x20], 1
call fcn.14001fac0
jmp 0x14001f751
or dil, r13b
mov edx, 1
movzx r8d, dil
call fcn.14001fd20
xor dil, dil
movzx r12d, dil
mov byte [rbp + 2], dil
add rsi, 2
mov byte [0x140164b65], r12b
mov r12, qword [rbp + 0x118]
lea r14, [0x140000000]
cmp word [rsi], 0
jne 0x14001e6b0
movzx r15d, byte [rbp + 0x10]
mov r14d, 0x5dc
cmp dword [0x140164c24], 0
je 0x14001f843
cmp byte [0x140164c22], 0
mov ebx, 0xffffffff
mov dword [rbp + 0x100], ebx
jne 0x14001f80a
cmp dword [0x140164c14], 0
jbe 0x14001f80a
cmp byte [0x140164c30], 0
je 0x14001f7c1
xor bl, bl
jmp 0x14001f7ca
movzx ebx, byte [rbp + 7]
not bl
and bl, byte [rbp + 5]
or bl, byte [0x140164b67]
mov r9b, 1
movzx edx, byte [0x140164c20]
or bl, r13b
movzx ecx, bl
mov dword [rsp + 0x28], 0xffc3d44d
xor r8d, r8d
mov byte [rsp + 0x20], 1
call fcn.140022d20
movzx edx, bl
lea rcx, [rbp + 0x100]
call fcn.1400225d0
mov ebx, dword [rbp + 0x100]
cmp dword [0x140164c24], 1
mov eax, 0x1f4
cmove r14d, eax
cmp dword [0x140164c18], r14d
jbe 0x14001f82f
mov rcx, qword [0x1401617a8]
call fcn.1400f75c8
xor edi, edi
mov ecx, ebx
mov dword [0x140164c24], edi
call fcn.140022830
jmp 0x14001f8e2
cmp qword [0x140160790], 0
je 0x14001f85a
movzx ecx, byte [0x1401616d0]
movzx edx, byte [rbp + 5]
jmp 0x14001f886
cmp dword [0x14015d654], 0
jl 0x14001f87f
call qword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [0x140164864]
cmp eax, dword [0x14015d654]
jb 0x14001f87f
movzx edx, byte [rbp + 5]
xor cl, cl
jmp 0x14001f886
movzx edx, byte [rbp + 5]
movzx ecx, dl
or cl, byte [0x140164b67]
cmp byte [0x140164c30], 0
je 0x14001f8aa
movzx eax, cl
xor al, dl
movzx ebx, al
and al, cl
and bl, dl
not bl
and bl, r13b
or bl, al
jmp 0x14001f8b5
movzx ebx, byte [rbp + 7]
not bl
and bl, cl
or bl, r13b
xor ecx, ecx
call fcn.1400235b0
or al, byte [0x14016087b]
mov r9b, 1
movzx edx, al
mov dword [rsp + 0x28], 0xffc3d44d
mov r8, r12
mov byte [rsp + 0x20], 1
movzx ecx, bl
call fcn.140022d20
xor edi, edi
cmp qword [0x140160790], 0
je 0x14001f908
movzx ecx, byte [0x1401616d1]
movzx eax, cl
xor al, byte [0x1401616d2]
and al, cl
not al
and cl, al
mov byte [0x1401616d1], cl
cmp dword [rbp + 0x2c], 1
jne 0x14001f91a
mov edx, 1
mov cl, reloc.OLEAUT32.dll_SafeArrayLock
call fcn.140022bd0
cmp byte [rbp + 9], 0
je 0x14001f932
mov edx, dword [rbp + 0x30]
xor r8d, r8d
mov ecx, dword [0x140163c90]
call qword [sym.imp.USER32.dll_AttachThreadInput]
cmp byte [rbp + 0xa], 0
je 0x14001f94c
test r15b, r15b
jne 0x14001f94c
xor ecx, ecx
call qword [sym.imp.USER32.dll_BlockInput]
mov byte [0x140160842], r15b
mov eax, dword [rbp + 0x110]
test eax, eax
jne 0x14001f9df
mov eax, dword [rbp + 0x48]
cmp dword [0x1401648c0], eax
je 0x14001fa1a
cmp dword [0x14015bc04], 0
je 0x14001fa1a
cmp dword [0x1401605bc], 0
jne 0x14001fa1a
mov rcx, qword [0x14015bc10]
cmp byte [rcx + 0x12c], 0
jne 0x14001f9d0
cmp byte [rcx + 0x12e], 0
jne 0x14001f9c7
cmp dword [rcx + 0x120], 0xffffffff
jle 0x14001f9c7
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov rcx, qword [0x14015bc10]
sub eax, dword [rcx + 0x11c]
cmp eax, dword [rcx + 0x120]
jb 0x14001f9c7
mov byte [rcx + 0x12c], 1
cmp byte [rcx + 0x12c], 0
je 0x14001fa1a
mov edx, 1
lea ecx, [rdx - 2]
call fcn.140001a10
jmp 0x14001fa1a
cmp eax, 1
jne 0x14001fa1a
call qword [sym.imp.USER32.dll_GetForegroundWindow]
mov rcx, rax
xor edx, edx
call qword [sym.imp.USER32.dll_GetWindowThreadProcessId]
cmp eax, dword [0x140163c90]
jne 0x14001fa1a
mov edx, 1
mov dword [0x14015bc04], edi
lea ecx, [rdx - 2]
call fcn.140001a10
mov dword [0x14015bc04], 1
mov rax, qword [rbp + 0x58]
mov ecx, dword [rbp + 0x4c]
mov dword [rax + 0x7c], ecx
mov ecx, dword [rbp + 0x50]
mov dword [rax + 0x84], ecx
lea rsp, [rbp + 0xb8]
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret