Function at 0x14000df9c
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x50
xor eax, eax
mov rbx, rcx
mov rcx, rdx
mov dword [rsp + 0x30], eax
mov r14d, eax
mov byte [rsp + 0xa0], al
mov r13b, al
mov r15b, al
mov byte [rsp + 0xa8], al
mov rbp, rdx
call fcn.1400768c0
mov edi, 1
lea rcx, [rdi + rax]
call fcn.140075b98
mov rcx, rbp
mov qword [rsp + 0x38], rax
call fcn.1400768c0
lea rcx, [rax + rax + 1]
call fcn.140075b98
mov r9, qword [rsp + 0x38]
mov r8, rbp
mov rsi, rax
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0x30]
mov dl, 0x20
mov rcx, rbx
mov qword [rsp + 0x20], rax
call fcn.14000e5f4
xor ecx, ecx
cmp eax, ecx
jne 0x14000e1b7
mov ecx, dword [rsp + 0x30]
mov rdx, rdi
movsxd rax, ecx
cmp byte [rax + rbp], 0x20
je 0x14000e049
cmp byte [rax + rbp], 9
jne 0x14000e04d
add ecx, edx
jmp 0x14000e03a
lea rax, [rsp + 0x30]
mov dword [rsp + 0x30], ecx
mov r9, rsi
mov r8, rbp
xor edx, edx
mov rcx, rbx
mov qword [rsp + 0x20], rax
call fcn.14000e5f4
lea rdx, [0x140096620]
mov rcx, rsi
call fcn.14008d4c4
xor ebp, ebp
cmp eax, ebp
jne 0x14000e08d
mov byte [rsp + 0xa0], dil
jmp 0x14000e1b7
lea rdx, str.down
mov rcx, rsi
call fcn.14008d4c4
cmp eax, ebp
jne 0x14000e0a8
mov r13b, dil
jmp 0x14000e1b7
lea rdx, [0x14009662c]
mov rcx, rsi
call fcn.14008d4c4
cmp eax, ebp
jne 0x14000e0c3
mov r15b, dil
jmp 0x14000e1b7
lea rdx, [0x140096630]
mov rcx, rsi
call fcn.14008d4c4
cmp eax, ebp
jne 0x14000e0e3
mov byte [rsp + 0xa8], dil
jmp 0x14000e1b7
cmp byte [rsi], 0x30
jne 0x14000e1a3
mov al, byte [rsi + 1]
cmp al, 0x78
je 0x14000e0fb
cmp al, 0x58
jne 0x14000e1a3
lea rcx, [rsi + 2]
call fcn.1400768c0
mov r11, rax
mov rax, rdi
sub r11d, eax
xor r10d, r10d
mov edx, eax
mov edi, r10d
mov r9d, r10d
movsxd r8, r11d
cmp r8, r10
jl 0x14000e175
mov cl, byte [r8 + rsi + 2]
cmp cl, 0x30
jl 0x14000e137
cmp cl, 0x39
jg 0x14000e137
movsx eax, cl
sub eax, 0x30
jmp 0x14000e159
cmp cl, 0x41
jl 0x14000e149
cmp cl, 0x46
jg 0x14000e149
movsx eax, cl
sub eax, 0x37
jmp 0x14000e159
cmp cl, 0x61
jl 0x14000e19e
cmp cl, 0x66
jg 0x14000e19e
movsx eax, cl
sub eax, 0x57
imul eax, edx
shl edx, 4
add edi, eax
mov eax, 1
add r9d, eax
sub r11d, eax
sub r8, rax
cmp r9d, 8
jl 0x14000e11b
cmp r11d, 0xffffffff
cmovne edi, r10d
cmp byte [rsi + 2], 0x30
mov r8d, edi
mov rcx, rsi
lea rdx, [0x140096634]
je 0x14000e197
lea rdx, [0x140096638]
call fcn.1400772f8
jmp 0x14000e1b7
mov edi, r10d
jmp 0x14000e17d
mov rcx, rsi
call fcn.140077394
mov edi, eax
cmp eax, ebp
mov eax, 1
cmovle edi, eax
mov rsi, qword [rsp + 0x38]
xor ebx, ebx
lea rbp, [0x1400a8bd0]
lea r12d, [rbx + 1]
mov rcx, qword [rbp]
mov rdx, rsi
call fcn.14008d4c4
cmp eax, ebx
je 0x14000e1ec
lea rax, reloc.WSOCK32.dll_accept
add rbp, 8
add r14d, r12d
cmp rbp, rax
jl 0x14000e1c9
mov rbx, qword [rsp + 0x90]
mov rsi, qword [rsp + 0x40]
mov r12b, byte [rsp + 0xa0]
cmp r14d, 0x62
jne 0x14000e254
mov rax, qword [rsp + 0x38]
xor ecx, ecx
cmp r13b, cl
je 0x14000e228
mov cl, byte [rax]
call qword [sym.imp.USER32.dll_VkKeyScanA]
movzx r11d, ax
movzx edx, r11b
jmp 0x14000e5c0
cmp r12b, cl
je 0x14000e242
mov cl, byte [rax]
call qword [sym.imp.USER32.dll_VkKeyScanA]
movzx r11d, ax
movzx edx, r11b
jmp 0x14000e3ba
mov dl, byte [rax]
mov r8d, edi
mov rcx, rbx
call fcn.14000d270
jmp 0x14000e5cb
movsxd rax, r14d
lea rcx, [0x140000000]
xor r14d, r14d
cmp byte [rax + rcx + 0xa8ee0], r14b
jne 0x14000e308
cmp r13b, r14b
je 0x14000e280
mov edx, dword [rcx + rax*4 + 0xa8f50]
jmp 0x14000e5c0
cmp r12b, r14b
je 0x14000e291
mov edx, dword [rcx + rax*4 + 0xa8f50]
jmp 0x14000e3ba
cmp r15b, r14b
je 0x14000e29b
mov r8b, 1
jmp 0x14000e2a8
cmp byte [rsp + 0xa8], r14b
je 0x14000e2bc
xor r8d, r8d
mov edx, dword [rcx + rax*4 + 0xa8f50]
mov rcx, rbx
call fcn.14000d1d4
jmp 0x14000e5cb
mov ebp, dword [rcx + rax*4 + 0xa8f50]
xor edx, edx
mov rcx, rbx
call fcn.14000d3c0
mov edx, dword [rbx + 0x18]
mov rcx, rbx
call fcn.14000d88c
cmp edi, r14d
je 0x14000e2f8
mov esi, 1
xor r8d, r8d
mov edx, ebp
mov rcx, rbx
call fcn.14000dd04
sub edi, esi
jne 0x14000e2e2
mov rsi, qword [rsp + 0x40]
mov edx, dword [rbx + 0x18]
mov rcx, rbx
call fcn.14000dacc
jmp 0x14000e5cb
mov ecx, dword [rcx + rax*4 + 0xa8f50]
cmp ecx, 7
jg 0x14000e436
je 0x14000e41b
cmp ecx, r14d
je 0x14000e400
mov eax, 1
sub ecx, eax
je 0x14000e3e5
sub ecx, eax
je 0x14000e3ca
sub ecx, eax
je 0x14000e3a1
sub ecx, eax
je 0x14000e386
sub ecx, eax
je 0x14000e36b
cmp ecx, eax
jne 0x14000e5cb
mov eax, dword [rbx + 0x18]
bt eax, 0xc
jb 0x14000e5cb
bts eax, 0xc
mov edx, 0x5b
jmp 0x14000e5bd
mov eax, dword [rbx + 0x18]
bt eax, 9
jae 0x14000e5cb
btc eax, 9
mov edx, reloc.WSOCK32.dll_recv
mov dword [rbx + 0x18], eax
jmp 0x14000e3ba
mov eax, dword [rbx + 0x18]
bt eax, 9
jb 0x14000e5cb
bts eax, 9
mov edx, reloc.WSOCK32.dll_recv
jmp 0x14000e5bd
mov eax, dword [rbx + 0x18]
bt eax, 8
jae 0x14000e5cb
btc eax, 8
mov dword [rbx + 0x18], eax
mov edx, reloc.WSOCK32.dll_select
mov rcx, rbx
xor r8d, r8d
call fcn.14000de68
jmp 0x14000e5cb
mov eax, dword [rbx + 0x18]
bt eax, 8
jb 0x14000e5cb
bts eax, 8
mov edx, reloc.WSOCK32.dll_select
jmp 0x14000e5bd
mov eax, dword [rbx + 0x18]
bt eax, 0xb
jae 0x14000e5cb
btc eax, 0xb
mov edx, reloc.WSOCK32.dll_recvfrom
mov dword [rbx + 0x18], eax
jmp 0x14000e3ba
mov eax, dword [rbx + 0x18]
bt eax, 0xb
jb 0x14000e5cb
bts eax, 0xb
mov edx, reloc.WSOCK32.dll_recvfrom
jmp 0x14000e5bd
mov eax, dword [rbx + 0x18]
bt eax, 0xc
jae 0x14000e5cb
btc eax, 0xc
mov edx, 0x5b
mov dword [rbx + 0x18], eax
jmp 0x14000e3ba
sub ecx, 8
je 0x14000e5ab
mov ebp, 1
sub ecx, ebp
je 0x14000e591
sub ecx, ebp
je 0x14000e54a
sub ecx, ebp
je 0x14000e52b
sub ecx, ebp
je 0x14000e504
sub ecx, ebp
je 0x14000e4ba
cmp ecx, ebp
jne 0x14000e5cb
cmp r13b, r14b
je 0x14000e490
mov eax, dword [rbx + 0x18]
bt eax, 0xa
jb 0x14000e5cb
bts eax, 0xa
mov edx, RegisterTypeLib
jmp 0x14000e5bd
cmp r12b, r14b
je 0x14000e4b3
mov eax, dword [rbx + 0x18]
bt eax, 0xa
jae 0x14000e5cb
btc eax, 0xa
mov edx, RegisterTypeLib
mov dword [rbx + 0x18], eax
jmp 0x14000e3ba
mov edx, RegisterTypeLib
jmp 0x14000e51b
cmp r13b, r14b
je 0x14000e4da
mov eax, dword [rbx + 0x18]
bt eax, 9
jb 0x14000e5cb
bts eax, 9
mov edx, RegisterTypeLib
jmp 0x14000e5bd
cmp r12b, r14b
je 0x14000e4fd
mov eax, dword [rbx + 0x18]
bt eax, 9
jae 0x14000e5cb
btc eax, 9
mov edx, RegisterTypeLib
mov dword [rbx + 0x18], eax
jmp 0x14000e3ba
mov edx, RegisterTypeLib
jmp 0x14000e51b
cmp r13b, r14b
jne 0x14000e3ca
cmp r12b, r14b
jne 0x14000e3a1
mov edx, reloc.WSOCK32.dll_select
xor r8d, r8d
mov rcx, rbx
call fcn.14000dd04
jmp 0x14000e5cb
mov edx, reloc.WSOCK32.dll_listen
cmp r13b, r14b
jne 0x14000e5c0
mov rcx, rbx
cmp r12b, r14b
jne 0x14000e3bd
mov r8b, bpl
jmp 0x14000e521
bt dword [rbx + 0x18], 8
jb 0x14000e560
xor r8d, r8d
mov rcx, rbx
lea edx, [r8 + 0x12]
call fcn.14000dd3c
mov al, byte [rsi]
cmp al, r14b
je 0x14000e585
mov rdi, rsi
movsx edx, al
xor r8d, r8d
mov rcx, rbx
add edx, 0x30
call fcn.14000dd04
add rdi, rbp
mov al, byte [rdi]
cmp al, r14b
jne 0x14000e56a
bt dword [rbx + 0x18], 8
jb 0x14000e5cb
jmp 0x14000e3b5
mov eax, dword [rbx + 0x18]
bt eax, 0xd
jae 0x14000e5cb
btc eax, 0xd
mov edx, 0x5c
mov dword [rbx + 0x18], eax
jmp 0x14000e3ba
mov eax, dword [rbx + 0x18]
bt eax, 0xd
jb 0x14000e5cb
bts eax, 0xd
mov edx, 0x5c
mov dword [rbx + 0x18], eax
xor r8d, r8d
mov rcx, rbx
call fcn.14000dd3c
mov rcx, qword [rsp + 0x38]
call fcn.140075884
mov rcx, rsi
mov rbx, qword [rsp + 0x98]
add rsp, 0x50
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
jmp fcn.140075884