Function at 0x140056620
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
mov qword [rax + 0x20], r12
push rbp
push r14
push r15
lea rbp, [rax - 0xb8]
sub rsp, 0x1a0
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 [0x1400dc100]
xor rax, rsp
mov qword [rbp - 0x10], rax
mov rax, qword [0x1400dfb18]
test rax, rax
je 0x140057a92
cmp qword [0x1400dfb10], 0
je 0x140057a92
xor esi, esi
mov qword [rsp + 0x78], rsi
mov word [rbp - 0x50], 0x100
mov dword [rbp - 0x4e], esi
mov word [rbp - 0x4a], si
mov dword [rbp - 0x70], 0x55aa556
add rax, 0x608
mov qword [rbp - 0x68], rax
lea rax, [rsp + 0x78]
mov qword [rbp - 0x60], rax
mov qword [rbp - 0x58], 8
mov rcx, qword [0x1400dfcc8]
mov eax, dword [rcx]
mov dword [rbp - 0x6c], 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, [rbp - 0x70]
mov edx, 0x220914
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov rbx, qword [rsp + 0x78]
test rbx, rbx
je 0x140057abd
mov qword [rsp + 0x78], rsi
mov word [rbp - 0x50], 0x100
mov dword [rbp - 0x4e], esi
mov word [rbp - 0x4a], si
mov dword [rbp - 0x70], 0x55aa556
mov rax, qword [0x1400dfb18]
add rax, 0x778
mov qword [rbp - 0x68], rax
lea rax, [rsp + 0x78]
mov qword [rbp - 0x60], rax
mov qword [rbp - 0x58], 8
mov rcx, qword [0x1400dfcc8]
mov eax, dword [rcx]
mov dword [rbp - 0x6c], 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, [rbp - 0x70]
mov edx, 0x220914
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov r14, qword [rsp + 0x78]
test r14, r14
je 0x140057abd
mov qword [rsp + 0x78], rsi
mov word [rbp - 0x50], 0x100
mov dword [rbp - 0x4e], esi
mov word [rbp - 0x4a], si
mov dword [rbp - 0x70], 0x55aa556
mov rax, qword [0x1400dfb18]
add rax, 0x840
mov qword [rbp - 0x68], rax
lea rax, [rsp + 0x78]
mov qword [rbp - 0x60], rax
mov qword [rbp - 0x58], 8
mov rcx, qword [0x1400dfcc8]
mov eax, dword [rcx]
mov dword [rbp - 0x6c], 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, [rbp - 0x70]
mov edx, 0x220914
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov rdi, qword [rsp + 0x78]
test rdi, rdi
je 0x140057abd
call fcn.14006e590
mov ecx, dword [rax + 0x20c]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x140056851
call fcn.14006e590
movss xmm2, dword [rax + 0x214]
jmp 0x14005685e
call fcn.14006e590
movss xmm2, dword [rax + 0x218]
mov rdx, qword [0x1400dfb30]
add rdx, 0x18
mov rcx, qword [0x1400dfcc8]
call fcn.140075c80
call fcn.14006e590
mov ecx, dword [rax + 0x21c]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
xorps xmm12, xmm12
movss xmm15, dword [0x1400c91c4]
test ax, ax
je 0x140056f19
lea rdx, [r14 + 0x10]
movss xmm2, dword [0x1400c91c8]
mov rcx, qword [0x1400dfcc8]
call fcn.140075c80
mov qword [rbp - 0x68], rsi
mov qword [rbp - 0x70], 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, [rbp - 0x70]
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], 0x10
mov rcx, qword [0x1400dfcc8]
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 [rsp + 0x40], esi
mov dword [rsp + 0x44], 0x3d1fbe77
xorps xmm6, xmm6
movss xmm13, dword [0x1400c922c]
mov ecx, 0x57
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
movss xmm14, dword [0x1400c91fc]
test ax, ax
je 0x140056a71
movss xmm2, dword [rbp - 0x70]
movaps xmm11, xmm2
mulss xmm11, xmm14
movss xmm1, dword [rbp - 0x6c]
movaps xmm7, xmm1
mulss xmm7, xmm14
movss xmm0, dword [rbp - 0x68]
movaps xmm6, xmm0
mulss xmm6, xmm14
movaps xmm9, xmm11
mulss xmm9, xmm2
movaps xmm8, xmm7
mulss xmm8, xmm1
movaps xmm3, xmm6
mulss xmm3, xmm0
movaps xmm4, xmm7
mulss xmm4, xmm2
movaps xmm10, xmm6
mulss xmm10, xmm2
movaps xmm5, xmm6
mulss xmm5, xmm1
movss xmm0, dword [rbp - 0x64]
mulss xmm11, xmm0
mulss xmm7, xmm0
mulss xmm6, xmm0
movaps xmm0, xmm3
addss xmm0, xmm8
movaps xmm2, xmm15
subss xmm2, xmm0
mulss xmm2, xmm12
movaps xmm0, xmm4
subss xmm0, xmm6
mulss xmm0, xmm12
addss xmm2, xmm0
movaps xmm0, xmm7
addss xmm0, xmm10
addss xmm2, xmm0
addss xmm3, xmm9
movaps xmm1, xmm15
subss xmm1, xmm3
mulss xmm1, xmm12
addss xmm6, xmm4
mulss xmm6, xmm12
addss xmm1, xmm6
movaps xmm0, xmm5
subss xmm0, xmm11
addss xmm1, xmm0
subss xmm10, xmm7
mulss xmm10, xmm12
addss xmm11, xmm5
mulss xmm11, xmm12
addss xmm10, xmm11
addss xmm8, xmm9
movaps xmm0, xmm15
subss xmm0, xmm8
addss xmm10, xmm0
movss dword [rbp - 0x80], xmm10
movaps xmm0, xmm2
unpcklps xmm0, xmm1
movsd qword [rsp + 0x78], xmm0
movsd qword [rsp + 0x40], xmm0
movd eax, xmm10
movd xmm6, eax
mov ecx, 0x53
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x140056ba7
movss xmm2, dword [rbp - 0x70]
movaps xmm11, xmm2
mulss xmm11, xmm14
movss xmm1, dword [rbp - 0x6c]
movaps xmm7, xmm1
mulss xmm7, xmm14
movss xmm0, dword [rbp - 0x68]
movaps xmm6, xmm0
mulss xmm6, xmm14
movaps xmm9, xmm11
mulss xmm9, xmm2
movaps xmm8, xmm7
mulss xmm8, xmm1
movaps xmm3, xmm6
mulss xmm3, xmm0
movaps xmm4, xmm7
mulss xmm4, xmm2
movaps xmm10, xmm6
mulss xmm10, xmm2
movaps xmm5, xmm6
mulss xmm5, xmm1
movss xmm0, dword [rbp - 0x64]
mulss xmm11, xmm0
mulss xmm7, xmm0
mulss xmm6, xmm0
movaps xmm0, xmm3
addss xmm0, xmm8
movaps xmm2, xmm15
subss xmm2, xmm0
mulss xmm2, xmm12
movaps xmm0, xmm4
subss xmm0, xmm6
mulss xmm0, xmm12
addss xmm2, xmm0
movaps xmm0, xmm7
addss xmm0, xmm10
mulss xmm0, xmm15
subss xmm2, xmm0
addss xmm3, xmm9
movaps xmm1, xmm15
subss xmm1, xmm3
mulss xmm1, xmm12
addss xmm6, xmm4
mulss xmm6, xmm12
addss xmm1, xmm6
movaps xmm0, xmm5
subss xmm0, xmm11
mulss xmm0, xmm15
subss xmm1, xmm0
subss xmm10, xmm7
mulss xmm10, xmm12
addss xmm11, xmm5
mulss xmm11, xmm12
addss xmm10, xmm11
addss xmm8, xmm9
movaps xmm0, xmm15
subss xmm0, xmm8
mulss xmm0, xmm15
subss xmm10, xmm0
movss dword [rbp - 0x80], xmm10
movaps xmm0, xmm2
unpcklps xmm0, xmm1
movsd qword [rsp + 0x78], xmm0
movsd qword [rsp + 0x40], xmm0
movd eax, xmm10
movd xmm6, eax
mov ecx, 0x44
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x140056ccf
movss xmm2, dword [rbp - 0x70]
movaps xmm11, xmm2
mulss xmm11, xmm14
movss xmm1, dword [rbp - 0x6c]
movaps xmm10, xmm1
mulss xmm10, xmm14
movss xmm0, dword [rbp - 0x68]
movaps xmm6, xmm0
mulss xmm6, xmm14
movaps xmm9, xmm11
mulss xmm9, xmm2
movaps xmm8, xmm10
mulss xmm8, xmm1
movaps xmm3, xmm6
mulss xmm3, xmm0
movaps xmm4, xmm10
mulss xmm4, xmm2
movaps xmm7, xmm6
mulss xmm7, xmm2
movaps xmm5, xmm6
mulss xmm5, xmm1
movss xmm0, dword [rbp - 0x64]
mulss xmm11, xmm0
mulss xmm10, xmm0
mulss xmm6, xmm0
movaps xmm0, xmm3
addss xmm0, xmm8
movaps xmm2, xmm15
subss xmm2, xmm0
movaps xmm1, xmm4
subss xmm1, xmm6
mulss xmm1, xmm12
addss xmm2, xmm1
movaps xmm0, xmm10
addss xmm0, xmm7
mulss xmm0, xmm12
addss xmm2, xmm0
addss xmm3, xmm9
movaps xmm1, xmm15
subss xmm1, xmm3
mulss xmm1, xmm12
addss xmm6, xmm4
addss xmm1, xmm6
movaps xmm0, xmm5
subss xmm0, xmm11
mulss xmm0, xmm12
addss xmm1, xmm0
addss xmm11, xmm5
mulss xmm11, xmm12
subss xmm7, xmm10
addss xmm11, xmm7
addss xmm8, xmm9
movaps xmm0, xmm15
subss xmm0, xmm8
mulss xmm0, xmm12
addss xmm11, xmm0
movss dword [rbp - 0x80], xmm11
movaps xmm0, xmm2
unpcklps xmm0, xmm1
movsd qword [rsp + 0x78], xmm0
movsd qword [rsp + 0x40], xmm0
movd eax, xmm11
movd xmm6, eax
mov ecx, 0x41
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x140056e06
movss xmm2, dword [rbp - 0x70]
movaps xmm11, xmm2
mulss xmm11, xmm14
movss xmm1, dword [rbp - 0x6c]
movaps xmm10, xmm1
mulss xmm10, xmm14
movss xmm0, dword [rbp - 0x68]
movaps xmm6, xmm0
mulss xmm6, xmm14
movaps xmm9, xmm11
mulss xmm9, xmm2
movaps xmm8, xmm10
mulss xmm8, xmm1
movaps xmm3, xmm6
mulss xmm3, xmm0
movaps xmm4, xmm10
mulss xmm4, xmm2
movaps xmm7, xmm6
mulss xmm7, xmm2
movaps xmm5, xmm6
mulss xmm5, xmm1
movss xmm0, dword [rbp - 0x64]
mulss xmm11, xmm0
mulss xmm10, xmm0
mulss xmm6, xmm0
movaps xmm2, xmm4
subss xmm2, xmm6
mulss xmm2, xmm12
movaps xmm0, xmm3
addss xmm0, xmm8
movaps xmm1, xmm15
subss xmm1, xmm0
mulss xmm1, xmm15
subss xmm2, xmm1
movaps xmm0, xmm10
addss xmm0, xmm7
mulss xmm0, xmm12
addss xmm2, xmm0
addss xmm3, xmm9
movaps xmm1, xmm15
subss xmm1, xmm3
mulss xmm1, xmm12
addss xmm6, xmm4
mulss xmm6, xmm15
subss xmm1, xmm6
movaps xmm0, xmm5
subss xmm0, xmm11
mulss xmm0, xmm12
addss xmm1, xmm0
addss xmm11, xmm5
mulss xmm11, xmm12
subss xmm7, xmm10
mulss xmm7, xmm15
subss xmm11, xmm7
addss xmm8, xmm9
movaps xmm0, xmm15
subss xmm0, xmm8
mulss xmm0, xmm12
addss xmm11, xmm0
movss dword [rbp - 0x80], xmm11
movaps xmm0, xmm2
unpcklps xmm0, xmm1
movsd qword [rsp + 0x78], xmm0
movsd qword [rsp + 0x40], xmm0
movd eax, xmm11
movd xmm6, eax
mov ecx, 0x20
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x140056e1e
mov dword [rsp + 0x44], 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 0x140056e42
movss xmm13, dword [0x1400c9254]
lea rdx, [rbx + 0x74]
movss xmm2, dword [0x1400c91b4]
mov rcx, qword [0x1400dfcc8]
call fcn.140075c80
lea rdx, [rbx + 0x70]
movss xmm2, dword [0x1400c91e8]
mov rcx, qword [0x1400dfcc8]
call fcn.140075c80
mulss xmm6, xmm13
movss xmm1, dword [rsp + 0x44]
mulss xmm1, xmm13
movss xmm0, dword [rsp + 0x40]
mulss xmm0, xmm13
movss dword [rsp + 0x48], xmm6
unpcklps xmm0, xmm1
movsd qword [rsp + 0x40], xmm0
movsd qword [rsp + 0x40], xmm0
movss dword [rsp + 0x48], 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, [rsp + 0x40]
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], 0xc
mov rcx, qword [0x1400dfcc8]
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.14006e590
cmp byte [rax + 0x224], sil
je 0x140056f53
lea rdx, [rbx + 0xcc]
xorps xmm2, xmm2
mov rcx, qword [0x1400dfcc8]
call fcn.140075c80
lea rdx, [rbx + 0xd0]
xorps xmm2, xmm2
mov rcx, qword [0x1400dfcc8]
call fcn.140075c80
call fcn.14006e590
cmp byte [rax + 0x225], sil
je 0x140056fc2
mov ecx, 0x20
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x140056fc2
lea rdx, [rbx + 0xd8]
movss xmm2, dword [0x1400c9188]
mov rcx, qword [0x1400dfcc8]
call fcn.140075c80
lea rdx, [rbx + 0xdc]
movss xmm2, dword [0x1400c916c]
mov rcx, qword [0x1400dfcc8]
call fcn.140075c80
lea rdx, [rbx + 0xd4]
movss xmm2, dword [0x1400c9480]
mov rcx, qword [0x1400dfcc8]
call fcn.140075c80
call fcn.14006e590
cmp byte [rax + 0x226], sil
je 0x1400570ee
mov qword [rsp + 0x78], rsi
mov word [rsp + 0x70], 0x100
mov dword [rsp + 0x72], esi
mov word [rsp + 0x76], si
mov dword [rsp + 0x50], 0x55aa556
mov rax, qword [0x1400dfb18]
add rax, 0x780
mov qword [rsp + 0x58], rax
lea rax, [rsp + 0x78]
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], 8
mov rcx, qword [0x1400dfcc8]
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 + 0x78]
test rbx, rbx
je 0x1400570ee
mov dword [rsp + 0x78], 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 + 0x78]
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], 4
mov rcx, qword [0x1400dfcc8]
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 + 0x78]
shr eax, 9
test al, 1
je 0x1400570ee
lea rdx, [rbx + 0x3a0]
mov rcx, qword [0x1400dfcc8]
call fcn.140075e00
mov rcx, qword [0x1400dfb18]
call fcn.140048c40
mov rbx, rax
test rax, rax
je 0x140057abd
lea rdx, [rbp - 0x30]
mov rcx, rax
call fcn.140048980
nop
cmp qword [rbp - 0x20], 0
je 0x140057a50
mov qword [rsp + 0x78], 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 + 0x78]
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], 8
mov rcx, qword [0x1400dfcc8]
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 + 0x78]
test r14, r14
je 0x140057a50
lea rdx, [rbp - 0x70]
mov rcx, rbx
call fcn.140048980
mov rcx, rax
call fcn.140047420
test al, al
je 0x140057a50
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 qword [rsp + 0x58], rdi
lea rax, [rsp + 0x40]
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], 8
mov rcx, qword [0x1400dfcc8]
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 [rsp + 0x40]
test rax, rax
je 0x140057a50
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, 0x1a0
mov qword [rsp + 0x58], rax
lea rax, [rsp + 0x40]
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], 8
mov rcx, qword [0x1400dfcc8]
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 0x140057a50
call fcn.14006e590
cmp byte [rax + 0x227], 0
je 0x14005754c
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, [rbx + 0x30]
mov qword [rsp + 0x58], rax
lea rax, [rsp + 0x40]
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], 8
mov rcx, qword [0x1400dfcc8]
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 0x140057a50
mov qword [rsp + 0x40], 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, [rsp + 0x40]
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], 8
mov rcx, qword [0x1400dfcc8]
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 [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 + 0x90]
mov qword [rsp + 0x58], rax
lea rax, [rsp + 0x40]
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], 8
mov rcx, qword [0x1400dfcc8]
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 0x1400574a6
lea rdx, [rbx + 0x24]
xorps xmm2, xmm2
mov rcx, qword [0x1400dfcc8]
call fcn.140075c80
lea rdx, [rbx + 0x20]
xorps xmm2, xmm2
mov rcx, qword [0x1400dfcc8]
call fcn.140075c80
lea rdx, [rbx + 0x2c]
xorps xmm2, xmm2
mov rcx, qword [0x1400dfcc8]
call fcn.140075c80
lea rdx, [rbx + 0x28]
xorps xmm2, xmm2
mov rcx, qword [0x1400dfcc8]
call fcn.140075c80
lea rdx, [rbx + 0x30]
xorps xmm2, xmm2
mov rcx, qword [0x1400dfcc8]
call fcn.140075c80
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 + 0x80]
mov qword [rsp + 0x58], rax
lea rax, [rsp + 0x40]
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], 8
mov rcx, qword [0x1400dfcc8]
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 0x14005754c
lea rdx, [rbx + 0x20]
xorps xmm2, xmm2
mov rcx, qword [0x1400dfcc8]
call fcn.140075c80
lea rdx, [rbx + 0x24]
xorps xmm2, xmm2
mov rcx, qword [0x1400dfcc8]
call fcn.140075c80
call fcn.14006e590
cmp byte [rax + 0x228], 0
je 0x140057569
lea rdx, [0x140057b30]
mov rcx, r14
call fcn.140048750
call fcn.14006e590
cmp byte [rax + 0x22a], 0
je 0x1400575a3
lea rdx, [r14 + 0x2f8]
xorps xmm2, xmm2
mov rcx, qword [0x1400dfcc8]
call fcn.140075c80
lea rdx, [r14 + 0x2fc]
xorps xmm2, xmm2
mov rcx, qword [0x1400dfcc8]
call fcn.140075c80
call fcn.14006e590
cmp byte [rax + 0x22b], 0
je 0x1400575c4
lea rdx, [r14 + 0x2b0]
mov rcx, qword [0x1400dfcc8]
call fcn.140075e00
call fcn.14006e590
cmp byte [rax + 0x22c], 0
je 0x140057623
lea rdx, [r14 + 0x300]
mov rcx, qword [0x1400dfcc8]
call fcn.140075d00
mov rbx, rax
lea rdx, [rax + 0x80]
mov rcx, qword [0x1400dfcc8]
call fcn.140075d00
mov rdi, rax
test rbx, rbx
jne 0x140057608
test rax, rax
je 0x140057623
lea rdx, [rbp - 0x30]
lea rcx, [rbp - 0x70]
call fcn.14006ee30
mov r8, rdi
mov rdx, rbx
mov rcx, rax
call fcn.140054910
call fcn.14006e590
cmp byte [rax + 0x22d], 0
je 0x1400577ac
movabs rax, 0x54dda969d589afce
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x40]
mov qword [rbp - 0x40], rax
movabs rcx, 0xfa73a72f16be3030
mov qword [rsp + 0x40], rcx
mov rax, qword [rsp + 0x40]
mov qword [rbp - 0x38], rax
movabs rax, 0x54bca902d5e6afab
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x40]
mov qword [rbp - 0x70], rax
mov qword [rsp + 0x40], rcx
mov rax, qword [rsp + 0x40]
mov qword [rbp - 0x68], rax
movdqa xmm0, xmmword [rbp - 0x40]
xorps xmm0, xmmword [rbp - 0x70]
movdqa xmmword [rbp - 0x40], xmm0
lea rax, [rbp - 0x40]
mov r10, 0xffffffffffffffff
inc r10
cmp word [rax + r10*2], 0
jne 0x1400576a4
lea rbx, [rbp - 0x30]
mov r15, qword [rbp - 0x18]
cmp r15, 7
cmova rbx, qword [rbp - 0x30]
mov rax, qword [rbp - 0x20]
cmp r10, rax
ja 0x1400577b0
sub rax, r10
test r10, r10
je 0x140057760
lea rdi, [rbx + 2]
lea rdi, [rdi + rax*2]
mov rcx, rbx
mov r11, qword [rbp - 0x40]
nop dword [rax + rax]
mov rax, rdi
sub rax, rcx
sar rax, 1
mov rdx, rsi
je 0x14005771a
cmp word [rcx], r11w
je 0x140057717
cmp rax, 1
je 0x14005771a
dec rax
add rcx, 2
cmp word [rcx], r11w
jne 0x140057704
mov rdx, rcx
mov rcx, rdx
test rdx, rdx
je 0x1400577b0
mov r8, r10
lea rdx, [rbp - 0x40]
test r10, r10
je 0x140057754
lea rax, [rbp - 0x40]
mov r9, rcx
sub r9, rax
nop dword [rax]
movzx eax, word [r9 + rdx]
cmp ax, word [rdx]
jne 0x1400577a3
add rdx, 2
sub r8, 1
jne 0x140057740
sub rcx, rbx
sar rcx, 1
cmp rcx, 0xffffffffffffffff
je 0x1400577b0
lea rdx, [r14 + 0x3bc]
movaps xmm2, xmm15
mov rcx, qword [0x1400dfcc8]
call fcn.140075c80
lea rdx, [r14 + 0x3a8]
movaps xmm2, xmm15
mov rcx, qword [0x1400dfcc8]
call fcn.140075c80
lea rdx, [r14 + 0x3b8]
mov rcx, qword [0x1400dfcc8]
call fcn.140075e00
jmp 0x1400577b0
add rcx, 2
jmp 0x1400576f0
mov r15, qword [rbp - 0x18]
call fcn.14006e590
cmp byte [rax + 0x22f], 0
je 0x140057878
lea rdx, [r14 + 0x310]
movss xmm6, dword [0x1400c94b0]
movaps xmm2, xmm6
mov rcx, qword [0x1400dfcc8]
call fcn.140075c80
lea rdx, [r14 + 0x314]
movaps xmm2, xmm6
mov rcx, qword [0x1400dfcc8]
call fcn.140075c80
lea rdx, [r14 + 0x354]
movaps xmm2, xmm12
mov rcx, qword [0x1400dfcc8]
call fcn.140075c80
lea rdx, [r14 + 0x358]
movaps xmm2, xmm12
mov rcx, qword [0x1400dfcc8]
call fcn.140075c80
lea rdx, [r14 + 0x31c]
movaps xmm2, xmm12
mov rcx, qword [0x1400dfcc8]
call fcn.140075c80
lea rdx, [r14 + 0x328]
movaps xmm2, xmm12
mov rcx, qword [0x1400dfcc8]
call fcn.140075c80
lea rdx, [r14 + 0x318]
movaps xmm2, xmm12
mov rcx, qword [0x1400dfcc8]
call fcn.140075c80
lea rdx, [0x140057bc0]
mov rcx, r14
call fcn.140048750
call fcn.14006e590
cmp byte [rax + 0x229], 0
je 0x14005797e
lea rdx, [r14 + 0x370]
mov rcx, qword [0x1400dfcc8]
call fcn.140075d80
test al, al
je 0x14005796c
movabs r12, 0x431bde82d7b634db
cmp qword [0x1400dfcb0], 0
jne 0x1400578e1
lea rcx, [rsp + 0x40]
call fcn.140037400
mov rcx, qword [rax]
mov rax, r12
imul rcx
sar rdx, 0x12
mov rax, rdx
shr rax, 0x3f
add rdx, rax
mov qword [0x1400dfcb0], rdx
lea rdx, [r14 + 0x2d8]
mov rcx, qword [0x1400dfcc8]
call fcn.140075c00
mulss xmm0, dword [0x1400c9468]
movss dword [0x1400dfc9c], xmm0
lea rcx, [rsp + 0x40]
call fcn.140037400
mov rdi, qword [rax]
lea rdx, [r14 + 0x2d8]
mov rcx, qword [0x1400dfcc8]
call fcn.140075c00
mulss xmm0, dword [0x1400c9468]
xorps xmm1, xmm1
cvtsi2ss xmm1, qword [0x1400dfcb0]
addss xmm0, xmm1
cvttss2si ecx, xmm0
movsxd r8, ecx
mov rax, r12
imul rdi
sar rdx, 0x12
mov rax, rdx
shr rax, 0x3f
add rdx, rax
sub r8, rdx
xorps xmm0, xmm0
cvtsi2ss xmm0, r8
movss dword [0x1400dfc98], xmm0
jmp 0x14005797e
mov qword [0x1400dfcb0], rsi
mov qword [0x1400dfc98], 0
call fcn.14006e590
cmp byte [rax + 0x22e], 0
je 0x140057a54
lea rdx, [r14 + 0x21c]
movss xmm2, dword [0x1400c94cc]
mov rcx, qword [0x1400dfcc8]
call fcn.140075c80
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x140057a54
mov dword [rsp + 0x78], 1
mov dword [rsp + 0x71], esi
mov word [rsp + 0x75], si
mov byte [rsp + 0x77], 0
mov dword [rsp + 0x50], 0x55aa556
lea rax, [r14 + 0x398]
mov qword [rsp + 0x58], rax
lea rax, [rsp + 0x78]
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], 4
mov rcx, qword [0x1400dfcc8]
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 + 0x333]
mov rcx, qword [0x1400dfcc8]
call fcn.140075e00
jmp 0x140057a54
mov r15, qword [rbp - 0x18]
cmp r15, 7
jbe 0x140057abd
lea rdx, [r15*2 + 2]
mov rcx, qword [rbp - 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140057a8b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140057b22
call fcn.140083dfc
jmp 0x140057abd
xorps xmm0, xmm0
movdqu xmmword [0x1400dfb10], xmm0
mov rax, qword [0x1400dfb40]
cmp rax, qword [0x1400dfb48]
je 0x140057ab4
mov qword [0x1400dfb48], rax
xor esi, esi
mov qword [0x1400dfb30], rsi
mov rcx, qword [rbp - 0x10]
xor rcx, rsp
call fcn.140083b60
lea r11, [rsp + 0x1a0]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x30]
mov r12, qword [r11 + 0x38]
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.14008cef0
int3