Function at 0x1801313e0
Capabilities:
Get keyboard layout
Log keystrokes via polling

Disassembly:
mov rax, rsp
mov qword [rax + 0x18], rbx
mov dword [rax + 0x10], edx
mov qword [rax + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x108]
sub rsp, 0x1d0
movaps xmmword [rax - 0x48], xmm6
movaps xmmword [rax - 0x58], xmm7
movaps xmmword [rax - 0x68], xmm8
movaps xmmword [rax - 0x78], xmm9
movaps xmmword [rax - 0x88], xmm10
movaps xmmword [rax - 0x98], xmm12
movaps xmmword [rax - 0xa8], xmm13
movaps xmm13, xmm2
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x78], xmm0
xor esi, esi
mov r13d, esi
mov qword [rsp + 0x70], rsi
mov qword [rbp - 0x78], rsi
movdqu xmmword [rbp - 0x60], xmm0
mov r12d, esi
mov qword [rsp + 0x38], rsi
mov qword [rbp - 0x50], rsi
movdqu xmmword [rbp - 0x48], xmm0
mov qword [rbp - 0x38], rsi
movdqu xmmword [rsp + 0x58], xmm0
mov qword [rsp + 0x68], rsi
xorps xmm7, xmm7
xorps xmm8, xmm8
call fcn.180098630
test al, al
je 0x1801314c8
movsxd rcx, dword [0x180335058]
add rcx, qword [0x18033c788]
call fcn.18012c0b0
movaps xmm7, xmm0
movsxd rcx, dword [0x18033505c]
add rcx, qword [0x18033c788]
call fcn.18012c0b0
movaps xmm8, xmm0
movsxd rcx, dword [0x180335058]
mov rax, qword [0x18033c788]
add rax, 4
add rcx, rax
call fcn.18012c0b0
mov qword [rbp - 0x70], 0
mov dword [rbp - 0x68], 0
call fcn.180098630
movss xmm12, dword [0x1802f7d44]
test al, al
je 0x180131547
movsxd rcx, dword [0x180335058]
add rcx, qword [0x18033c788]
call fcn.18012c0b0
mulss xmm0, xmm12
movss dword [rbp - 0x70], xmm0
movsxd rcx, dword [0x18033505c]
add rcx, qword [0x18033c788]
call fcn.18012c0b0
mulss xmm0, xmm12
movss dword [rbp - 0x6c], xmm0
movsxd rcx, dword [0x180335058]
mov rax, qword [0x18033c788]
add rax, 4
add rcx, rax
call fcn.18012c0b0
mulss xmm0, xmm12
movss dword [rbp - 0x68], xmm0
call fcn.1800e4fd0
mov r15, rax
mov qword [rsp + 0x50], rax
mov r8d, 0xffffffff
mov dl, 1
lea rcx, [rbp - 0x10]
call fcn.18012e670
nop
lea rdx, str.Check_took_time1:
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.180055e00
mov rbx, rax
call fcn.1800e4fd0
mov rcx, rax
sub rcx, r15
xorps xmm1, xmm1
js 0x180131593
cvtsi2ss xmm1, rcx
jmp 0x1801315a8
mov rax, rcx
shr rax, 1
and ecx, 1
or rax, rcx
cvtsi2ss xmm1, rax
addss xmm1, xmm1
mulss xmm1, dword [0x1802f7d40]
mov rcx, rbx
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___float____ptr64]
mov rcx, rax
lea rdx, str._Seconds.__n
call fcn.180055e00
mov r10, qword [rbp + 0x110]
cmp byte [0x18033c94a], 0
je 0x180131674
mov rcx, qword [r10]
mov rax, qword [r10 + 8]
cmp rcx, rax
je 0x180131674
mov ebx, esi
sub rax, rcx
sar rax, 2
test rax, rax
je 0x180131674
mov rdi, rsi
lea rdx, str.AObj_id:
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.180055e00
mov edx, ebx
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___int____ptr64]
mov rcx, rax
lea rdx, [0x1802d3930]
call fcn.180055e00
mov rcx, qword [rbp + 0x110]
mov rcx, qword [rcx]
mov edx, dword [rdi + rcx]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___int____ptr64]
lea rdx, [0x180055fe0]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
inc ebx
lea rdi, [rdi + 4]
mov r10, qword [rbp + 0x110]
mov rcx, qword [r10 + 8]
sub rcx, qword [r10]
sar rcx, 2
movsxd rax, ebx
cmp rax, rcx
jb 0x180131601
mov rcx, qword [r10]
mov rax, qword [r10 + 8]
cmp rcx, rax
je 0x18013227b
mov r9d, esi
mov dword [rsp + 0x40], esi
sub rax, rcx
sar rax, 2
mov rdi, qword [rbp - 0x80]
mov rbx, qword [rbp - 0x58]
test rax, rax
je 0x1801318aa
mov r8, rsi
mov qword [rsp + 0x30], rsi
movss xmm9, dword [0x1802f7d74]
movss xmm10, dword [0x1802f7fd8]
mov rdx, qword [rbp - 0x10]
movabs r11, 0x2e8ba2e8ba2e8ba3
nop dword [rax + rax]
mov r14d, esi
mov rax, qword [rbp - 8]
sub rax, rdx
sar rax, 4
imul rax, r11
test rax, rax
je 0x18013187d
mov r15, rsi
movabs r9, 0x2e8ba2e8ba2e8ba3
nop dword [rax + rax]
mov eax, dword [rdx + rsi + 0x78]
cmp eax, 0xc
je 0x180131711
test eax, eax
jne 0x18013183d
mov ecx, dword [rdx + rsi + 0x1c]
test ecx, ecx
jle 0x18013183d
mov rax, qword [r10]
mov r8d, dword [r8 + rax]
test r8d, r8d
je 0x180131838
cmp ecx, r8d
jne 0x180131838
movss xmm1, dword [rdx + rsi + 0x14]
subss xmm1, xmm8
mulss xmm1, xmm1
movss xmm0, dword [rdx + rsi + 0x10]
subss xmm0, xmm7
mulss xmm0, xmm0
addss xmm0, xmm1
xorps xmm6, xmm6
sqrtss xmm6, xmm0
xorps xmm0, xmm0
cvtsi2ss xmm0, r14d
mulss xmm0, xmm9
addss xmm6, xmm0
movss dword [rbp + 0x128], xmm6
xorps xmm0, xmm0
cvtsi2ss xmm0, dword [rbp + 0x118]
mulss xmm0, xmm10
comiss xmm6, xmm0
jae 0x180131838
cmp rdi, r13
je 0x1801317a3
movss dword [rdi], xmm6
add rdi, 4
mov qword [rbp - 0x80], rdi
jmp 0x1801317bf
lea r8, [rbp + 0x128]
mov rdx, rdi
lea rcx, [rsp + 0x78]
call fcn.180094f90
mov r13, qword [rbp - 0x78]
mov rdi, qword [rbp - 0x80]
cmp rbx, r12
je 0x1801317d2
movss dword [rbx], xmm6
add rbx, 4
mov qword [rbp - 0x58], rbx
jmp 0x1801317ed
lea r8, [rbp + 0x128]
mov rdx, rbx
lea rcx, [rbp - 0x60]
call fcn.180094f90
mov r12, qword [rbp - 0x50]
mov rbx, qword [rbp - 0x58]
imul r8, r15, 0xb0
add r8, qword [rbp - 0x10]
mov rax, qword [rbp - 0x40]
cmp rax, qword [rbp - 0x38]
je 0x180131817
mov rdx, r8
mov rcx, rax
call fcn.180048ca0
add qword [rbp - 0x40], 0xb0
jmp 0x180131823
mov rdx, rax
lea rcx, [rbp - 0x48]
call fcn.180058330
movabs r9, 0x2e8ba2e8ba2e8ba3
mov r10, qword [rbp + 0x110]
mov rdx, qword [rbp - 0x10]
mov r8, qword [rsp + 0x30]
inc r14d
add rsi, 0xb0
movsxd r15, r14d
mov rax, qword [rbp - 8]
sub rax, rdx
sar rax, 4
imul rax, r9
cmp r15, rax
jb 0x180131700
mov qword [rsp + 0x70], r13
mov qword [rsp + 0x38], r12
mov r9d, dword [rsp + 0x40]
xor esi, esi
movabs r11, 0x2e8ba2e8ba2e8ba3
inc r9d
mov dword [rsp + 0x40], r9d
add r8, 4
mov qword [rsp + 0x30], r8
mov rcx, qword [r10 + 8]
sub rcx, qword [r10]
sar rcx, 2
movsxd rax, r9d
cmp rax, rcx
jb 0x1801316d0
mov r15, qword [rsp + 0x50]
lea rdx, [0x18012e050]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::ios_base____ptr64____cdecl___class_std::ios_base____ptr64_____ptr64]
mov rcx, rax
lea rdx, str.Check_took_time2:
call fcn.180055e00
mov r14, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rsi, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
cmp rsi, 0x989680
jne 0x1801318ee
imul rcx, rax, 0x64
jmp 0x180131909
cqo
idiv rsi
imul rcx, rax, 0x3b9aca00
imul rax, rdx, 0x3b9aca00
cqo
idiv rsi
add rcx, rax
movabs rax, 0x431bde82d7b634db
imul rcx
sar rdx, 0x12
mov rax, rdx
shr rax, 0x3f
add rdx, rax
sub rdx, r15
xorps xmm1, xmm1
js 0x180131933
cvtsi2ss xmm1, rdx
jmp 0x180131948
mov rax, rdx
shr rax, 1
and edx, 1
or rax, rdx
cvtsi2ss xmm1, rax
addss xmm1, xmm1
mulss xmm1, dword [0x1802f7d40]
mov rcx, r14
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___float____ptr64]
mov rcx, rax
lea rdx, str._Seconds.__n
call fcn.180055e00
mov r15, qword [rbp - 0x60]
mov rsi, qword [rsp + 0x78]
mov rax, qword [rbp - 0x40]
cmp qword [rbp - 0x48], rax
je 0x180131a5c
mov r14, rdi
sub r14, rsi
sar r14, 2
mov qword [rsp + 0x48], r14
xor r9d, r9d
mov r8, r14
mov rdx, rdi
mov rcx, rsi
call fcn.18013c320
mov dword [rbp + 0x128], 0
test r14, r14
je 0x180131a5c
sub rbx, r15
sar rbx, 2
mov r14, rsi
mov rcx, qword [rsp + 0x60]
mov r12d, dword [rbp + 0x128]
mov rdx, qword [rsp + 0x48]
xor r13d, r13d
mov esi, r13d
test rbx, rbx
je 0x180131a3c
mov rax, r13
mov rdi, r15
nop
movss xmm0, dword [rdi]
ucomiss xmm0, dword [r14]
jne 0x180131a29
imul r8, rax, 0xb0
add r8, qword [rbp - 0x48]
cmp rcx, qword [rsp + 0x68]
je 0x180131a17
mov rdx, r8
call fcn.180048ca0
mov rcx, qword [rsp + 0x60]
add rcx, 0xb0
mov qword [rsp + 0x60], rcx
jmp 0x180131a29
mov rdx, rcx
lea rcx, [rsp + 0x58]
call fcn.180058330
mov rcx, qword [rsp + 0x60]
inc esi
add rdi, 4
movsxd rax, esi
cmp rax, rbx
jb 0x1801319e0
mov rdx, qword [rsp + 0x48]
inc r12d
add r14, 4
movsxd rax, r12d
cmp rax, rdx
jb 0x1801319d0
mov r12, qword [rsp + 0x38]
mov r13, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x78]
jmp 0x180131a61
mov rcx, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x58]
cmp rdx, rcx
je 0x180132284
xor edi, edi
mov ebx, edi
mov dword [rsp + 0x70], ebx
sub rcx, rdx
sar rcx, 4
movabs rax, 0x2e8ba2e8ba2e8ba3
imul rcx, rax
test rcx, rcx
je 0x1801321ae
xor r15d, r15d
mov esi, r15d
mov qword [rsp + 0x48], r15
lea r12, [0x18033cb90]
movsd xmm8, qword [rbp - 0x70]
nop dword [rax]
movss xmm7, dword [rdx + rsi + 0x10]
mulss xmm7, xmm12
movss xmm6, dword [rdx + rsi + 0x14]
mulss xmm6, xmm12
lea rdx, [0x180040b60]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::ios_base____ptr64____cdecl___class_std::ios_base____ptr64_____ptr64]
mov rcx, rax
lea rdx, str.ItemX:
call fcn.180055e00
movaps xmm1, xmm7
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___float____ptr64]
mov rcx, rax
lea rdx, str._ItemY:
call fcn.180055e00
movaps xmm1, xmm6
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___float____ptr64]
lea rdx, [0x180055fe0]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
movsd qword [rbp + 0x20], xmm8
mov eax, dword [rbp - 0x68]
mov dword [rbp + 0x28], eax
movss dword [rbp + 0x10], xmm7
movss dword [rbp + 0x14], xmm6
mov dword [rbp + 0x18], 0
movaps xmm2, xmm13
lea rdx, [rbp + 0x20]
lea rcx, [rbp + 0x10]
call fcn.1800db6a0
mov dword [rsp + 0x40], r15d
call qword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_rand]
mov r8d, eax
mov eax, 0x66666667
imul r8d
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
lea ecx, [rdx + rdx*4]
add ecx, ecx
sub r8d, ecx
add r8d, 2
test r8d, r8d
jle 0x18013215e
nop dword [rax]
nop word [rax + rax]
movsxd rdx, dword [0x180335148]
mov rax, qword [rsp + 0x58]
add rdx, qword [rax + rsi]
mov qword [rsp + 0x50], r15
mov qword [rsp + 0x20], r15
mov r9d, 8
lea r8, [rsp + 0x50]
mov rcx, qword [0x18033c8e0]
call qword [sym.imp.KERNEL32.dll_ReadProcessMemory]
test eax, eax
jne 0x180131bdb
mov rax, qword gs:[0x30]
cmp dword [rax + 0x1250], 0
mov rbx, r15
jne 0x180131be0
mov rbx, qword [rsp + 0x50]
mov ecx, 0x64
call fcn.1800d38c0
cmp eax, 0x60
mov ecx, 0x12c
jg 0x180131bf9
mov ecx, 0x32
call fcn.1800d38c0
lea ecx, [rax + 0x5a]
call qword [sym.imp.KERNEL32.dll_Sleep]
movsxd rdx, dword [0x180335138]
add rdx, rbx
mov dword [rbp + 0x128], r15d
mov qword [rsp + 0x20], r15
mov r9d, 4
lea r8, [rbp + 0x128]
mov rcx, qword [0x18033c8e0]
call qword [sym.imp.KERNEL32.dll_ReadProcessMemory]
test eax, eax
jne 0x180131c50
mov rax, qword gs:[0x30]
cmp dword [rax + 0x1250], 0
mov eax, r15d
jne 0x180131c56
mov eax, dword [rbp + 0x128]
mov rdx, qword [rsp + 0x58]
cmp dword [rdx + rsi + 0x84], eax
je 0x18013210c
mov rdx, qword [rdx + rsi + 8]
lea rcx, [rbp + 0x30]
call fcn.1800dd4f0
mov eax, dword [0x18033c8b4]
mov dword [rbp + 0x128], eax
mov eax, dword [0x18033c8b0]
cdq
sub eax, edx
sar eax, 1
mov r13d, eax
mov eax, dword [rbp + 0x30]
sub eax, r13d
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x64
jle 0x180131e8d
mov rdx, qword [rsp + 0x58]
mov rdx, qword [rdx + rsi + 8]
lea rcx, [rbp - 0x30]
call fcn.1800dd4f0
mov eax, dword [rbp - 0x30]
sub eax, r13d
cdq
mov edi, eax
xor edi, edx
sub edi, edx
cmp dword [0x18033c944], 0
je 0x180131e8d
xor ecx, ecx
call qword [sym.imp.USER32.dll_GetKeyboardLayout]
mov rsi, rax
call fcn.18005eff0
mov r14, rax
mov word [rsp + 0x3a], r15w
mov dword [rsp + 0x3c], r15d
mov qword [rsp + 0x50], r12
lea rcx, [rsp + 0x50]
call fcn.1800d4cf0
mov ecx, eax
lea r12, [rcx + rcx]
shr r12, 0x20
inc r12d
mov rdx, rsi
cmp r12d, 1
mov cl, 0x64
je 0x180131d18
mov cl, 0x61
call qword [sym.imp.USER32.dll_VkKeyScanExA]
mov r8, rsi
mov edx, 4
movsx ecx, ax
call qword [sym.imp.USER32.dll_MapVirtualKeyExW]
mov word [rsp + 0x38], ax
lea r8, [rsp + 0x38]
mov edx, dword [0x18033c944]
mov rcx, r14
call fcn.18005f520
cmp edi, 0x64
jle 0x180131e18
cmp r15d, 0x32
jge 0x180131e18
cmp byte [0x18033c6e0], 0
jne 0x180131e18
inc r15d
mov ebx, edi
mov ecx, 5
call qword [sym.imp.KERNEL32.dll_Sleep]
mov rdx, qword [rsp + 0x58]
mov rax, qword [rsp + 0x48]
mov rdx, qword [rdx + rax + 8]
lea rcx, [rbp + 0x40]
call fcn.1800dd4f0
movsd xmm0, qword [rax]
movsd qword [rbp - 0x30], xmm0
mov eax, dword [rax + 8]
mov dword [rbp - 0x28], eax
mov eax, dword [rbp - 0x30]
sub eax, r13d
cdq
mov edi, eax
xor edi, edx
sub edi, edx
cmp edi, ebx
jle 0x180131e0f
mov eax, 1
mov word [rsp + 0x3a], ax
lea r8, [rsp + 0x38]
mov edx, dword [0x18033c944]
mov rcx, r14
call fcn.18005f520
mov rdx, rsi
cmp r12d, 1
mov cl, 0x61
je 0x180131dd9
mov cl, 0x64
call qword [sym.imp.USER32.dll_VkKeyScanExA]
mov r8, rsi
mov edx, 4
movsx ecx, ax
call qword [sym.imp.USER32.dll_MapVirtualKeyExW]
mov word [rsp + 0x38], ax
xor eax, eax
mov word [rsp + 0x3a], ax
lea r8, [rsp + 0x38]
mov edx, dword [0x18033c944]
mov rcx, r14
call fcn.18005f520
cmp edi, 0x64
jg 0x180131d50
mov eax, 1
mov word [rsp + 0x3a], ax
lea r8, [rsp + 0x38]
mov edx, dword [0x18033c944]
mov rcx, r14
call fcn.18005f520
test r14, r14
je 0x180131e7e
mov rbx, r14
mov edi, 0x14
mov rcx, qword [rbx]
cmp rcx, 0xffffffffffffffff
je 0x180131e51
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x180131e60
call qword [sym.imp.KERNEL32.dll_CloseHandle]
add rbx, 0x10
sub rdi, 1
jne 0x180131e42
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov rcx, rax
mov r8, r14
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
lea r12, [0x18033cb90]
xor r15d, r15d
mov rsi, qword [rsp + 0x48]
lea rdx, [0x180040b60]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::ios_base____ptr64____cdecl___class_std::ios_base____ptr64_____ptr64]
mov rcx, rax
lea rdx, str.screenp.y:
call fcn.180055e00
mov ebx, dword [rbp + 0x34]
mov edx, ebx
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___int____ptr64]
mov rcx, rax
lea rdx, str.p.y_2:
call fcn.180055e00
mov rcx, rax
mov eax, dword [rbp + 0x128]
cdq
sub eax, edx
sar eax, 1
mov r13d, eax
mov edx, eax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___int____ptr64]
lea rdx, [0x180055fe0]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
sub ebx, r13d
lea eax, [rbx + 0x78]
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x14
jle 0x18013210c
mov rdx, qword [rsp + 0x58]
mov rdx, qword [rdx + rsi + 8]
lea rcx, [rbp - 0x20]
call fcn.1800dd4f0
lea eax, [rbx + 0x50]
cdq
mov ebx, eax
xor ebx, edx
sub ebx, edx
cmp dword [0x18033c944], 0
je 0x18013210c
xor ecx, ecx
call qword [sym.imp.USER32.dll_GetKeyboardLayout]
mov rdi, rax
call fcn.18005eff0
mov r14, rax
mov word [rsp + 0x32], r15w
mov dword [rsp + 0x34], r15d
mov qword [rbp + 0x128], r12
lea rcx, [rbp + 0x128]
call fcn.1800d4cf0
mov ecx, eax
lea r12, [rcx + rcx]
shr r12, 0x20
inc r12d
mov rdx, rdi
cmp r12d, 1
mov cl, 0x77
je 0x180131f7f
mov cl, 0x73
call qword [sym.imp.USER32.dll_VkKeyScanExA]
mov r8, rdi
mov edx, 4
movsx ecx, ax
call qword [sym.imp.USER32.dll_MapVirtualKeyExW]
mov word [rsp + 0x30], ax
lea r8, [rsp + 0x30]
mov edx, dword [0x18033c944]
mov rcx, r14
call fcn.18005f520
cmp ebx, 0x14
jle 0x18013209e
nop word [rax + rax]
cmp r15d, 0x32
jge 0x18013209e
cmp byte [0x18033c6e0], 0
jne 0x18013209e
inc r15d
mov eax, dword [rbp - 0x1c]
sub eax, r13d
add eax, 0x78
cdq
mov ebx, eax
xor ebx, edx
sub ebx, edx
mov ecx, 5
call qword [sym.imp.KERNEL32.dll_Sleep]
mov rdx, qword [rsp + 0x58]
mov rdx, qword [rdx + rsi + 8]
lea rcx, [rbp + 0x4c]
call fcn.1800dd4f0
movsd xmm0, qword [rax]
movsd qword [rbp - 0x20], xmm0
mov eax, dword [rax + 8]
mov dword [rbp - 0x18], eax
mov rax, qword [rbp - 0x20]
shr rax, 0x20
sub eax, r13d
add eax, 0x78
cdq
mov esi, eax
xor esi, edx
sub esi, edx
cmp esi, ebx
jle 0x180132090
mov eax, 1
mov word [rsp + 0x32], ax
lea r8, [rsp + 0x30]
mov edx, dword [0x18033c944]
mov rcx, r14
call fcn.18005f520
mov rdx, rdi
cmp r12d, 1
mov cl, 0x73
je 0x18013205a
mov cl, 0x77
call qword [sym.imp.USER32.dll_VkKeyScanExA]
mov r8, rdi
mov edx, 4
movsx ecx, ax
call qword [sym.imp.USER32.dll_MapVirtualKeyExW]
mov word [rsp + 0x30], ax
xor eax, eax
mov word [rsp + 0x32], ax
lea r8, [rsp + 0x30]
mov edx, dword [0x18033c944]
mov rcx, r14
call fcn.18005f520
cmp esi, 0x14
mov rsi, qword [rsp + 0x48]
jg 0x180131fc0
mov eax, 1
mov word [rsp + 0x32], ax
lea r8, [rsp + 0x30]
mov edx, dword [0x18033c944]
mov rcx, r14
call fcn.18005f520
test r14, r14
je 0x18013210c
mov rbx, r14
mov edi, 0x14
nop dword [rax + rax]
mov rcx, qword [rbx]
cmp rcx, 0xffffffffffffffff
je 0x1801320df
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x1801320ee
call qword [sym.imp.KERNEL32.dll_CloseHandle]
add rbx, 0x10
sub rdi, 1
jne 0x1801320d0
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov rcx, rax
mov r8, r14
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov ebx, dword [rsp + 0x40]
inc ebx
mov dword [rsp + 0x40], ebx
call qword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_rand]
mov r8d, eax
mov eax, 0x66666667
imul r8d
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
lea ecx, [rdx + rdx*4]
add ecx, ecx
sub r8d, ecx
add r8d, 2
cmp ebx, r8d
mov r15d, 0
lea r12, [0x18033cb90]
jl 0x180131b90
mov ebx, dword [rsp + 0x70]
lea r12, [0x18033cb90]
inc ebx
mov dword [rsp + 0x70], ebx
add rsi, 0xb0
mov qword [rsp + 0x48], rsi
mov rcx, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x58]
sub rcx, rdx
sar rcx, 4
movabs rax, 0x2e8ba2e8ba2e8ba3
imul rcx, rax
movsxd rax, ebx
cmp rax, rcx
jb 0x180131ab0
mov r13, qword [rbp - 0x78]
mov rsi, qword [rsp + 0x78]
mov r12, qword [rbp - 0x50]
mov r15, qword [rbp - 0x60]
xor edi, edi
lea rcx, [rbp - 0x10]
call fcn.180054320
nop
lea rcx, [rsp + 0x58]
call fcn.180054320
nop
lea rcx, [rbp - 0x48]
call fcn.180054320
nop
test r15, r15
je 0x18013221a
sub r12, r15
sar r12, 2
lea rdx, [r12*4]
mov rax, r15
cmp rdx, 0x1000
jb 0x180132206
add rdx, 0x27
mov r15, qword [r15 - 8]
sub rax, r15
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1801322d8
mov rcx, r15
call fcn.180277944
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x60], xmm0
mov qword [rbp - 0x50], rdi
test rsi, rsi
je 0x180132268
sub r13, rsi
sar r13, 2
lea rdx, [r13*4]
mov rax, rsi
cmp rdx, 0x1000
jb 0x180132253
add rdx, 0x27
mov rsi, qword [rsi - 8]
sub rax, rsi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18013232e
mov rcx, rsi
call fcn.180277944
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x78], xmm0
mov qword [rbp - 0x78], rdi
mov rcx, qword [rbp + 0x110]
call fcn.180054240
mov al, 1
jmp 0x180132358
mov rsi, qword [rsp + 0x78]
mov r15, qword [rbp - 0x60]
lea rcx, [rbp - 0x10]
call fcn.180054320
nop
lea rcx, [rsp + 0x58]
call fcn.180054320
nop
lea rcx, [rbp - 0x48]
call fcn.180054320
nop
test r15, r15
je 0x1801322f7
sub r12, r15
sar r12, 2
lea rdx, [r12*4]
mov rax, r15
cmp rdx, 0x1000
jb 0x1801322df
add rdx, 0x27
mov r15, qword [r15 - 8]
sub rax, r15
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1801322df
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, r15
call fcn.180277944
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x60], xmm0
xor ebx, ebx
mov qword [rbp - 0x50], rbx
jmp 0x1801322f9
xor ebx, ebx
test rsi, rsi
je 0x18013234a
sub r13, rsi
sar r13, 2
lea rdx, [r13*4]
mov rax, rsi
cmp rdx, 0x1000
jb 0x180132335
add rdx, 0x27
mov rsi, qword [rsi - 8]
sub rax, rsi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x180132335
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, rsi
call fcn.180277944
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x78], xmm0
mov qword [rbp - 0x78], rbx
mov rcx, qword [rbp + 0x110]
call fcn.180054240
xor al, al
lea r11, [rsp + 0x1d0]
mov rbx, qword [r11 + 0x50]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
movaps xmm12, xmmword [r11 - 0x60]
movaps xmm13, xmmword [r11 - 0x70]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret