Function at 0x14000f5e0
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 byte [rsp + 0x10], dl
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x108
lea rbp, [rsp + 0x60]
cmp word [rcx], 0
mov r12, r9
mov esi, r8d
movzx r13d, dl
mov r14, rcx
je 0x140010c04
mov r15, qword [0x14012fa58]
mov eax, dword gs:[0x48]
mov qword [rbp + 0x48], r15
mov dword [rbp + 0x2c], eax
test dl, dl
jne 0x14000f65a
mov r8d, 7
lea rdx, str.Blind
call fcn.1400cab68
test eax, eax
jne 0x14000f65a
mov byte [0x14013a494], 1
add r14, 0xe
jmp 0x14000f661
mov byte [0x14013a494], 0
mov eax, dword [r15 + 0x7c]
xor ecx, ecx
mov dword [rbp + 0x40], eax
mov eax, dword [r15 + 0x84]
mov dword [rbp + 0x44], eax
lea eax, [rsi - 1]
test eax, 0xfffffffd
jne 0x14000f753
cmp qword [0x14013a3c0], rcx
je 0x14000f712
mov rcx, qword [0x1401353a8]
test rcx, rcx
je 0x14000f6a1
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea r8, str.Melon
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 [0x1401353a8], 0
mov edi, eax
je 0x14000f6d0
mov qword [0x1401353a8], rbx
jmp 0x14000f6d9
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
cmp edi, 0xb7
je 0x14000f710
test r13b, r13b
jne 0x14000f703
call fcn.14000a930
test al, al
je 0x14000f703
lea rdx, str.Click
mov rcx, r14
call fcn.1400a6ae0
test rax, rax
jne 0x14000f710
mov esi, 1
mov dword [rbp + 0x100], esi
jmp 0x14000f753
xor ecx, ecx
cmp esi, 3
jne 0x14000f724
mov esi, 2
mov dword [rbp + 0x100], esi
jmp 0x14000f753
cmp dword [r15 + 0x7c], 0
mov esi, ecx
mov dword [rbp + 0x100], ecx
jge 0x14000f742
cmp dword [r15 + 0x84], 0
jge 0x14000f742
or eax, 0xffffffff
jmp 0x14000f744
mov eax, ecx
mov dword [r15 + 0x84], eax
mov dword [r15 + 0x7c], 0xffffffff
xor edx, edx
mov byte [rbp + 8], 0
mov ebx, edx
test r12, r12
je 0x14000f7b3
mov rcx, r12
call qword [sym.imp.USER32.dll_GetWindowThreadProcessId]
mov dword [rbp + 0x20], eax
mov edi, eax
test eax, eax
je 0x14000f8e4
cmp eax, dword [0x140139538]
je 0x14000f8e4
mov rcx, r12
call fcn.1400ad6d0
test al, al
jne 0x14000f8e4
mov ecx, dword [0x140139538]
mov r8d, 1
mov edx, edi
call qword [sym.imp.USER32.dll_AttachThreadInput]
test eax, eax
mov ebx, edi
setne byte [rbp + 8]
jmp 0x14000f8e4
test byte [0x14013a14e], 0xc0
je 0x14000f8b8
call qword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [0x14013a144]
cmp eax, 0x32
jae 0x14000f8b8
cmp esi, 2
je 0x14000f8b8
cmp byte [0x14013a494], bl
jne 0x14000f8b8
cmp byte [0x14013a3b3], bl
je 0x14000f8b8
mov eax, dword [rbp + 0x2c]
cmp eax, dword [0x140139538]
jne 0x14000f8b8
lea rdx, [0x14010cda0]
mov rcx, r14
call fcn.14000b180
test r13b, r13b
je 0x14000f872
test rax, rax
setne al
test al, al
je 0x14000f8b8
mov edi, 0x8000
xor r12d, r12d
nop
mov ecx, 0x5b
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test di, ax
jne 0x14000f850
mov ecx, 0x5c
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test di, ax
je 0x14000f8b1
mov edx, 1
mov dword [0x14012fa50], r12d
mov ecx, 0x8000012f
call fcn.1400018b0
mov dword [0x14012fa50], 1
jmp 0x14000f830
test rax, rax
je 0x14000f8b8
nop word [rax + rax]
lea rcx, [rax + 2]
lea rdx, [0x14010cda8]
call fcn.14000b180
test rax, rax
je 0x14000f827
cmp word [rax], 0x7b
je 0x14000f827
lea rdx, [0x14010cda0]
mov rcx, rax
call fcn.14000b180
test rax, rax
jne 0x14000f880
jmp 0x14000f8b8
mov r12, qword [rbp + 0x108]
call qword [sym.imp.USER32.dll_GetForegroundWindow]
test rax, rax
je 0x14000f8db
xor edx, edx
mov rcx, rax
call qword [sym.imp.USER32.dll_GetWindowThreadProcessId]
mov edi, dword [rbp + 0xf0]
mov ebx, eax
mov dword [rbp + 0x20], edi
jmp 0x14000f8e4
mov eax, dword [rbp + 0xf0]
mov dword [rbp + 0x20], eax
mov ecx, ebx
call qword [sym.imp.USER32.dll_GetKeyboardLayout]
mov rcx, rax
mov qword [0x14013a480], rax
xor edx, edx
call fcn.140014780
mov cl, 1
mov dword [0x14013a47c], eax
call fcn.140014120
cmp qword [0x140134450], 0
movzx ebx, al
je 0x14000f933
movzx eax, byte [0x14013522e]
movzx edx, byte [0x14013522c]
movzx ecx, al
and cl, dl
not al
and al, dl
mov byte [rbp + 6], al
jmp 0x14000f95b
call qword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [0x14013a144]
cmp eax, dword [0x140131490]
jae 0x14000f952
movzx edx, byte [0x14013a14e]
and dl, bl
jmp 0x14000f954
xor dl, dl
movzx ecx, dl
mov byte [rbp + 6], 0
movzx r13d, byte [0x14013535e]
not cl
and cl, bl
mov byte [rbp + 4], dl
and r13b, cl
cmp byte [0x14013a494], 0
mov byte [rbp], r13b
mov byte [0x14013535e], r13b
je 0x14000f997
not r13b
mov byte [rbp], bl
and r13b, bl
mov byte [rbp + 2], bl
mov byte [rbp + 5], r13b
movzx r13d, bl
jmp 0x14000f9a0
xor al, al
mov byte [rbp + 2], r13b
mov byte [rbp + 5], al
cmp byte [r15 + 0x133], 0
je 0x14000f9c1
cmp byte [0x14013a494], 0
jne 0x14000f9c1
mov edx, 2
mov cl, reloc.OLEAUT32.dll_SafeArrayLock
call fcn.1400137e0
jmp 0x14000f9c3
xor eax, eax
mov dword [rbp + 0x30], eax
mov eax, 0x1f4
mov dword [0x140137320], esi
test esi, esi
je 0x14000fa60
cmp esi, 1
jne 0x14000f9eb
mov ecx, 0x4e20
mov dword [0x14013a48c], eax
jmp 0x14000f9fa
mov ecx, 0x2ee0
mov dword [0x14013a48c], 0x5dc
lea rax, [rcx + 0xf]
cmp rax, rcx
ja 0x14000fa0d
movabs rax, 0xffffffffffffff0
and rax, 0xfffffffffffffff0
call fcn.1400decd0
sub rsp, rax
mov byte [0x14013a45e], bl
mov rax, qword [0x140131498]
xor ebx, ebx
mov byte [0x14013a45f], 0
mov dword [0x14013a488], ebx
lea rcx, [rsp + 0x60]
mov byte [0x14013a476], bl
mov qword [rax], rcx
mov dword [0x14013a498], 0x80000000
mov dword [0x14013a49c], 0x80000000
mov byte [0x14013a477], 1
jmp 0x14000fa62
xor ebx, ebx
movzx eax, byte [0x140134437]
mov byte [rbp + 0x11], al
mov eax, dword [reloc.WSOCK32.dll_inet_ntoa]
add eax, 0xfffffff8
mov ecx, 4
test eax, 0xfffffffd
jne 0x14000fb10
test esi, esi
jne 0x14000fb10
test r12, r12
jne 0x14000fb10
mov rax, qword gs:[0x58]
mov edx, ecx
mov byte [rbp + 9], 1
mov rcx, qword [rax]
mov eax, dword [rdx + rcx]
cmp dword [0x14013b1e0], eax
jle 0x14000faf4
lea rcx, [0x14013b1e0]
call fcn.1400c4364
cmp dword [0x14013b1e0], 0xffffffff
jne 0x14000faf4
lea rcx, str.user32
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rcx, rax
lea rdx, str.BlockInput
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rcx, [0x14013b1e0]
mov qword [0x14013b1e8], rax
call fcn.1400c4304
mov rax, qword [0x14013b1e8]
test rax, rax
je 0x14000fb07
mov ecx, 1
call rax
mov byte [0x140134437], 1
jmp 0x14000fb14
mov byte [rbp + 9], 0
xor dil, dil
mov word [rbp + 0x16], bx
cmp word [r14], 0
mov byte [rbp + 1], dil
je 0x140010995
lea r15, str.Numpad0
lea rsi, [0x140130210]
jmp 0x14000fb42
xor ebx, ebx
cmp dword [0x140137320], 0
mov byte [rbp + 0xf0], 0
jne 0x14000fbb0
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov rcx, qword [0x14012fa58]
sub eax, dword [0x14013a19c]
cmp eax, dword [rcx + 0x118]
jbe 0x14000fbb0
xor r9d, r9d
mov dword [rsp + 0x20], ebx
xor r8d, r8d
lea rcx, [rbp + 0x68]
xor edx, edx
call qword [sym.imp.USER32.dll_PeekMessageW]
test eax, eax
je 0x14000fba4
mov edx, 1
mov dword [0x14012fa50], ebx
or ecx, 0xffffffff
call fcn.1400018b0
mov dword [0x14012fa50], 1
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x14013a19c], eax
cmp byte [rbp + 0xf8], 0
jne 0x140010837
movzx edx, word [r14]
lea rcx, [0x14010cdb0]
call fcn.1400c6908
test rax, rax
je 0x140010837
movzx eax, word [r14]
add eax, 0xffffffdf
cmp eax, 0x5c
ja case.0x14000fc01.34
lea rdx, sym.MZ_kiv9nMDWjqg_I7rrTcpI88_u4Z_bB_FPuaQ9q_
cdqe
movzx eax, byte [rdx + rax + 0x10c34]
mov ecx, dword [rdx + rax*4 + 0x10c18]
add rcx, rdx
jmp rcx
test r13b, 3
jne case.0x14000fc01.34
movzx r15d, byte [rbp + 0xf0]
or dil, 1
jmp 0x140010963
test r13b, 0x30
jne case.0x14000fc01.34
movzx r15d, byte [rbp + 0xf0]
or dil, 0x10
jmp 0x140010963
test r13b, 0xc
jne case.0x14000fc01.34
movzx r15d, byte [rbp + 0xf0]
or dil, 4
jmp 0x140010963
test r13b, 0xc0
jne case.0x14000fc01.34
movzx r15d, byte [rbp + 0xf0]
or dil, 0x40
jmp 0x140010963
lea rbx, [r14 + 2]
mov edx, 0x7d
mov rcx, rbx
call fcn.1400c6908
mov qword [rbp + 0x38], rax
mov rsi, rax
test rax, rax
je case.0x14000fc01.34
mov r14, rbx
movzx ecx, word [r14]
cmp cx, 0x20
je 0x14000fca3
cmp cx, 9
jne 0x14000fca9
add r14, 2
jmp 0x14000fc93
mov r15, rax
sub r15, r14
sar r15, 1
jne 0x14000fd61
lea rbx, [rax + 2]
movzx eax, word [rax + 2]
cmp ax, 0x7d
jne 0x14000fcd8
mov rsi, rbx
mov qword [rbp + 0x38], rbx
mov r15d, 1
jmp 0x14000fd61
cmp ax, 0x20
je 0x14000fcf0
cmp ax, 9
jne 0x140010153
nop dword [rax + rax]
movzx eax, word [rbx]
cmp ax, 0x20
je 0x14000fcff
cmp ax, 9
jne 0x14000fd05
add rbx, 2
jmp 0x14000fcf0
mov r8d, 4
lea rdx, str.Down
mov rcx, rbx
call fcn.1400cab68
test eax, eax
je 0x14000fd3b
mov r8d, 2
lea rdx, [0x1400f9450]
mov rcx, rbx
call fcn.1400cab68
test eax, eax
jne 0x140010153
mov edx, 0x7d
mov rcx, rbx
call fcn.1400c6908
mov qword [rbp + 0x38], rax
mov rsi, rax
test rax, rax
je case.0x14000fc01.34
mov r15, rax
sub r15, r14
sar r15, 1
mov r8d, 5
lea rdx, [0x1400ee690]
mov rcx, r14
call fcn.1400cab68
test eax, eax
jne 0x14000fe62
xor eax, eax
lea rcx, [r14 + 0xa]
mov word [rsi], ax
movzx eax, word [rcx]
cmp ax, 0x20
je 0x14000fd96
cmp ax, 9
jne 0x14000fd9c
add rcx, 2
jmp 0x14000fd87
lea rax, [rbp + 7]
mov qword [rsp + 0x30], rax
lea r9, [rbp + 3]
lea rax, [rbp + 0x18]
mov qword [rsp + 0x28], rax
lea r8, [rbp + 0x24]
lea rax, [rbp + 0xc]
lea rdx, [rbp + 0x28]
mov qword [rsp + 0x20], rax
call fcn.140011b00
mov ecx, dword [rbp + 0x18]
mov eax, 0x7d
mov word [rsi], ax
cmp ecx, 1
jge 0x14000fe11
mov rax, qword [rbp + 0x48]
lea r8, [rbp + 0x50]
lea rdx, [rbp + 0x24]
lea rcx, [rbp + 0x28]
movzx r9d, byte [rax + 0x12f]
movzx eax, byte [rbp + 7]
mov byte [rsp + 0x20], al
call fcn.140012a90
movzx r15d, byte [rbp + 0xf0]
xor dil, dil
mov r14, qword [rbp + 0x38]
jmp 0x140010963
movzx eax, byte [rbp + 7]
xor edx, edx
mov byte [rsp + 0x50], al
movzx r9d, r13b
mov eax, dword [rbp + 0x24]
movzx r8d, dil
mov dword [rsp + 0x48], eax
mov eax, dword [rbp + 0x28]
mov dword [rsp + 0x40], eax
mov eax, dword [rbp + 0xc]
mov qword [rsp + 0x38], r12
mov byte [rsp + 0x30], dl
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], ecx
movzx ecx, byte [rbp + 3]
call fcn.140010ca0
movzx r15d, byte [rbp + 0xf0]
xor dil, dil
mov r14, qword [rbp + 0x38]
jmp 0x140010963
mov r8d, 3
lea rdx, [0x14010cdc0]
mov rcx, r14
call fcn.1400cab68
test eax, eax
jne 0x14000fe96
movzx r15d, byte [rbp + 0xf0]
xor dil, dil
mov r14, qword [rbp + 0x38]
mov byte [rbp + 0xf8], 1
jmp 0x140010963
xor edi, edi
mov dword [rbp + 0xc], 2
lea rdx, [0x14010ca60]
mov word [rsi], di
mov rcx, r14
mov dword [rbp + 0x18], 1
mov r13, r15
call fcn.14000b180
mov r12, rax
test rax, rax
je 0x14000ff62
movzx eax, word [rax]
lea rbx, [r12 + 2]
mov r13, r12
mov word [rbp + 0x1c], ax
sub r13, r14
mov word [r12], di
sar r13, 1
movzx eax, word [rbx]
cmp ax, 0x20
je 0x14000fef0
cmp ax, 9
jne 0x14000fef6
add rbx, 2
jmp 0x14000fee1
mov rax, rsi
sub rax, rbx
sar rax, 1
test eax, eax
je 0x14000ff62
mov r8d, 4
lea rdx, str.Down
mov rcx, rbx
call fcn.1400cab68
test eax, eax
jne 0x14000ff3b
lea rcx, [rbx + 8]
mov dword [rbp + 0xc], edi
lea r8d, [rax + 4]
lea rdx, str.Temp
call fcn.1400cab68
test eax, eax
setne byte [rbp + 0x10]
jmp 0x14000ff62
lea rdx, [0x1400f9450]
mov rcx, rbx
call fcn.1400c8580
test eax, eax
jne 0x14000ff57
mov dword [rbp + 0xc], 1
jmp 0x14000ff62
mov rcx, rbx
call fcn.14000f080
mov dword [rbp + 0x18], eax
movzx ecx, word [r14]
test cx, cx
jne 0x1400100bb
xor bl, bl
mov byte [rbp + 3], bl
mov rcx, r14
call fcn.140014b90
movzx esi, ax
test ax, ax
jne 0x14000fff1
movzx ecx, word [r14]
call fcn.14000b150
cmp ax, 0x56
jne 0x14000fff1
movzx ecx, word [r14 + 2]
call fcn.14000b150
cmp ax, 0x4b
jne 0x14000fff1
lea rdi, [r14 + 4]
mov rcx, rdi
lea rdx, [0x14010cdd4]
call fcn.14000b180
mov rbx, rax
test rax, rax
je 0x14000ffde
movzx ecx, word [rax + 2]
call fcn.14000b150
cmp ax, 0x43
jne 0x14000ffde
xor edx, edx
lea rcx, [rbx + 4]
lea r8d, [rdx + 0x10]
call fcn.1400cc5c8
mov esi, eax
xor edx, edx
mov rcx, rdi
lea r8d, [rdx + 0x10]
call fcn.1400cc5c8
mov ebx, eax
mov byte [rbp + 3], al
test r12, r12
je 0x14000ffff
movzx eax, word [rbp + 0x1c]
mov word [r12], ax
mov rax, qword [rbp + 0x38]
mov ecx, 0x7d
mov r12d, dword [rbp + 0x18]
mov word [rax], cx
cmp r12d, 1
jl 0x140010147
test bl, bl
jne 0x1400106b0
test si, si
jne 0x1400106b0
movzx ecx, byte [r14]
call fcn.1400cc464
test eax, eax
je 0x1400101c2
cmp r13, 1
jbe 0x1400101c6
cmp dword [0x140137320], 0
je 0x140010167
mov rcx, r14
call fcn.14000f080
mov ecx, dword [0x14013a48c]
cmp dword [0x14013a488], ecx
mov ebx, eax
jne 0x140010077
call fcn.140013050
test eax, eax
je 0x1400103f5
cmp dword [0x140137320], 1
jne 0x140010128
mov rax, qword [0x140137328]
mov ecx, dword [0x14013a488]
lea rdx, [rcx + rcx*4]
lea rcx, [rax + rdx*8]
xor edx, edx
mov dword [rcx], 1
mov rax, rbx
or byte [0x14013a45f], 1
mov qword [rcx + 8], rdx
mov dword [rcx + 0x10], edx
mov qword [rcx + 0x18], rbx
jmp 0x140010141
cmp word [r14 + 2], di
jne 0x1400100d7
mov r8, qword [0x14013a480]
lea rdx, [rbp + 1]
call fcn.140014db0
movzx ebx, al
jmp 0x140010115
lea rbx, str.Numpad0
lea rsi, [0x140130210]
mov rcx, qword [rbx]
mov rdx, r14
call fcn.1400c8580
test eax, eax
je 0x140010104
inc rdi
add rbx, 0x10
cmp rbx, rsi
jl 0x1400100e5
xor bl, bl
jmp 0x140010113
add rdi, rdi
lea rax, str.Numpad0
movzx ebx, byte [rax + rdi*8 + 8]
xor edi, edi
mov byte [rbp + 3], bl
test bl, bl
je 0x14000ff74
movzx esi, di
jmp 0x14000fff1
mov rax, qword [0x140131498]
mov edx, dword [0x14013a488]
mov rcx, qword [rax]
xor eax, eax
mov dword [rcx + rdx*8], eax
mov dword [rcx + rdx*8 + 4], ebx
inc dword [0x14013a488]
mov r12, qword [rbp + 0x108]
movzx r13d, byte [rbp]
movzx r15d, byte [rbp + 0xf0]
mov r14, qword [rbp + 0x38]
xor dil, dil
jmp 0x140010963
xor eax, eax
mov dword [0x14012fa50], eax
mov eax, dword [rbp + 0x2c]
cmp dword [0x140139538], eax
je 0x1400101a2
mov rcx, r14
call fcn.14000f080
test eax, eax
js 0x1400101a2
mov rcx, r14
call fcn.14000f080
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_Sleep]
mov dword [0x14012fa50], 1
jmp 0x140010147
mov rcx, r14
call fcn.14000f080
mov ecx, eax
mov edx, 1
call fcn.1400018b0
mov dword [0x14012fa50], 1
jmp 0x140010147
cmp r13, 1
jne 0x140010226
mov r15d, dword [rbp + 0xc]
cmp r15d, 1
je 0x1400103f5
cmp qword [rbp + 0x108], 0
je 0x140010215
mov r12, qword [rbp + 0x108]
xor r9d, r9d
movzx r8d, word [r14]
mov rcx, r12
mov edx, 0x102
call qword [sym.imp.USER32.dll_PostMessageW]
movzx r13d, byte [rbp]
xor dil, dil
movzx r15d, byte [rbp + 0xf0]
mov r14, qword [rbp + 0x38]
jmp 0x140010963
movzx ecx, word [r14]
mov edx, r12d
call fcn.140010f00
jmp 0x140010147
mov rbx, qword [rbp + 0x108]
lea r9, [rbp + 2]
test rbx, rbx
lea r8, [rbp + 0xc]
mov rdx, r15
mov rcx, r14
sete al
mov byte [rsp + 0x20], al
call fcn.140014e40
mov byte [rbp + 3], al
movzx edi, al
test al, al
je 0x140010415
mov esi, dword [rbp + 0xc]
test rbx, rbx
jne 0x1400102f0
test esi, esi
jne 0x140010277
movzx r15d, al
mov byte [rbp + 0xf0], al
jmp 0x1400102f8
cmp dword [0x14013a478], 0
jne 0x1400102f0
cmp byte [0x14013535f], dil
je 0x1400102f0
cmp byte [0x14013a494], 0
jne 0x1400102f0
movzx ecx, byte [0x140135362]
lea eax, [rdi - 0x5b]
cmp al, 1
ja 0x1400102b0
lea eax, [rcx - 0x5b]
cmp al, 1
ja 0x1400102b0
cmp dword [0x140137320], 2
jne 0x1400102cd
cmp dil, 0xa4
je 0x1400102c5
cmp dil, 0xa5
jne 0x1400102f0
cmp dword [0x14013a47c], 3
je 0x1400102f0
add cl, 0x5c
cmp cl, 1
ja 0x1400102f0
movzx edx, byte [reloc.OLEAUT32.dll_SafeArrayGetElemsize]
xor r8d, r8d
mov dword [rsp + 0x28], 0xffc3d44d
xor r9d, r9d
mov byte [rsp + 0x20], r8b
lea ecx, [r8 + 2]
call fcn.1400113e0
movzx r15d, byte [rbp + 0xf0]
cmp dword [0x140137320], 0
je 0x14001030a
movzx eax, byte [0x14013a45e]
jmp 0x140010311
xor ecx, ecx
call fcn.140014120
movzx r13d, byte [rbp + 2]
xor r9d, r9d
movzx ecx, r13b
mov dword [rsp + 0x28], 0xffc3d44d
mov r8, rbx
mov byte [rsp + 0x20], 0
movzx edx, al
mov byte [rbp], r13b
call fcn.140013930
test r12d, r12d
jle 0x140010402
mov rbx, r12
xor r15d, r15d
mov r12, qword [rbp + 0x108]
nop
xor r8d, r8d
mov dword [rsp + 0x28], 0xffc3d44d
mov r9, r12
mov byte [rsp + 0x20], 1
movzx edx, dil
mov ecx, esi
call fcn.1400113e0
cmp dword [0x140137320], r15d
jne 0x1400103d7
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov rcx, qword [0x14012fa58]
sub eax, dword [0x14013a19c]
cmp eax, dword [rcx + 0x118]
jbe 0x1400103d7
xor r9d, r9d
mov dword [rsp + 0x20], r15d
xor r8d, r8d
lea rcx, [rbp + 0x68]
xor edx, edx
call qword [sym.imp.USER32.dll_PeekMessageW]
test eax, eax
je 0x1400103cb
mov edx, 1
mov dword [0x14012fa50], r15d
or ecx, 0xffffffff
call fcn.1400018b0
mov dword [0x14012fa50], 1
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x14013a19c], eax
sub rbx, 1
jne 0x140010350
movzx r15d, byte [rbp + 0xf0]
xor dil, dil
mov r14, qword [rbp + 0x38]
jmp 0x140010963
movzx r15d, byte [rbp + 0xf0]
movzx r13d, byte [rbp]
mov r12, qword [rbp + 0x108]
xor dil, dil
mov r14, qword [rbp + 0x38]
jmp 0x140010963
cmp r15, 4
jbe 0x1400104c7
mov r8d, 4
lea rdx, str.ASC
mov rcx, r14
call fcn.1400cab68
mov r12, qword [rbp + 0x108]
test eax, eax
jne 0x1400104ce
test r12, r12
jne 0x1400104ce
lea rcx, [r14 + 6]
movzx eax, word [rcx]
cmp ax, 0x20
je 0x14001045f
cmp ax, 9
jne 0x140010465
add rcx, 2
jmp 0x140010450
call fcn.1400110b0
cmp dword [0x140137320], 2
mov rax, qword [0x14012fa58]
jne 0x1400104a2
mov ecx, dword [rax + 0x80]
call fcn.140013430
movzx r13d, byte [rbp + 2]
xor dil, dil
movzx r15d, byte [rbp + 0xf0]
mov r14, qword [rbp + 0x38]
mov byte [rbp], r13b
jmp 0x140010963
mov ecx, dword [rax + 0x7c]
call fcn.140013430
movzx r13d, byte [rbp + 2]
xor dil, dil
movzx r15d, byte [rbp + 0xf0]
mov r14, qword [rbp + 0x38]
mov byte [rbp], r13b
jmp 0x140010963
mov r12, qword [rbp + 0x108]
cmp r15, 2
jbe 0x1400104aa
mov r8d, 2
lea rdx, [0x14010cdec]
mov rcx, r14
call fcn.1400cab68
test eax, eax
jne 0x1400104aa
lea rcx, [r14 + 4]
xor edx, edx
lea r8d, [rax + 0x10]
call fcn.1400cc5c8
cmp eax, 0x10000
jb 0x14001052f
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 0x140010536
xor edx, edx
movzx ecx, ax
mov ebx, edx
movzx r13d, byte [rbp + 2]
mov byte [rbp], r13b
test r12, r12
je 0x14001057c
movzx r8d, cx
xor r9d, r9d
mov rcx, r12
mov edx, 0x102
call qword [sym.imp.USER32.dll_PostMessageW]
test bx, bx
je 0x140010665
movzx r8d, bx
xor r9d, r9d
mov edx, 0x102
mov rcx, r12
call qword [sym.imp.USER32.dll_PostMessageW]
jmp 0x140010665
cmp dword [0x140137320], 2
je 0x1400105ae
movzx edi, byte [rbp + 1]
movzx eax, r13b
or edi, eax
mov edx, edi
call fcn.14000f300
test bx, bx
je 0x140010665
mov edx, edi
movzx ecx, bx
call fcn.14000f300
jmp 0x140010665
mov ecx, gethostbyname
lea rdx, [rbp + 0x5a]
mov word [rbp + 0x58], cx
lea r8d, [rcx - 0x26]
mov ecx, eax
call fcn.1400c8478
cmp dword [0x140137320], 0
je 0x1400105d8
movzx eax, byte [0x14013a45e]
jmp 0x1400105df
xor ecx, ecx
call fcn.140014120
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.140013930
movzx eax, word [rbp + 0x58]
lea rbx, [rbp + 0x58]
cmp ax, 0x30
jb 0x140010647
cmp ax, 0x39
ja 0x140010647
movzx edx, byte [rbx]
xor r8d, r8d
add dl, 0x30
mov dword [rsp + 0x28], 0xffc3d44d
xor r9d, r9d
mov byte [rsp + 0x20], r8b
lea ecx, [r8 + 2]
call fcn.1400113e0
movzx eax, word [rbx + 2]
add rbx, 2
cmp ax, 0x30
jae 0x140010611
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.1400113e0
cmp dword [0x140137320], 2
mov rax, qword [0x14012fa58]
jne 0x140010694
mov ecx, dword [rax + 0x80]
call fcn.140013430
movzx r15d, byte [rbp + 0xf0]
xor dil, dil
mov r14, qword [rbp + 0x38]
jmp 0x140010963
mov ecx, dword [rax + 0x7c]
call fcn.140013430
movzx r15d, byte [rbp + 0xf0]
xor dil, dil
mov r14, qword [rbp + 0x38]
jmp 0x140010963
xor r8d, r8d
movzx edx, si
movzx ecx, bl
call fcn.140014370
mov r14, qword [rbp + 0x108]
movzx edi, al
mov r15d, dword [rbp + 0xc]
test al, al
je 0x1400107cd
test r14, r14
jne 0x1400107cd
test r15d, r15d
jne 0x140010709
mov byte [rbp + 0xf0], bl
cmp byte [rbp + 0x10], r15b
je 0x1400106f4
or byte [0x14013535e], al
movzx r13d, byte [rbp]
or r13b, dil
mov byte [rbp], r13b
mov byte [rbp + 2], r13b
jmp 0x1400107d2
cmp r15d, 1
jne 0x1400107cd
cmp dword [0x14013a478], 0
jne 0x14001078b
cmp byte [0x14013535f], bl
je 0x14001078b
cmp byte [0x14013a494], 0
jne 0x14001078b
movzx ecx, byte [0x140135362]
lea eax, [rbx - 0x5b]
cmp al, r15b
ja 0x14001074d
lea eax, [rcx - 0x5b]
cmp al, r15b
ja 0x14001074d
cmp dword [0x140137320], 2
jne 0x140010768
cmp bl, 0xa4
je 0x140010760
cmp bl, 0xa5
jne 0x14001078b
cmp dword [0x14013a47c], 3
je 0x14001078b
add cl, 0x5c
cmp cl, 1
ja 0x14001078b
movzx edx, byte [reloc.OLEAUT32.dll_SafeArrayGetElemsize]
xor r8d, r8d
mov dword [rsp + 0x28], 0xffc3d44d
xor r9d, r9d
mov byte [rsp + 0x20], r8b
lea ecx, [r8 + 2]
call fcn.1400113e0
movzx r13d, byte [0x14013535e]
movzx eax, dil
movzx ecx, byte [rbp + 5]
not al
and r13b, al
and cl, al
mov byte [0x14013535e], r13b
mov byte [rbp + 5], cl
cmp bl, 0xa5
jne 0x1400107c0
cmp dword [0x14013a47c], 3
jne 0x1400107c0
and cl, 0xfe
mov byte [rbp + 5], cl
or r13b, cl
mov byte [rbp], r13b
mov byte [rbp + 2], r13b
jmp 0x1400107d2
movzx r13d, byte [rbp]
movzx r8d, byte [rbp + 1]
movzx r9d, r13b
mov byte [rsp + 0x50], 0
movzx edx, si
mov dword [rsp + 0x48], 0x80000000
movzx ecx, bl
mov dword [rsp + 0x40], 0x80000000
mov qword [rsp + 0x38], r14
mov byte [rsp + 0x30], dil
mov dword [rsp + 0x28], r15d
mov dword [rsp + 0x20], r12d
call fcn.140010ca0
mov r12, qword [rbp + 0x108]
xor dil, dil
movzx r15d, byte [rbp + 0xf0]
mov r14, qword [rbp + 0x38]
jmp 0x140010963
movzx r15d, byte [rbp + 0xf0]
jmp 0x140010967
movzx eax, word [r14]
mov word [rbp + 0x14], ax
test ax, ax
jne 0x14001086a
mov byte [rbp + 3], al
test r12, r12
je 0x14001094e
movzx r8d, word [r14]
xor r9d, r9d
mov edx, 0x102
mov rcx, r12
call qword [sym.imp.USER32.dll_PostMessageW]
jmp 0x14001095c
cmp word [rbp + 0x16], 0
jne 0x140010889
mov r8, qword [0x14013a480]
lea rdx, [rbp + 1]
movzx ecx, ax
call fcn.140014db0
jmp 0x1400108fe
movzx ebx, ax
test ebx, 0xffffff80
jne 0x1400108a7
mov edx, 2
mov ecx, ebx
call fcn.1400cb124
test eax, eax
je 0x1400108a7
and ebx, 0xffffffdf
cmp bx, 0x56
jne 0x1400108cd
movzx ecx, word [rbp + 0x16]
call fcn.14000b150
cmp ax, 0x4b
jne 0x1400108cd
xor edx, edx
lea rcx, [rbp + 0x18]
lea r8d, [rdx + 0x10]
call fcn.1400cc5c8
jmp 0x140010902
xor eax, eax
mov rbx, r15
mov edi, eax
mov rcx, qword [rbx]
lea rdx, [rbp + 0x14]
call fcn.1400c8580
test eax, eax
je 0x1400108f4
inc rdi
add rbx, 0x10
cmp rbx, rsi
jl 0x1400108d4
xor al, al
jmp 0x1400108fe
shl rdi, 4
movzx eax, byte [rdi + r15 + 8]
movzx edi, byte [rbp + 1]
mov byte [rbp + 3], al
test al, al
je 0x140010847
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.140010ca0
jmp 0x14001095c
movzx ecx, word [r14]
mov edx, 1
call fcn.140010f00
xor dil, dil
movzx r15d, dil
mov byte [rbp + 1], dil
add r14, 2
mov byte [0x14013535f], r15b
lea rsi, [0x140130210]
lea r15, str.Numpad0
cmp word [r14], 0
jne 0x14000fb40
mov esi, dword [rbp + 0x100]
mov r15, qword [rbp + 0x48]
cmp dword [0x140137320], 0
je 0x140010a4e
or ebx, 0xffffffff
cmp byte [0x14013a476], 0
mov dword [rbp + 0xf0], ebx
jne 0x140010a12
cmp dword [0x14013a488], 0
jbe 0x140010a12
cmp byte [0x14013a494], 0
je 0x1400109cc
xor eax, eax
mov ebx, eax
jmp 0x1400109d8
movzx ebx, byte [rbp + 6]
movzx edx, byte [rbp + 4]
not ebx
and ebx, edx
movzx edx, byte [0x14013a45e]
or bl, r13b
movzx ecx, bl
mov dword [rsp + 0x28], 0xffc3d44d
mov r9b, 1
mov byte [rsp + 0x20], 1
xor r8d, r8d
call fcn.140013930
movzx edx, bl
lea rcx, [rbp + 0xf0]
call fcn.140013120
mov ebx, dword [rbp + 0xf0]
cmp dword [0x140137320], 1
mov eax, 0x5dc
mov ecx, 0x1f4
cmove eax, ecx
cmp dword [0x14013a48c], eax
jbe 0x140010a3a
mov rcx, qword [0x140137328]
call fcn.1400cc1a0
xor edi, edi
mov ecx, ebx
mov dword [0x140137320], edi
call fcn.140013430
jmp 0x140010ae1
cmp qword [0x140134450], 0
je 0x140010a65
movzx ecx, byte [0x14013522c]
movzx edx, byte [rbp + 4]
jmp 0x140010a91
cmp dword [0x140131490], 0
jl 0x140010a8a
call qword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [0x14013a144]
cmp eax, dword [0x140131490]
jb 0x140010a8a
movzx edx, byte [rbp + 4]
xor cl, cl
jmp 0x140010a91
movzx edx, byte [rbp + 4]
movzx ecx, dl
cmp byte [0x14013a494], 0
je 0x140010aaf
movzx eax, cl
xor al, dl
movzx ebx, al
and al, cl
and bl, dl
not bl
and bl, r13b
or bl, al
jmp 0x140010aba
movzx ebx, byte [rbp + 6]
not bl
and bl, cl
or bl, r13b
xor ecx, ecx
call fcn.140014120
movzx edx, al
mov dword [rsp + 0x28], 0xffc3d44d
mov r9b, 1
mov byte [rsp + 0x20], 1
mov r8, r12
movzx ecx, bl
call fcn.140013930
xor edi, edi
cmp qword [0x140134450], 0
je 0x140010b07
movzx ecx, byte [0x14013522d]
movzx eax, cl
xor al, byte [0x14013522e]
and al, cl
not al
and cl, al
mov byte [0x14013522d], cl
cmp dword [rbp + 0x30], 1
jne 0x140010b19
mov edx, 1
mov cl, reloc.OLEAUT32.dll_SafeArrayLock
call fcn.1400137e0
cmp byte [rbp + 8], 0
je 0x140010b31
mov edx, dword [rbp + 0x20]
xor r8d, r8d
mov ecx, dword [0x140139538]
call qword [sym.imp.USER32.dll_AttachThreadInput]
cmp byte [rbp + 9], 0
je 0x140010bbf
cmp byte [rbp + 0x11], 0
jne 0x140010bbf
mov rax, qword gs:[0x58]
mov r9d, 4
mov r8, qword [rax]
mov eax, dword [r9 + r8]
cmp dword [0x14013b1e0], eax
jle 0x140010ba8
lea rcx, [0x14013b1e0]
call fcn.1400c4364
cmp dword [0x14013b1e0], 0xffffffff
jne 0x140010ba8
lea rcx, str.user32
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rcx, rax
lea rdx, str.BlockInput
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rcx, [0x14013b1e0]
mov qword [0x14013b1e8], rax
call fcn.1400c4304
mov rax, qword [0x14013b1e8]
test rax, rax
je 0x140010bb8
xor ecx, ecx
call rax
mov byte [0x140134437], 0
cmp esi, 1
jne 0x140010bf3
call qword [sym.imp.USER32.dll_GetForegroundWindow]
mov rcx, rax
xor edx, edx
call qword [sym.imp.USER32.dll_GetWindowThreadProcessId]
cmp eax, dword [0x140139538]
jne 0x140010bf3
mov edx, esi
mov dword [0x14012fa50], edi
or ecx, 0xffffffff
call fcn.1400018b0
mov dword [0x14012fa50], esi
mov eax, dword [rbp + 0x40]
mov dword [r15 + 0x7c], eax
mov eax, dword [rbp + 0x44]
mov dword [r15 + 0x84], eax
lea rsp, [rbp + 0xa8]
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret