Function at 0x140001690
Capabilities:
Log keystrokes
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0xc0]
sub rsp, 0x1c0
mov rax, qword [0x140006040]
xor rax, rsp
mov qword [rbp + 0xb0], rax
xorps xmm0, xmm0
xor r12d, r12d
movdqu xmmword [rsp + 0x58], xmm0
mov r14d, r12d
mov qword [rsp + 0x68], r12
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rbx, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
movabs r9, 0xb2f4fc0794908cf3
mov rcx, rax
cmp rbx, 0x989680
jne 0x140001707
imul rbx, rcx, 0x64
jmp 0x14000177b
cmp rbx, 0x16e3600
jne 0x14000175a
mov rax, r9
imul rcx
lea r8, [rcx + rdx]
sar r8, 0x18
mov rax, r8
shr rax, 0x3f
add r8, rax
imul rax, r8, 0x16e3600
sub rcx, rax
mov rax, r9
imul rcx, rcx, 0x3b9aca00
imul rcx
lea rbx, [rcx + rdx]
sar rbx, 0x18
mov rax, rbx
shr rax, 0x3f
add rbx, rax
imul rax, r8, 0x3b9aca00
jmp 0x140001778
cqo
idiv rbx
mov rcx, rax
imul rax, rdx, 0x3b9aca00
cqo
idiv rbx
mov rbx, rax
imul rax, rcx, 0x3b9aca00
add rbx, rax
mov rsi, qword [rsp + 0x60]
mov qword [rsp + 0x40], rbx
movabs r15, 0x3e0000007f
movabs rdi, 0x77ff83ffffff
mov ebx, 0xffff8001
mov r13d, 8
mov ecx, r13d
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
cmp ax, bx
jne 0x1400020a4
lea eax, [r13 - 0x20]
cmp eax, 0x19
jbe 0x140001fe5
lea eax, [r13 - 0x41]
cmp eax, 0x2e
ja 0x1400017d8
cdqe
bt rdi, rax
jb 0x140001fe5
lea eax, [r13 - 0xba]
cmp eax, 0x25
ja 0x1400017f0
cdqe
bt r15, rax
jb 0x140001fe5
cmp r13d, 8
jne 0x140001b38
mov byte [rsp + 0x30], 0x3a
cmp rsi, r14
je 0x140001811
mov byte [rsi], 0x3a
inc rsi
mov qword [rsp + 0x60], rsi
jmp 0x14000182d
lea r8, [rsp + 0x30]
mov rdx, rsi
lea rcx, [rsp + 0x58]
call fcn.140002880
mov r14, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x60]
mov byte [rsp + 0x30], 0x61
cmp rsi, r14
je 0x140001844
mov byte [rsi], 0x61
inc rsi
mov qword [rsp + 0x60], rsi
jmp 0x140001860
lea r8, [rsp + 0x30]
mov rdx, rsi
lea rcx, [rsp + 0x58]
call fcn.140002880
mov r14, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x60]
mov byte [rsp + 0x30], 0x72
cmp rsi, r14
je 0x140001877
mov byte [rsi], 0x72
inc rsi
mov qword [rsp + 0x60], rsi
jmp 0x140001893
lea r8, [rsp + 0x30]
mov rdx, rsi
lea rcx, [rsp + 0x58]
call fcn.140002880
mov r14, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x60]
mov byte [rsp + 0x30], 0x72
cmp rsi, r14
je 0x1400018aa
mov byte [rsi], 0x72
inc rsi
mov qword [rsp + 0x60], rsi
jmp 0x1400018c6
lea r8, [rsp + 0x30]
mov rdx, rsi
lea rcx, [rsp + 0x58]
call fcn.140002880
mov r14, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x60]
mov byte [rsp + 0x30], 0x6f
cmp rsi, r14
je 0x1400018dd
mov byte [rsi], 0x6f
inc rsi
mov qword [rsp + 0x60], rsi
jmp 0x1400018f9
lea r8, [rsp + 0x30]
mov rdx, rsi
lea rcx, [rsp + 0x58]
call fcn.140002880
mov r14, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x60]
mov byte [rsp + 0x30], 0x77
cmp rsi, r14
je 0x140001910
mov byte [rsi], 0x77
inc rsi
mov qword [rsp + 0x60], rsi
jmp 0x14000192c
lea r8, [rsp + 0x30]
mov rdx, rsi
lea rcx, [rsp + 0x58]
call fcn.140002880
mov r14, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x60]
mov byte [rsp + 0x30], 0x5f
cmp rsi, r14
je 0x140001943
mov byte [rsi], 0x5f
inc rsi
mov qword [rsp + 0x60], rsi
jmp 0x14000195f
lea r8, [rsp + 0x30]
mov rdx, rsi
lea rcx, [rsp + 0x58]
call fcn.140002880
mov r14, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x60]
mov byte [rsp + 0x30], 0x62
cmp rsi, r14
je 0x140001976
mov byte [rsi], 0x62
inc rsi
mov qword [rsp + 0x60], rsi
jmp 0x140001992
lea r8, [rsp + 0x30]
mov rdx, rsi
lea rcx, [rsp + 0x58]
call fcn.140002880
mov r14, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x60]
mov byte [rsp + 0x30], 0x61
cmp rsi, r14
je 0x1400019a9
mov byte [rsi], 0x61
inc rsi
mov qword [rsp + 0x60], rsi
jmp 0x1400019c5
lea r8, [rsp + 0x30]
mov rdx, rsi
lea rcx, [rsp + 0x58]
call fcn.140002880
mov r14, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x60]
mov byte [rsp + 0x30], 0x63
cmp rsi, r14
je 0x1400019dc
mov byte [rsi], 0x63
inc rsi
mov qword [rsp + 0x60], rsi
jmp 0x1400019f8
lea r8, [rsp + 0x30]
mov rdx, rsi
lea rcx, [rsp + 0x58]
call fcn.140002880
mov r14, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x60]
mov byte [rsp + 0x30], 0x6b
cmp rsi, r14
je 0x140001a0f
mov byte [rsi], 0x6b
inc rsi
mov qword [rsp + 0x60], rsi
jmp 0x140001a2b
lea r8, [rsp + 0x30]
mov rdx, rsi
lea rcx, [rsp + 0x58]
call fcn.140002880
mov r14, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x60]
mov byte [rsp + 0x30], 0x77
cmp rsi, r14
je 0x140001a42
mov byte [rsi], 0x77
inc rsi
mov qword [rsp + 0x60], rsi
jmp 0x140001a5e
lea r8, [rsp + 0x30]
mov rdx, rsi
lea rcx, [rsp + 0x58]
call fcn.140002880
mov r14, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x60]
mov byte [rsp + 0x30], 0x61
cmp rsi, r14
je 0x140001a75
mov byte [rsi], 0x61
inc rsi
mov qword [rsp + 0x60], rsi
jmp 0x140001a91
lea r8, [rsp + 0x30]
mov rdx, rsi
lea rcx, [rsp + 0x58]
call fcn.140002880
mov r14, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x60]
mov byte [rsp + 0x30], 0x72
cmp rsi, r14
je 0x140001aa8
mov byte [rsi], 0x72
inc rsi
mov qword [rsp + 0x60], rsi
jmp 0x140001ac4
lea r8, [rsp + 0x30]
mov rdx, rsi
lea rcx, [rsp + 0x58]
call fcn.140002880
mov r14, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x60]
mov byte [rsp + 0x30], 0x64
cmp rsi, r14
je 0x140001adb
mov byte [rsi], 0x64
inc rsi
mov qword [rsp + 0x60], rsi
jmp 0x140001af7
lea r8, [rsp + 0x30]
mov rdx, rsi
lea rcx, [rsp + 0x58]
call fcn.140002880
mov r14, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x60]
mov byte [rsp + 0x30], 0x3a
cmp rsi, r14
je 0x140001b14
mov byte [rsi], 0x3a
inc rsi
mov qword [rsp + 0x60], rsi
inc r13d
jmp 0x1400017a4
lea r8, [rsp + 0x30]
mov rdx, rsi
lea rcx, [rsp + 0x58]
call fcn.140002880
mov r14, qword [rsp + 0x68]
inc r13d
mov rsi, qword [rsp + 0x60]
jmp 0x1400017a4
cmp r13d, 0xd
jne 0x1400020a4
mov byte [rsp + 0x30], 0x3a
cmp rsi, r14
je 0x140001b59
mov byte [rsi], 0x3a
inc rsi
mov qword [rsp + 0x60], rsi
jmp 0x140001b75
lea r8, [rsp + 0x30]
mov rdx, rsi
lea rcx, [rsp + 0x58]
call fcn.140002880
mov r14, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x60]
mov byte [rsp + 0x30], 0x62
cmp rsi, r14
je 0x140001b8c
mov byte [rsi], 0x62
inc rsi
mov qword [rsp + 0x60], rsi
jmp 0x140001ba8
lea r8, [rsp + 0x30]
mov rdx, rsi
lea rcx, [rsp + 0x58]
call fcn.140002880
mov r14, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x60]
mov byte [rsp + 0x30], 0x61
cmp rsi, r14
je 0x140001bbf
mov byte [rsi], 0x61
inc rsi
mov qword [rsp + 0x60], rsi
jmp 0x140001bdb
lea r8, [rsp + 0x30]
mov rdx, rsi
lea rcx, [rsp + 0x58]
call fcn.140002880
mov r14, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x60]
mov byte [rsp + 0x30], 0x6c
cmp rsi, r14
je 0x140001bf2
mov byte [rsi], 0x6c
inc rsi
mov qword [rsp + 0x60], rsi
jmp 0x140001c0e
lea r8, [rsp + 0x30]
mov rdx, rsi
lea rcx, [rsp + 0x58]
call fcn.140002880
mov r14, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x60]
mov byte [rsp + 0x30], 0x6c
cmp rsi, r14
je 0x140001c25
mov byte [rsi], 0x6c
inc rsi
mov qword [rsp + 0x60], rsi
jmp 0x140001c41
lea r8, [rsp + 0x30]
mov rdx, rsi
lea rcx, [rsp + 0x58]
call fcn.140002880
mov r14, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x60]
mov byte [rsp + 0x30], 0x6f
cmp rsi, r14
je 0x140001c58
mov byte [rsi], 0x6f
inc rsi
mov qword [rsp + 0x60], rsi
jmp 0x140001c74
lea r8, [rsp + 0x30]
mov rdx, rsi
lea rcx, [rsp + 0x58]
call fcn.140002880
mov r14, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x60]
mov byte [rsp + 0x30], 0x74
cmp rsi, r14
je 0x140001c8b
mov byte [rsi], 0x74
inc rsi
mov qword [rsp + 0x60], rsi
jmp 0x140001ca7
lea r8, [rsp + 0x30]
mov rdx, rsi
lea rcx, [rsp + 0x58]
call fcn.140002880
mov r14, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x60]
mov byte [rsp + 0x30], 0x5f
cmp rsi, r14
je 0x140001cbe
mov byte [rsi], 0x5f
inc rsi
mov qword [rsp + 0x60], rsi
jmp 0x140001cda
lea r8, [rsp + 0x30]
mov rdx, rsi
lea rcx, [rsp + 0x58]
call fcn.140002880
mov r14, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x60]
mov byte [rsp + 0x30], 0x62
cmp rsi, r14
je 0x140001cf1
mov byte [rsi], 0x62
inc rsi
mov qword [rsp + 0x60], rsi
jmp 0x140001d0d
lea r8, [rsp + 0x30]
mov rdx, rsi
lea rcx, [rsp + 0x58]
call fcn.140002880
mov r14, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x60]
mov byte [rsp + 0x30], 0x6f
cmp rsi, r14
je 0x140001d24
mov byte [rsi], 0x6f
inc rsi
mov qword [rsp + 0x60], rsi
jmp 0x140001d40
lea r8, [rsp + 0x30]
mov rdx, rsi
lea rcx, [rsp + 0x58]
call fcn.140002880
mov r14, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x60]
mov byte [rsp + 0x30], 0x78
cmp rsi, r14
je 0x140001d57
mov byte [rsi], 0x78
inc rsi
mov qword [rsp + 0x60], rsi
jmp 0x140001d73
lea r8, [rsp + 0x30]
mov rdx, rsi
lea rcx, [rsp + 0x58]
call fcn.140002880
mov r14, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x60]
mov byte [rsp + 0x30], 0x5f
cmp rsi, r14
je 0x140001d8a
mov byte [rsi], 0x5f
inc rsi
mov qword [rsp + 0x60], rsi
jmp 0x140001da6
lea r8, [rsp + 0x30]
mov rdx, rsi
lea rcx, [rsp + 0x58]
call fcn.140002880
mov r14, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x60]
mov byte [rsp + 0x30], 0x77
cmp rsi, r14
je 0x140001dbd
mov byte [rsi], 0x77
inc rsi
mov qword [rsp + 0x60], rsi
jmp 0x140001dd9
lea r8, [rsp + 0x30]
mov rdx, rsi
lea rcx, [rsp + 0x58]
call fcn.140002880
mov r14, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x60]
mov byte [rsp + 0x30], 0x69
cmp rsi, r14
je 0x140001df0
mov byte [rsi], 0x69
inc rsi
mov qword [rsp + 0x60], rsi
jmp 0x140001e0c
lea r8, [rsp + 0x30]
mov rdx, rsi
lea rcx, [rsp + 0x58]
call fcn.140002880
mov r14, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x60]
mov byte [rsp + 0x30], 0x74
cmp rsi, r14
je 0x140001e23
mov byte [rsi], 0x74
inc rsi
mov qword [rsp + 0x60], rsi
jmp 0x140001e3f
lea r8, [rsp + 0x30]
mov rdx, rsi
lea rcx, [rsp + 0x58]
call fcn.140002880
mov r14, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x60]
mov byte [rsp + 0x30], 0x68
cmp rsi, r14
je 0x140001e56
mov byte [rsi], 0x68
inc rsi
mov qword [rsp + 0x60], rsi
jmp 0x140001e72
lea r8, [rsp + 0x30]
mov rdx, rsi
lea rcx, [rsp + 0x58]
call fcn.140002880
mov r14, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x60]
mov byte [rsp + 0x30], 0x5f
cmp rsi, r14
je 0x140001e89
mov byte [rsi], 0x5f
inc rsi
mov qword [rsp + 0x60], rsi
jmp 0x140001ea5
lea r8, [rsp + 0x30]
mov rdx, rsi
lea rcx, [rsp + 0x58]
call fcn.140002880
mov r14, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x60]
mov byte [rsp + 0x30], 0x63
cmp rsi, r14
je 0x140001ebc
mov byte [rsi], 0x63
inc rsi
mov qword [rsp + 0x60], rsi
jmp 0x140001ed8
lea r8, [rsp + 0x30]
mov rdx, rsi
lea rcx, [rsp + 0x58]
call fcn.140002880
mov r14, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x60]
mov byte [rsp + 0x30], 0x68
cmp rsi, r14
je 0x140001eef
mov byte [rsi], 0x68
inc rsi
mov qword [rsp + 0x60], rsi
jmp 0x140001f0b
lea r8, [rsp + 0x30]
mov rdx, rsi
lea rcx, [rsp + 0x58]
call fcn.140002880
mov r14, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x60]
mov byte [rsp + 0x30], 0x65
cmp rsi, r14
je 0x140001f22
mov byte [rsi], 0x65
inc rsi
mov qword [rsp + 0x60], rsi
jmp 0x140001f3e
lea r8, [rsp + 0x30]
mov rdx, rsi
lea rcx, [rsp + 0x58]
call fcn.140002880
mov r14, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x60]
mov byte [rsp + 0x30], 0x63
cmp rsi, r14
je 0x140001f55
mov byte [rsi], 0x63
inc rsi
mov qword [rsp + 0x60], rsi
jmp 0x140001f71
lea r8, [rsp + 0x30]
mov rdx, rsi
lea rcx, [rsp + 0x58]
call fcn.140002880
mov r14, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x60]
mov byte [rsp + 0x30], 0x6b
cmp rsi, r14
je 0x140001f88
mov byte [rsi], 0x6b
inc rsi
mov qword [rsp + 0x60], rsi
jmp 0x140001fa4
lea r8, [rsp + 0x30]
mov rdx, rsi
lea rcx, [rsp + 0x58]
call fcn.140002880
mov r14, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x60]
mov byte [rsp + 0x30], 0x3a
cmp rsi, r14
je 0x140001fc1
mov byte [rsi], 0x3a
inc rsi
mov qword [rsp + 0x60], rsi
inc r13d
jmp 0x1400017a4
lea r8, [rsp + 0x30]
mov rdx, rsi
lea rcx, [rsp + 0x58]
call fcn.140002880
mov r14, qword [rsp + 0x68]
inc r13d
mov rsi, qword [rsp + 0x60]
jmp 0x1400017a4
mov ecx, 0x10
call qword [sym.imp.USER32.dll_GetKeyState]
movzx edi, ax
mov ecx, 0x14
shr edi, 0xf
call qword [sym.imp.USER32.dll_GetKeyState]
movzx r15d, ax
lea rcx, [rbp - 0x50]
and r15b, 1
call qword [sym.imp.USER32.dll_GetKeyboardState]
xor edx, edx
mov ecx, r13d
call qword [sym.imp.USER32.dll_MapVirtualKeyW]
lea r9, [rsp + 0x70]
mov dword [rsp + 0x20], r12d
mov edx, eax
lea r8, [rbp - 0x50]
mov ecx, r13d
call qword [sym.imp.USER32.dll_ToAscii]
test dil, 1
je 0x140002062
test r15b, r15b
je 0x140002067
movsx ecx, byte [rsp + 0x70]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_tolower]
mov byte [rsp + 0x30], al
cmp rsi, r14
je 0x140002074
mov byte [rsi], al
inc rsi
mov qword [rsp + 0x60], rsi
jmp 0x140002090
test r15b, r15b
je 0x140002042
movsx ecx, byte [rsp + 0x70]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_toupper]
jmp 0x14000204d
lea r8, [rsp + 0x30]
mov rdx, rsi
lea rcx, [rsp + 0x58]
call fcn.140002880
mov r14, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x60]
movabs r15, 0x3e0000007f
movabs rdi, 0x77ff83ffffff
inc r13d
cmp r13d, 0xff
jle 0x1400017a4
mov rbx, qword [rsp + 0x40]
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rdi, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
mov rcx, rax
cmp rdi, 0x989680
jne 0x1400020da
imul rax, rcx, 0x64
jmp 0x140002158
cmp rdi, 0x16e3600
jne 0x14000213a
movabs r13, 0xb2f4fc0794908cf3
mov rax, r13
imul rcx
lea r8, [rcx + rdx]
sar r8, 0x18
mov rax, r8
shr rax, 0x3f
add r8, rax
imul rax, r8, 0x16e3600
sub rcx, rax
mov rax, r13
imul rcx, rcx, 0x3b9aca00
imul rcx
lea rax, [rcx + rdx]
sar rax, 0x18
mov rcx, rax
shr rcx, 0x3f
add rax, rcx
imul rcx, r8, 0x3b9aca00
add rax, rcx
jmp 0x140002162
cqo
idiv rdi
mov rcx, rax
imul rax, rdx, 0x3b9aca00
imul rcx, rcx, 0x3b9aca00
cqo
idiv rdi
add rax, rcx
movabs r13, 0xb2f4fc0794908cf3
sub rax, rbx
movabs rcx, 0x2540be400
cmp rax, rcx
jl 0x1400023ac
mov r12, qword [rsp + 0x58]
xorps xmm0, xmm0
movups xmmword [rsp + 0x78], xmm0
cmp r12, rsi
jne 0x1400021a4
mov qword [rbp - 0x78], 0
mov qword [rbp - 0x70], 0xf
mov byte [rsp + 0x78], 0
jmp 0x140002280
mov rdi, rsi
movabs rax, 0x7fffffffffffffff
sub rdi, r12
cmp rdi, rax
ja 0x1400024fa
cmp rdi, 0xf
ja 0x1400021e9
mov r8, rdi
mov qword [rbp - 0x78], rdi
mov rdx, r12
mov qword [rbp - 0x70], 0xf
lea rcx, [rsp + 0x78]
call sub.VCRUNTIME140.dll_memcpy
mov byte [rsp + rdi + 0x78], 0
jmp 0x140002280
mov rbx, rdi
or rbx, 0xf
cmp rbx, rax
jbe 0x140002208
mov rbx, rax
movabs rax, 0x8000000000000000
add rax, 0x27
jmp 0x14000222f
cmp rbx, 0x16
mov eax, 0x16
cmovb rbx, rax
lea rcx, [rbx + 1]
cmp rcx, 0x1000
jb 0x14000224e
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x1400024da
mov rcx, rax
call fcn.140002b50
test rax, rax
je 0x1400024e0
lea r15, [rax + 0x27]
and r15, 0xffffffffffffffe0
mov qword [r15 - 8], rax
jmp 0x140002260
test rcx, rcx
je 0x14000225d
call fcn.140002b50
mov r15, rax
jmp 0x140002260
xor r15d, r15d
mov r8, rdi
mov qword [rsp + 0x78], r15
mov rdx, r12
mov qword [rbp - 0x78], rdi
mov rcx, r15
mov qword [rbp - 0x70], rbx
call sub.VCRUNTIME140.dll_memcpy
mov byte [r15 + rdi], 0
lea r8, [rsp + 0x78]
lea rcx, [rbp - 0x60]
call fcn.1400026f0
cmp dword [rbp - 0x58], 0
je 0x1400024ee
movaps xmm0, xmmword [rbp - 0x60]
lea rcx, [rsp + 0x40]
movdqa xmmword [rsp + 0x40], xmm0
call qword [sym.imp.MSVCP140.dll__Thrd_detach]
test eax, eax
jne 0x1400024ee
xorps xmm0, xmm0
cmp r12, rsi
movdqa xmmword [rbp - 0x60], xmm0
cmovne rsi, r12
mov qword [rsp + 0x60], rsi
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rbx, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
mov rcx, rax
cmp rbx, 0x989680
jne 0x1400022ea
imul rbx, rcx, 0x64
jmp 0x14000235e
cmp rbx, 0x16e3600
jne 0x14000233d
mov rax, r13
imul rcx
lea r8, [rcx + rdx]
sar r8, 0x18
mov rax, r8
shr rax, 0x3f
add r8, rax
imul rax, r8, 0x16e3600
sub rcx, rax
mov rax, r13
imul rcx, rcx, 0x3b9aca00
imul rcx
lea rbx, [rcx + rdx]
sar rbx, 0x18
mov rax, rbx
shr rax, 0x3f
add rbx, rax
imul rax, r8, 0x3b9aca00
jmp 0x14000235b
cqo
idiv rbx
mov rcx, rax
imul rax, rdx, 0x3b9aca00
cqo
idiv rbx
mov rbx, rax
imul rax, rcx, 0x3b9aca00
add rbx, rax
cmp dword [rbp - 0x58], 0
mov qword [rsp + 0x40], rbx
jne 0x1400024e7
mov rdx, qword [rbp - 0x70]
cmp rdx, 0xf
jbe 0x1400023a9
mov rcx, qword [rsp + 0x78]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400023a4
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400024e0
call fcn.140002dcc
xor r12d, r12d
lea rcx, [rsp + 0x50]
call fcn.1400011f0
mov rax, qword [rsp + 0x50]
movabs rcx, 0x7ffffffffa0a1eff
lea r15, [rax + 0x5f5e100]
cmp rax, rcx
jl 0x1400023db
movabs r15, 0x7fffffffffffffff
movabs rbx, 0x431bde82d7b634db
movabs r14, 0x4e94914f0000
nop
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rdi, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
mov rcx, rax
cmp rdi, 0x989680
jne 0x140002411
imul rax, rcx, 0x64
jmp 0x140002482
cmp rdi, 0x16e3600
jne 0x140002464
mov rax, r13
imul rcx
lea r8, [rcx + rdx]
sar r8, 0x18
mov rax, r8
shr rax, 0x3f
add r8, rax
imul rax, r8, 0x16e3600
sub rcx, rax
mov rax, r13
imul rcx, rcx, 0x3b9aca00
imul rcx
lea rax, [rcx + rdx]
sar rax, 0x18
mov rcx, rax
shr rcx, 0x3f
add rax, rcx
imul rcx, r8, 0x3b9aca00
jmp 0x14000247f
cqo
idiv rdi
mov rcx, rax
imul rax, rdx, 0x3b9aca00
cqo
idiv rdi
imul rcx, rcx, 0x3b9aca00
add rax, rcx
cmp rax, r15
jge 0x1400024d0
mov rcx, r15
sub rcx, rax
cmp rcx, r14
jl 0x1400024a1
mov ecx, 0x5265c00
call sub.KERNEL32.dll_Sleep
jmp 0x1400023f0
mov rax, rbx
imul rcx
sar rdx, 0x12
mov rax, rdx
shr rax, 0x3f
add rdx, rax
imul rax, rdx, 0xf4240
cmp rax, rcx
jge 0x1400024c4
inc rdx
mov ecx, edx
call sub.KERNEL32.dll_Sleep
jmp 0x1400023f0
mov r14, qword [rsp + 0x68]
jmp 0x140001785
call fcn.140001130
int3
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_terminate]
int3
mov ecx, 1
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
int3
call fcn.1400011d0
int3