Function at 0x14005c550
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
push rbp
push r14
push r15
lea rbp, [rax - 0x78]
sub rsp, 0x160
movaps xmmword [rax - 0x28], xmm6
movaps xmmword [rax - 0x38], xmm7
movaps xmmword [rax - 0x48], xmm8
movaps xmmword [rax - 0x58], xmm9
movaps xmmword [rax - 0x68], xmm10
movaps xmmword [rax - 0x78], xmm11
movaps xmmword [rax - 0x88], xmm12
movaps xmmword [rax - 0x98], xmm13
movaps xmmword [rax - 0xa8], xmm14
movaps xmmword [rax - 0xb8], xmm15
mov rax, qword [0x1400e7100]
xor rax, rsp
mov qword [rbp - 0x50], rax
mov rax, qword [0x1400eaa58]
test rax, rax
je 0x14005d959
cmp qword [0x1400eaa50], 0
je 0x14005d959
xor esi, esi
mov qword [rsp + 0x40], rsi
mov word [rsp + 0x70], 0x100
mov dword [rsp + 0x72], esi
mov word [rsp + 0x76], si
mov dword [rsp + 0x50], 0x55aa556
add rax, 0x5c0
mov qword [rsp + 0x58], rax
lea rax, [rsp + 0x40]
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], 8
mov rcx, qword [0x1400eac08]
mov eax, dword [rcx]
mov dword [rsp + 0x54], eax
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x30], rsi
mov dword [rsp + 0x28], esi
mov qword [rsp + 0x20], rsi
mov r9d, 0x28
lea r8, [rsp + 0x50]
mov edx, 0x220914
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov rbx, qword [rsp + 0x40]
test rbx, rbx
je 0x14005d984
mov qword [rsp + 0x40], rsi
mov word [rsp + 0x70], 0x100
mov dword [rsp + 0x72], esi
mov word [rsp + 0x76], si
mov dword [rsp + 0x50], 0x55aa556
mov rax, qword [0x1400eaa58]
add rax, 0x728
mov qword [rsp + 0x58], rax
lea rax, [rsp + 0x40]
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], 8
mov rcx, qword [0x1400eac08]
mov eax, dword [rcx]
mov dword [rsp + 0x54], eax
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x30], rsi
mov dword [rsp + 0x28], esi
mov qword [rsp + 0x20], rsi
mov r9d, 0x28
lea r8, [rsp + 0x50]
mov edx, 0x220914
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov r14, qword [rsp + 0x40]
test r14, r14
je 0x14005d984
mov qword [rsp + 0x40], rsi
mov word [rsp + 0x70], 0x100
mov dword [rsp + 0x72], esi
mov word [rsp + 0x76], si
mov dword [rsp + 0x50], 0x55aa556
mov rax, qword [0x1400eaa58]
add rax, 0x800
mov qword [rsp + 0x58], rax
lea rax, [rsp + 0x40]
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], 8
mov rcx, qword [0x1400eac08]
mov eax, dword [rcx]
mov dword [rsp + 0x54], eax
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x30], rsi
mov dword [rsp + 0x28], esi
mov qword [rsp + 0x20], rsi
mov r9d, 0x28
lea r8, [rsp + 0x50]
mov edx, 0x220914
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov rdi, qword [rsp + 0x40]
test rdi, rdi
je 0x14005d984
call fcn.140077460
mov ecx, dword [rax + 0x20c]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14005c795
call fcn.140077460
movss xmm2, dword [rax + 0x214]
jmp 0x14005c7a2
call fcn.140077460
movss xmm2, dword [rax + 0x218]
mov rdx, qword [0x1400eaa70]
add rdx, 0x18
mov rcx, qword [0x1400eac08]
call fcn.14007e9d0
call fcn.140077460
mov ecx, dword [rax + 0x21c]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
xorps xmm13, xmm13
movss xmm15, dword [0x1400d28b0]
test ax, ax
je 0x14005ce47
lea rdx, [r14 + 0x10]
movss xmm2, dword [0x1400d28b4]
mov rcx, qword [0x1400eac08]
call fcn.14007e9d0
mov qword [rsp + 0x48], rsi
mov qword [rsp + 0x40], rsi
mov word [rsp + 0x70], 0x100
mov dword [rsp + 0x72], esi
mov word [rsp + 0x76], si
mov dword [rsp + 0x50], 0x55aa556
lea rax, [rdi + 0x4c]
mov qword [rsp + 0x58], rax
lea rax, [rsp + 0x40]
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], 0x10
mov rcx, qword [0x1400eac08]
mov eax, dword [rcx]
mov dword [rsp + 0x54], eax
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x30], rsi
mov dword [rsp + 0x28], esi
mov qword [rsp + 0x20], rsi
mov r9d, 0x28
lea r8, [rsp + 0x50]
mov edx, 0x220914
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov dword [rbp - 0x80], esi
mov dword [rbp - 0x7c], 0x3d1fbe77
xorps xmm6, xmm6
movss xmm14, dword [0x1400d291c]
mov ecx, 0x57
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
movss xmm8, dword [0x1400d28ec]
test ax, ax
je 0x14005c9b9
movss xmm1, dword [rsp + 0x40]
movaps xmm4, xmm1
mulss xmm4, xmm8
movss xmm0, dword [rsp + 0x44]
movaps xmm3, xmm0
mulss xmm3, xmm8
movss xmm7, dword [rsp + 0x48]
movaps xmm2, xmm7
mulss xmm2, xmm8
movaps xmm12, xmm4
mulss xmm12, xmm1
movaps xmm10, xmm3
mulss xmm10, xmm0
mulss xmm7, xmm2
movaps xmm6, xmm3
mulss xmm6, xmm1
movaps xmm11, xmm2
mulss xmm11, xmm1
movaps xmm8, xmm2
mulss xmm8, xmm0
movss xmm5, dword [rsp + 0x4c]
movaps xmm9, xmm5
mulss xmm9, xmm4
movaps xmm4, xmm5
mulss xmm4, xmm3
mulss xmm5, xmm2
movaps xmm0, xmm7
addss xmm0, xmm10
movaps xmm2, xmm15
subss xmm2, xmm0
mulss xmm2, xmm13
movaps xmm0, xmm6
subss xmm0, xmm5
mulss xmm0, xmm13
addss xmm2, xmm0
movaps xmm0, xmm4
addss xmm0, xmm11
addss xmm2, xmm0
addss xmm7, xmm12
movaps xmm1, xmm15
subss xmm1, xmm7
mulss xmm1, xmm13
addss xmm5, xmm6
mulss xmm5, xmm13
addss xmm1, xmm5
movaps xmm0, xmm8
subss xmm0, xmm9
addss xmm1, xmm0
subss xmm11, xmm4
mulss xmm11, xmm13
addss xmm9, xmm8
mulss xmm9, xmm13
addss xmm11, xmm9
addss xmm10, xmm12
movaps xmm0, xmm15
subss xmm0, xmm10
addss xmm11, xmm0
unpcklps xmm2, xmm1
movsd qword [rbp - 0x80], xmm2
movd eax, xmm11
movd xmm6, eax
movss xmm8, dword [0x1400d28ec]
mov ecx, 0x53
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14005cae9
movss xmm1, dword [rsp + 0x40]
movaps xmm4, xmm1
mulss xmm4, xmm8
movss xmm0, dword [rsp + 0x44]
movaps xmm3, xmm0
mulss xmm3, xmm8
movss xmm7, dword [rsp + 0x48]
movaps xmm2, xmm7
mulss xmm2, xmm8
movaps xmm11, xmm4
mulss xmm11, xmm1
movaps xmm10, xmm3
mulss xmm10, xmm0
mulss xmm7, xmm2
movaps xmm6, xmm3
mulss xmm6, xmm1
movaps xmm12, xmm2
mulss xmm12, xmm1
movaps xmm8, xmm2
mulss xmm8, xmm0
movss xmm5, dword [rsp + 0x4c]
movaps xmm9, xmm5
mulss xmm9, xmm4
movaps xmm4, xmm5
mulss xmm4, xmm3
mulss xmm5, xmm2
movaps xmm0, xmm7
addss xmm0, xmm10
movaps xmm2, xmm15
subss xmm2, xmm0
mulss xmm2, xmm13
movaps xmm0, xmm6
subss xmm0, xmm5
mulss xmm0, xmm13
addss xmm2, xmm0
movaps xmm0, xmm4
addss xmm0, xmm12
mulss xmm0, xmm15
subss xmm2, xmm0
addss xmm7, xmm11
movaps xmm1, xmm15
subss xmm1, xmm7
mulss xmm1, xmm13
addss xmm5, xmm6
mulss xmm5, xmm13
addss xmm1, xmm5
movaps xmm0, xmm8
subss xmm0, xmm9
mulss xmm0, xmm15
subss xmm1, xmm0
subss xmm12, xmm4
mulss xmm12, xmm13
addss xmm9, xmm8
mulss xmm9, xmm13
addss xmm12, xmm9
addss xmm10, xmm11
movaps xmm0, xmm15
subss xmm0, xmm10
mulss xmm0, xmm15
subss xmm12, xmm0
unpcklps xmm2, xmm1
movsd qword [rbp - 0x80], xmm2
movd eax, xmm12
movd xmm6, eax
mov ecx, 0x44
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14005cc11
movss xmm1, dword [rsp + 0x40]
movaps xmm4, xmm1
movss xmm5, dword [0x1400d28ec]
mulss xmm4, xmm5
movss xmm0, dword [rsp + 0x44]
movaps xmm3, xmm0
mulss xmm3, xmm5
movss xmm8, dword [rsp + 0x48]
movaps xmm2, xmm8
mulss xmm2, xmm5
movaps xmm12, xmm4
mulss xmm12, xmm1
movaps xmm11, xmm3
mulss xmm11, xmm0
mulss xmm8, xmm2
movaps xmm6, xmm3
mulss xmm6, xmm1
movaps xmm9, xmm2
mulss xmm9, xmm1
movaps xmm7, xmm2
mulss xmm7, xmm0
movss xmm5, dword [rsp + 0x4c]
movaps xmm10, xmm5
mulss xmm10, xmm4
movaps xmm4, xmm5
mulss xmm4, xmm3
mulss xmm5, xmm2
movaps xmm0, xmm8
addss xmm0, xmm11
movaps xmm2, xmm15
subss xmm2, xmm0
movaps xmm1, xmm6
subss xmm1, xmm5
mulss xmm1, xmm13
addss xmm2, xmm1
movaps xmm0, xmm4
addss xmm0, xmm9
mulss xmm0, xmm13
addss xmm2, xmm0
addss xmm8, xmm12
movaps xmm1, xmm15
subss xmm1, xmm8
mulss xmm1, xmm13
addss xmm5, xmm6
addss xmm1, xmm5
movaps xmm0, xmm7
subss xmm0, xmm10
mulss xmm0, xmm13
addss xmm1, xmm0
addss xmm10, xmm7
mulss xmm10, xmm13
subss xmm9, xmm4
addss xmm10, xmm9
addss xmm11, xmm12
movaps xmm0, xmm15
subss xmm0, xmm11
mulss xmm0, xmm13
addss xmm10, xmm0
unpcklps xmm2, xmm1
movsd qword [rbp - 0x80], xmm2
movd eax, xmm10
movd xmm6, eax
mov ecx, 0x41
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14005cd46
movss xmm1, dword [rsp + 0x40]
movaps xmm4, xmm1
movss xmm5, dword [0x1400d28ec]
mulss xmm4, xmm5
movss xmm0, dword [rsp + 0x44]
movaps xmm3, xmm0
mulss xmm3, xmm5
movss xmm7, dword [rsp + 0x48]
movaps xmm2, xmm7
mulss xmm2, xmm5
movaps xmm12, xmm4
mulss xmm12, xmm1
movaps xmm11, xmm3
mulss xmm11, xmm0
mulss xmm7, xmm2
movaps xmm6, xmm3
mulss xmm6, xmm1
movaps xmm9, xmm2
mulss xmm9, xmm1
movaps xmm8, xmm2
mulss xmm8, xmm0
movss xmm5, dword [rsp + 0x4c]
movaps xmm10, xmm5
mulss xmm10, xmm4
movaps xmm4, xmm5
mulss xmm4, xmm3
mulss xmm5, xmm2
movaps xmm3, xmm6
subss xmm3, xmm5
mulss xmm3, xmm13
movaps xmm0, xmm7
addss xmm0, xmm11
movaps xmm1, xmm15
subss xmm1, xmm0
mulss xmm1, xmm15
subss xmm3, xmm1
movaps xmm0, xmm4
addss xmm0, xmm9
mulss xmm0, xmm13
addss xmm3, xmm0
addss xmm7, xmm12
movaps xmm1, xmm15
subss xmm1, xmm7
mulss xmm1, xmm13
addss xmm5, xmm6
mulss xmm5, xmm15
subss xmm1, xmm5
movaps xmm0, xmm8
subss xmm0, xmm10
mulss xmm0, xmm13
addss xmm1, xmm0
addss xmm10, xmm8
mulss xmm10, xmm13
subss xmm9, xmm4
mulss xmm9, xmm15
subss xmm10, xmm9
addss xmm11, xmm12
movaps xmm0, xmm15
subss xmm0, xmm11
mulss xmm0, xmm13
addss xmm10, xmm0
unpcklps xmm3, xmm1
movsd qword [rbp - 0x80], xmm3
movd eax, xmm10
movd xmm6, eax
mov ecx, 0x20
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14005cd5d
mov dword [rbp - 0x7c], 0x3f800000
mov ecx, 0xa2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, 0x10
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14005cd81
movss xmm14, dword [0x1400d2944]
lea rdx, [rbx + 0x74]
movss xmm2, dword [0x1400d28a0]
mov rcx, qword [0x1400eac08]
call fcn.14007e9d0
lea rdx, [rbx + 0x70]
movss xmm2, dword [0x1400d28d8]
mov rcx, qword [0x1400eac08]
call fcn.14007e9d0
mulss xmm6, xmm14
movss xmm1, dword [rbp - 0x7c]
mulss xmm1, xmm14
movss xmm0, dword [rbp - 0x80]
mulss xmm0, xmm14
unpcklps xmm0, xmm1
movsd qword [rbp - 0x80], xmm0
movss dword [rbp - 0x78], xmm6
mov dword [rsp + 0x71], esi
mov word [rsp + 0x75], si
mov byte [rsp + 0x77], sil
mov dword [rsp + 0x50], 0x55aa556
lea rax, [rbx + 0x3c]
mov qword [rsp + 0x58], rax
lea rax, [rbp - 0x80]
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], 0xc
mov rcx, qword [0x1400eac08]
mov eax, dword [rcx]
mov dword [rsp + 0x54], eax
mov byte [rsp + 0x70], 1
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x30], rsi
mov dword [rsp + 0x28], esi
mov qword [rsp + 0x20], rsi
mov r9d, 0x28
lea r8, [rsp + 0x50]
mov edx, 0x220914
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
call fcn.140077460
cmp byte [rax + 0x224], sil
je 0x14005ce81
lea rdx, [rbx + 0xcc]
xorps xmm2, xmm2
mov rcx, qword [0x1400eac08]
call fcn.14007e9d0
lea rdx, [rbx + 0xd0]
xorps xmm2, xmm2
mov rcx, qword [0x1400eac08]
call fcn.14007e9d0
call fcn.140077460
cmp byte [rax + 0x225], sil
je 0x14005cef0
mov ecx, 0x20
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14005cef0
lea rdx, [rbx + 0xd8]
movss xmm2, dword [0x1400d2874]
mov rcx, qword [0x1400eac08]
call fcn.14007e9d0
lea rdx, [rbx + 0xdc]
movss xmm2, dword [0x1400d2858]
mov rcx, qword [0x1400eac08]
call fcn.14007e9d0
lea rdx, [rbx + 0xd4]
movss xmm2, dword [0x1400d2b78]
mov rcx, qword [0x1400eac08]
call fcn.14007e9d0
call fcn.140077460
cmp byte [rax + 0x226], sil
je 0x14005d01c
mov qword [rsp + 0x40], rsi
mov word [rsp + 0x70], 0x100
mov dword [rsp + 0x72], esi
mov word [rsp + 0x76], si
mov dword [rsp + 0x50], 0x55aa556
mov rax, qword [0x1400eaa58]
add rax, 0x730
mov qword [rsp + 0x58], rax
lea rax, [rsp + 0x40]
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], 8
mov rcx, qword [0x1400eac08]
mov eax, dword [rcx]
mov dword [rsp + 0x54], eax
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x30], rsi
mov dword [rsp + 0x28], esi
mov qword [rsp + 0x20], rsi
mov r9d, 0x28
lea r8, [rsp + 0x50]
mov edx, 0x220914
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov rbx, qword [rsp + 0x40]
test rbx, rbx
je 0x14005d01c
mov dword [rsp + 0x40], esi
mov word [rsp + 0x70], 0x100
mov dword [rsp + 0x72], esi
mov word [rsp + 0x76], si
mov dword [rsp + 0x50], 0x55aa556
lea rax, [r14 + 0x20]
mov qword [rsp + 0x58], rax
lea rax, [rsp + 0x40]
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], 4
mov rcx, qword [0x1400eac08]
mov eax, dword [rcx]
mov dword [rsp + 0x54], eax
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x30], rsi
mov dword [rsp + 0x28], esi
mov qword [rsp + 0x20], rsi
mov r9d, 0x28
lea r8, [rsp + 0x50]
mov edx, 0x220914
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov eax, dword [rsp + 0x40]
shr eax, 9
test al, 1
je 0x14005d01c
lea rdx, [rbx + 0x380]
mov rcx, qword [0x1400eac08]
call fcn.14007eb50
mov rcx, qword [0x1400eaa58]
call fcn.140049af0
mov rbx, rax
test rax, rax
je 0x14005d984
lea rdx, [rbp - 0x70]
mov rcx, rax
call fcn.140049900
nop
cmp qword [rbp - 0x60], 0
je 0x14005d917
mov qword [rsp + 0x40], rsi
mov word [rsp + 0x70], 0x100
mov dword [rsp + 0x72], esi
mov word [rsp + 0x76], si
mov dword [rsp + 0x50], 0x55aa556
lea rdi, [rbx + 0xb0]
mov qword [rsp + 0x58], rdi
lea rax, [rsp + 0x40]
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], 8
mov rcx, qword [0x1400eac08]
mov eax, dword [rcx]
mov dword [rsp + 0x54], eax
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x30], rsi
mov dword [rsp + 0x28], esi
mov qword [rsp + 0x20], rsi
mov r9d, 0x28
lea r8, [rsp + 0x50]
mov edx, 0x220914
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov r14, qword [rsp + 0x40]
test r14, r14
je 0x14005d917
lea rdx, [rsp + 0x50]
mov rcx, rbx
call fcn.140049900
mov rcx, rax
call fcn.140047cc0
test al, al
je 0x14005d917
mov qword [rbp - 0x80], rsi
mov word [rsp + 0x70], 0x100
mov dword [rsp + 0x72], esi
mov word [rsp + 0x76], si
mov dword [rsp + 0x50], 0x55aa556
mov qword [rsp + 0x58], rdi
lea rax, [rbp - 0x80]
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], 8
mov rcx, qword [0x1400eac08]
mov eax, dword [rcx]
mov dword [rsp + 0x54], eax
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x30], rsi
mov dword [rsp + 0x28], esi
mov qword [rsp + 0x20], rsi
mov r9d, 0x28
lea r8, [rsp + 0x50]
mov edx, 0x220914
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov rax, qword [rbp - 0x80]
test rax, rax
je 0x14005d917
mov qword [rbp - 0x80], rsi
mov word [rsp + 0x70], 0x100
mov dword [rsp + 0x72], esi
mov word [rsp + 0x76], si
mov dword [rsp + 0x50], 0x55aa556
add rax, 0x1a0
mov qword [rsp + 0x58], rax
lea rax, [rbp - 0x80]
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], 8
mov rcx, qword [0x1400eac08]
mov eax, dword [rcx]
mov dword [rsp + 0x54], eax
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x30], rsi
mov dword [rsp + 0x28], esi
mov qword [rsp + 0x20], rsi
mov r9d, 0x28
lea r8, [rsp + 0x50]
mov edx, 0x220914
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov rbx, qword [rbp - 0x80]
test rbx, rbx
je 0x14005d917
call fcn.140077460
cmp byte [rax + 0x227], 0
je 0x14005d46a
mov qword [rbp - 0x80], rsi
mov word [rsp + 0x70], 0x100
mov dword [rsp + 0x72], esi
mov word [rsp + 0x76], si
mov dword [rsp + 0x50], 0x55aa556
lea rax, [rbx + 0x30]
mov qword [rsp + 0x58], rax
lea rax, [rbp - 0x80]
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], 8
mov rcx, qword [0x1400eac08]
mov eax, dword [rcx]
mov dword [rsp + 0x54], eax
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x30], rsi
mov dword [rsp + 0x28], esi
mov qword [rsp + 0x20], rsi
mov r9d, 0x28
lea r8, [rsp + 0x50]
mov edx, 0x220914
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov rdi, qword [rbp - 0x80]
test rdi, rdi
je 0x14005d917
mov qword [rbp - 0x80], rsi
mov dword [rsp + 0x71], esi
mov word [rsp + 0x75], si
mov byte [rsp + 0x77], 0
mov dword [rsp + 0x50], 0x55aa556
lea rax, [rdi + 0x68]
mov qword [rsp + 0x58], rax
lea rax, [rbp - 0x80]
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], 8
mov rcx, qword [0x1400eac08]
mov eax, dword [rcx]
mov dword [rsp + 0x54], eax
mov byte [rsp + 0x70], 1
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x30], rsi
mov dword [rsp + 0x28], esi
mov qword [rsp + 0x20], rsi
mov r9d, 0x28
lea r8, [rsp + 0x50]
mov edx, 0x220914
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov qword [rbp - 0x80], rsi
mov word [rsp + 0x70], 0x100
mov dword [rsp + 0x72], esi
mov word [rsp + 0x76], si
mov dword [rsp + 0x50], 0x55aa556
lea rax, [rdi + 0x90]
mov qword [rsp + 0x58], rax
lea rax, [rbp - 0x80]
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], 8
mov rcx, qword [0x1400eac08]
mov eax, dword [rcx]
mov dword [rsp + 0x54], eax
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x30], rsi
mov dword [rsp + 0x28], esi
mov qword [rsp + 0x20], rsi
mov r9d, 0x28
lea r8, [rsp + 0x50]
mov edx, 0x220914
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov rbx, qword [rbp - 0x80]
test rbx, rbx
je 0x14005d3c7
lea rdx, [rbx + 0x24]
xorps xmm2, xmm2
mov rcx, qword [0x1400eac08]
call fcn.14007e9d0
lea rdx, [rbx + 0x20]
xorps xmm2, xmm2
mov rcx, qword [0x1400eac08]
call fcn.14007e9d0
lea rdx, [rbx + 0x2c]
xorps xmm2, xmm2
mov rcx, qword [0x1400eac08]
call fcn.14007e9d0
lea rdx, [rbx + 0x28]
xorps xmm2, xmm2
mov rcx, qword [0x1400eac08]
call fcn.14007e9d0
lea rdx, [rbx + 0x30]
xorps xmm2, xmm2
mov rcx, qword [0x1400eac08]
call fcn.14007e9d0
mov qword [rbp - 0x80], rsi
mov word [rsp + 0x70], 0x100
mov dword [rsp + 0x72], esi
mov word [rsp + 0x76], si
mov dword [rsp + 0x50], 0x55aa556
lea rax, [rdi + 0x80]
mov qword [rsp + 0x58], rax
lea rax, [rbp - 0x80]
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], 8
mov rcx, qword [0x1400eac08]
mov eax, dword [rcx]
mov dword [rsp + 0x54], eax
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x30], rsi
mov dword [rsp + 0x28], esi
mov qword [rsp + 0x20], rsi
mov r9d, 0x28
lea r8, [rsp + 0x50]
mov edx, 0x220914
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov rbx, qword [rbp - 0x80]
test rbx, rbx
je 0x14005d46a
lea rdx, [rbx + 0x20]
xorps xmm2, xmm2
mov rcx, qword [0x1400eac08]
call fcn.14007e9d0
lea rdx, [rbx + 0x24]
xorps xmm2, xmm2
mov rcx, qword [0x1400eac08]
call fcn.14007e9d0
call fcn.140077460
cmp byte [rax + 0x228], 0
je 0x14005d487
lea rdx, [0x14005da00]
mov rcx, r14
call fcn.1400495c0
call fcn.140077460
cmp byte [rax + 0x22a], 0
je 0x14005d4c1
lea rdx, [r14 + 0x2f0]
xorps xmm2, xmm2
mov rcx, qword [0x1400eac08]
call fcn.14007e9d0
lea rdx, [r14 + 0x2f4]
xorps xmm2, xmm2
mov rcx, qword [0x1400eac08]
call fcn.14007e9d0
call fcn.140077460
cmp byte [rax + 0x22b], 0
je 0x14005d4e2
lea rdx, [r14 + 0x2a8]
mov rcx, qword [0x1400eac08]
call fcn.14007eb50
call fcn.140077460
cmp byte [rax + 0x22c], 0
je 0x14005d542
lea rdx, [r14 + 0x2f8]
mov rcx, qword [0x1400eac08]
call fcn.14007ea50
mov rbx, rax
lea rdx, [rax + 0x80]
mov rcx, qword [0x1400eac08]
call fcn.14007ea50
mov rdi, rax
test rbx, rbx
jne 0x14005d526
test rax, rax
je 0x14005d542
lea rdx, [rbp - 0x70]
lea rcx, [rsp + 0x50]
call fcn.140077b80
mov r8, rdi
mov rdx, rbx
mov rcx, rax
call fcn.140058e90
call fcn.140077460
cmp byte [rax + 0x22d], 0
je 0x14005d67a
movsd xmm0, qword [str.UP_]
movsd qword [rbp - 0x80], xmm0
movzx eax, word [0x1400d0f78]
mov ecx, 0x65
mov word [rbp - 0x80], cx
xor word [rbp - 0x7e], 0x3a
xor word [rbp - 0x7c], 0x3b
xor word [rbp - 0x7a], 0x3c
xor ax, 0x3d
mov word [rbp - 0x78], ax
xorps xmm0, xmm0
movups xmmword [rsp + 0x50], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x60], xmm1
lea rax, [rbp - 0x80]
mov r8, 0xffffffffffffffff
inc r8
cmp word [rax + r8*2], 0
jne 0x14005d5a4
lea rdx, [rbp - 0x80]
lea rcx, [rsp + 0x50]
call fcn.1400033d0
lea r9, [rsp + 0x50]
mov rbx, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x68]
cmp rdi, 7
cmova r9, rbx
lea rcx, [rbp - 0x70]
cmp qword [rbp - 0x58], 7
cmova rcx, qword [rbp - 0x70]
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x20], rax
mov rdx, qword [rbp - 0x60]
call fcn.140080280
mov r15, rax
cmp rdi, 7
jbe 0x14005d633
lea rdx, [rdi*2 + 2]
mov rax, rbx
cmp rdx, 0x1000
jb 0x14005d62b
add rdx, 0x27
mov rbx, qword [rbx - 8]
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14005d9eb
mov rcx, rbx
call fcn.14008d63c
cmp r15, 0xffffffffffffffff
je 0x14005d67a
lea rdx, [r14 + 0x3bc]
movaps xmm2, xmm15
mov rcx, qword [0x1400eac08]
call fcn.14007e9d0
lea rdx, [r14 + 0x3a8]
movaps xmm2, xmm15
mov rcx, qword [0x1400eac08]
call fcn.14007e9d0
lea rdx, [r14 + 0x3b8]
mov rcx, qword [0x1400eac08]
call fcn.14007eb50
call fcn.140077460
cmp byte [rax + 0x22f], 0
je 0x14005d742
lea rdx, [r14 + 0x308]
movss xmm6, dword [0x1400d2ba8]
movaps xmm2, xmm6
mov rcx, qword [0x1400eac08]
call fcn.14007e9d0
lea rdx, [r14 + 0x30c]
movaps xmm2, xmm6
mov rcx, qword [0x1400eac08]
call fcn.14007e9d0
lea rdx, [r14 + 0x34c]
movaps xmm2, xmm13
mov rcx, qword [0x1400eac08]
call fcn.14007e9d0
lea rdx, [r14 + 0x350]
movaps xmm2, xmm13
mov rcx, qword [0x1400eac08]
call fcn.14007e9d0
lea rdx, [r14 + 0x314]
movaps xmm2, xmm13
mov rcx, qword [0x1400eac08]
call fcn.14007e9d0
lea rdx, [r14 + 0x320]
movaps xmm2, xmm13
mov rcx, qword [0x1400eac08]
call fcn.14007e9d0
lea rdx, [r14 + 0x310]
movaps xmm2, xmm13
mov rcx, qword [0x1400eac08]
call fcn.14007e9d0
lea rdx, [0x14005da90]
mov rcx, r14
call fcn.1400495c0
call fcn.140077460
cmp byte [rax + 0x229], 0
je 0x14005d846
lea rdx, [r14 + 0x368]
mov rcx, qword [0x1400eac08]
call fcn.14007ead0
test al, al
je 0x14005d834
movabs r15, 0x431bde82d7b634db
cmp qword [0x1400eabf0], 0
jne 0x14005d7aa
lea rcx, [rbp - 0x80]
call fcn.140037b60
mov rcx, qword [rax]
mov rax, r15
imul rcx
sar rdx, 0x12
mov rax, rdx
shr rax, 0x3f
add rdx, rax
mov qword [0x1400eabf0], rdx
lea rdx, [r14 + 0x2d0]
mov rcx, qword [0x1400eac08]
call fcn.14007e950
mulss xmm0, dword [0x1400d2b60]
movss dword [0x1400eabdc], xmm0
lea rcx, [rbp - 0x80]
call fcn.140037b60
mov rdi, rax
lea rdx, [r14 + 0x2d0]
mov rcx, qword [0x1400eac08]
call fcn.14007e950
mulss xmm0, dword [0x1400d2b60]
xorps xmm1, xmm1
cvtsi2ss xmm1, qword [0x1400eabf0]
addss xmm0, xmm1
cvttss2si ecx, xmm0
movsxd r8, ecx
mov rax, r15
imul qword [rdi]
sar rdx, 0x12
mov rax, rdx
shr rax, 0x3f
add rdx, rax
sub r8, rdx
xorps xmm0, xmm0
cvtsi2ss xmm0, r8
movss dword [0x1400eabd8], xmm0
jmp 0x14005d846
mov qword [0x1400eabf0], rsi
mov qword [0x1400eabd8], 0
call fcn.140077460
cmp byte [rax + 0x22e], 0
je 0x14005d917
lea rdx, [r14 + 0x214]
movss xmm2, dword [0x1400d2bc4]
mov rcx, qword [0x1400eac08]
call fcn.14007e9d0
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14005d917
mov dword [rsp + 0x40], 1
mov dword [rsp + 0x71], esi
mov word [rsp + 0x75], si
mov byte [rsp + 0x77], 0
mov dword [rsp + 0x50], 0x55aa556
lea rax, [r14 + 0x390]
mov qword [rsp + 0x58], rax
lea rax, [rsp + 0x40]
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], 4
mov rcx, qword [0x1400eac08]
mov eax, dword [rcx]
mov dword [rsp + 0x54], eax
mov byte [rsp + 0x70], 1
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x30], rsi
mov dword [rsp + 0x28], esi
mov qword [rsp + 0x20], rsi
mov r9d, 0x28
lea r8, [rsp + 0x50]
mov edx, 0x220914
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
lea rdx, [r14 + 0x32b]
mov rcx, qword [0x1400eac08]
call fcn.14007eb50
nop
mov rdx, qword [rbp - 0x58]
cmp rdx, 7
jbe 0x14005d984
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14005d952
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14005d9e5
call fcn.14008d63c
jmp 0x14005d984
xorps xmm0, xmm0
movdqa xmmword [0x1400eaa50], xmm0
mov rax, qword [0x1400eaa80]
cmp rax, qword [0x1400eaa88]
je 0x14005d97b
mov qword [0x1400eaa88], rax
xor esi, esi
mov qword [0x1400eaa70], rsi
mov rcx, qword [rbp - 0x50]
xor rcx, rsp
call fcn.14008d3a0
lea r11, [rsp + 0x160]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x30]
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 xmm11, xmmword [r11 - 0x60]
movaps xmm12, xmmword [r11 - 0x70]
movaps xmm13, xmmword [r11 - 0x80]
movaps xmm14, xmmword [r11 - 0x90]
movaps xmm15, xmmword [r11 - 0xa0]
mov rsp, r11
pop r15
pop r14
pop rbp
ret
call fcn.140096884
nop
call fcn.140096884
nop
int3