Function at 0x1400181a0
Capabilities:
Access peb ldr_data
Encode data using xor
Hash data using fnv
Log keystrokes via polling
Resolve function by parsing pe exports

Disassembly:
mov r11, rsp
push rbp
lea rbp, [r11 - 0x5f]
sub rsp, 0xe0
mov rax, qword [0x1402e9060]
xor rax, rsp
mov qword [rbp + 0x37], rax
cmp byte [0x1402f8c78], 0
jne 0x14001879f
mov qword [r11 + 8], rbx
mov qword [r11 + 0x10], rsi
xor esi, esi
mov qword [r11 + 0x18], rdi
mov qword [r11 + 0x20], r14
movabs r14, 0x7fffffffffffffff
movaps xmmword [r11 - 0x18], xmm6
nop dword [rax + rax]
mov eax, dword [reloc.WS2_32.dll_accept]
inc eax
movsxd rbx, eax
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rdi, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
cmp rdi, 0x989680
jne 0x140018219
imul rax, rax, 0x64
jmp 0x140018237
cqo
idiv rdi
mov rcx, rax
imul rax, rdx, 0x3b9aca00
imul rcx, rcx, 0x3b9aca00
cqo
idiv rdi
add rax, rcx
mov qword [rbp - 0x59], rax
cmp rbx, 1
jl 0x140018261
imul rdx, rbx, 0xf4240
mov rcx, r14
sub rcx, rdx
cmp rax, rcx
jge 0x14001825d
lea rcx, [rdx + rax]
mov qword [rbp - 0x59], rcx
jmp 0x140018261
mov qword [rbp - 0x59], r14
lea rcx, [rbp - 0x59]
call fcn.140007b50
cmp byte [0x1402f8b75], sil
je 0x14001876a
cmp qword [0x1402fa5c0], rsi
je 0x14001876a
mov ecx, dword [0x1402f8b78]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x140018379
cmp byte [0x1402fa2b1], sil
je 0x14001876a
mov dword [rbp - 0x21], esi
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x1d], xmm0
mov dword [rbp - 0xd], 4
xorps xmm1, xmm1
movdqu xmmword [rbp - 9], xmm1
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
nop dword [rax]
nop word [rax + rax]
mov r10, qword [rax + 0x30]
movsxd rcx, dword [r10 + 0x3c]
mov edi, dword [rcx + r10 + 0x88]
add rdi, r10
cmp rdi, r10
je 0x140018357
mov r9d, dword [rdi + 0x18]
test r9d, r9d
je 0x140018357
mov ebx, dword [rdi + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
mov r8d, 0xe28c7a1f
lea rcx, [rbx + r9*4]
mov edx, dword [rcx + r10]
add rdx, r10
movzx ecx, byte [rdx]
inc rdx
test cl, cl
je 0x140018352
nop
movsx ecx, cl
lea rdx, [rdx + 1]
xor ecx, r8d
imul r8d, ecx, 0x1000193
movzx ecx, byte [rdx - 1]
test cl, cl
jne 0x140018330
cmp r8d, 0x5b7a25ff
je 0x14001835c
test r9d, r9d
jne 0x140018310
mov rax, qword [rax]
jmp 0x1400182e0
mov ecx, dword [rdi + 0x24]
add rcx, r10
movzx edx, word [rcx + r9*2]
mov ecx, dword [rdi + 0x1c]
add rcx, r10
mov eax, dword [rcx + rdx*4]
lea rdx, [rbp - 0x21]
jmp 0x140018754
mov rcx, qword [0x1402fa1c0]
test rcx, rcx
je 0x1400183b0
cmp dword [0x1402fa12c], esi
je 0x1400183b0
mov rdx, qword [0x1402fa3b0]
lea r8, [rbp + 7]
mov r9d, 8
mov qword [rsp + 0x20], rsi
call qword [sym.imp.KERNEL32.dll_ReadProcessMemory]
mov rcx, qword [0x1402fa1c0]
mov rdi, qword [rbp + 7]
mov qword [rbp - 0x31], rdi
test rdi, rdi
je 0x14001867f
movaps xmm0, xmmword [0x1402fa5c0]
movaps xmm6, xmmword [0x1402fa5d0]
movups xmmword [rbp - 0x21], xmm0
test rcx, rcx
je 0x140018400
cmp dword [0x1402fa12c], esi
je 0x140018400
lea rdx, [rdi + 0x90]
mov qword [rsp + 0x20], rsi
mov r9d, recvfrom
lea r8, [rbp - 0x51]
call qword [sym.imp.KERNEL32.dll_ReadProcessMemory]
mov rdi, qword [rbp - 0x31]
movaps xmm0, xmm6
movaps xmm1, xmm6
shufps xmm1, xmm6, 0xaa
subss xmm1, dword [rbp - 0x4d]
shufps xmm0, xmm6, 0x55
subss xmm0, dword [rbp - 0x51]
shufps xmm6, xmm6, 0xff
subss xmm6, dword [rbp - 0x49]
mulss xmm1, xmm1
mulss xmm0, xmm0
mulss xmm6, xmm6
addss xmm1, xmm0
xorps xmm0, xmm0
addss xmm1, xmm6
ucomiss xmm0, xmm1
ja 0x140018446
xorps xmm0, xmm0
sqrtss xmm0, xmm1
jmp 0x14001844e
movaps xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
movd xmm1, dword [0x1402f8b80]
mov rcx, rdi
cvtdq2ps xmm1, xmm1
comiss xmm0, xmm1
setbe bl
call fcn.140018110
test al, al
je 0x140018478
cmp byte [0x1402f8b7c], sil
movzx ebx, bl
cmove ebx, esi
cmp byte [0x1402f8b59], sil
mov rcx, qword [0x1402fa1c0]
je 0x1400184cf
mov rdx, qword [rbp - 0x31]
test rdx, rdx
je 0x1400184cd
test rcx, rcx
je 0x1400184c1
cmp dword [0x1402fa12c], esi
je 0x1400184c1
add rdx, qword [0x1402fa108]
lea r8, [rbp - 0x29]
mov r9d, 1
mov qword [rsp + 0x20], rsi
call qword [sym.imp.KERNEL32.dll_ReadProcessMemory]
mov rcx, qword [0x1402fa1c0]
movzx eax, byte [rbp - 0x29]
test al, 0xdb
jne 0x1400184cf
cmp al, 0x20
je 0x1400184cf
xor bl, bl
test rcx, rcx
je 0x1400184f8
cmp dword [0x1402fa12c], esi
je 0x1400184f8
mov rdx, qword [0x1402fa3a8]
lea r8, [rbp - 0x28]
mov r9d, 1
mov qword [rsp + 0x20], rsi
call qword [sym.imp.KERNEL32.dll_ReadProcessMemory]
cmp byte [rbp - 0x28], sil
lea r8, [rbp - 0x31]
lea rdx, [rbp - 0x41]
cmove ebx, esi
call fcn.1400187c0
mov edx, esi
mov rcx, qword [rax]
movzx eax, bl
cmp byte [rcx + 0x58], dl
cmove edx, eax
test dl, dl
je 0x14001867f
cmp byte [0x1402fa2b1], sil
jne 0x14001876a
movsxd rbx, dword [0x1402f8b84]
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rdi, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
cmp rdi, 0x989680
jne 0x140018554
imul rax, rax, 0x64
jmp 0x140018572
cqo
idiv rdi
mov rcx, rax
imul rax, rdx, 0x3b9aca00
imul rcx, rcx, 0x3b9aca00
cqo
idiv rdi
add rax, rcx
mov qword [rbp - 0x59], rax
cmp rbx, 1
jl 0x14001859c
imul rdx, rbx, 0xf4240
mov rcx, r14
sub rcx, rdx
cmp rax, rcx
jge 0x140018598
lea rcx, [rdx + rax]
mov qword [rbp - 0x59], rcx
jmp 0x14001859c
mov qword [rbp - 0x59], r14
lea rcx, [rbp - 0x59]
call fcn.140007b50
mov dword [rbp - 0x21], esi
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x1d], xmm0
mov dword [rbp - 0xd], 2
xorps xmm1, xmm1
movdqu xmmword [rbp - 9], xmm1
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
mov r10, qword [rax + 0x30]
movsxd rcx, dword [r10 + 0x3c]
mov edi, dword [rcx + r10 + 0x88]
add rdi, r10
cmp rdi, r10
je 0x140018647
mov r9d, dword [rdi + 0x18]
test r9d, r9d
je 0x140018647
mov ebx, dword [rdi + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
mov r8d, 0x36398c6b
lea rcx, [rbx + r9*4]
mov edx, dword [rcx + r10]
add rdx, r10
movzx ecx, byte [rdx]
inc rdx
test cl, cl
je 0x140018642
nop
movsx ecx, cl
lea rdx, [rdx + 1]
xor ecx, r8d
imul r8d, ecx, 0x1000193
movzx ecx, byte [rdx - 1]
test cl, cl
jne 0x140018620
cmp r8d, 0xce0c9e13
je 0x14001864c
test r9d, r9d
jne 0x140018600
mov rax, qword [rax]
jmp 0x1400185d0
mov ecx, dword [rdi + 0x24]
mov r8d, Ordinal_41
add rcx, r10
movzx edx, word [rcx + r9*2]
mov ecx, dword [rdi + 0x1c]
add rcx, r10
mov eax, dword [rcx + rdx*4]
lea rdx, [rbp - 0x21]
add rax, r10
lea ecx, [r8 - 0x27]
call rax
mov byte [0x1402fa2b1], 1
jmp 0x14001876a
cmp byte [0x1402fa2b1], sil
je 0x14001876a
mov dword [rbp + 0xf], esi
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x13], xmm0
mov dword [rbp + 0x23], 4
xorps xmm1, xmm1
movdqu xmmword [rbp + 0x27], xmm1
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
nop word [rax + rax]
mov r10, qword [rax + 0x30]
movsxd rcx, dword [r10 + 0x3c]
mov edi, dword [rcx + r10 + 0x88]
add rdi, r10
cmp rdi, r10
je 0x140018737
mov r9d, dword [rdi + 0x18]
test r9d, r9d
je 0x140018737
mov ebx, dword [rdi + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
mov r8d, 0x93a807ea
lea rcx, [rbx + r9*4]
mov edx, dword [rcx + r10]
add rdx, r10
movzx ecx, byte [rdx]
inc rdx
test cl, cl
je 0x140018732
nop
movsx ecx, cl
lea rdx, [rdx + 1]
xor ecx, r8d
imul r8d, ecx, 0x1000193
movzx ecx, byte [rdx - 1]
test cl, cl
jne 0x140018710
cmp r8d, 0x8e465cbc
je 0x14001873c
test r9d, r9d
jne 0x1400186f0
mov rax, qword [rax]
jmp 0x1400186c0
mov ecx, dword [rdi + 0x24]
add rcx, r10
movzx edx, word [rcx + r9*2]
mov ecx, dword [rdi + 0x1c]
add rcx, r10
mov eax, dword [rcx + rdx*4]
lea rdx, [rbp + 0xf]
mov r8d, Ordinal_41
add rax, r10
lea ecx, [r8 - 0x27]
call rax
mov byte [0x1402fa2b1], sil
cmp byte [0x1402f8c78], sil
je 0x1400181f0
movaps xmm6, xmmword [rsp + 0xd0]
mov r14, qword [rsp + 0x108]
mov rdi, qword [rsp + 0x100]
mov rsi, qword [rsp + 0xf8]
mov rbx, qword [rsp + 0xf0]
mov rcx, qword [rbp + 0x37]
xor rcx, rsp
call fcn.1400c8490
add rsp, 0xe0
pop rbp
ret