Function at 0x1400210f8
Capabilities:
Get disk information
Log keystrokes via polling

Disassembly:
mov rax, rsp
mov qword [rax + 0x20], r9
mov qword [rax + 0x10], rdx
mov qword [rax + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x188
xor edi, edi
movaps xmmword [rax - 0x58], xmm7
movzx eax, r8b
mov ebx, edi
mov r13d, edi
mov ebp, r8d
and ebp, 0x10000
mov r12d, r8d
mov esi, edi
and r12d, 0x20000
cmp eax, edi
mov r14, rcx
sete bl
cmp eax, 1
mov dword [rsp + 0xa8], edi
sete r13b
cmp eax, 2
sete sil
mov dword [rsp + 0x98], r13d
cmp ebx, edi
jne 0x140021174
mov byte [rsp + 0x1e0], dil
cmp r13d, edi
je 0x14002117c
mov byte [rsp + 0x1e0], 1
lea r15, [rdx - 2]
lea rcx, [0x1400d98d0]
lea rdx, [rsp + 0x1d8]
mov r8d, 1
mov dword [rsp + 0x60], edi
mov qword [rsp + 0x108], r15
mov qword [rsp + 0xc8], r15
call fcn.14004e558
mov ecx, 0x24
movzx eax, al
mov dword [rsp + 0x70], 0x100001
mov dword [rsp + 0x88], 0x100002
mov dword [rsp + 0x40], 0x100003
lea edx, [rcx + 0x58]
lea r8d, [rcx - 1]
mov dword [rsp + 0xd8], eax
cmp ebx, edi
jne 0x1400211fd
cmp r13d, edi
je 0x1400211f2
mov dword [rsp + 0x70], edx
mov dword [rsp + 0x40], ecx
jmp 0x140021205
cmp esi, edi
je 0x14002120d
mov dword [rsp + 0xa8], edx
mov dword [rsp + 0x40], edx
mov dword [rsp + 0x70], ecx
mov dword [rsp + 0x88], r8d
mov r13, qword [rsp + 0x1d8]
mov byte [rsp + 0x31], dil
mov qword [rsp + 0x78], r13
cmp cx, word [r13]
je 0x140021234
cmp r8w, word [r13]
je 0x140021234
cmp dx, word [r13]
jne 0x140021255
movzx eax, word [r13]
add r13, 2
mov dword [rsp + 0xa8], eax
mov byte [rsp + 0x31], al
mov qword [rsp + 0x78], r13
mov qword [rsp + 0x1d8], r13
mov eax, 0x5b
cmp ax, word [r13]
sete al
mov byte [rsp + 0x30], al
cmp al, dil
je 0x140021318
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov edx, 9
dec eax
lea r14d, [rdx + 0x17]
cdqe
lea rcx, [r13 + rax*2]
cmp dx, word [rcx]
ja 0x140021295
cmp word [rcx], 0xd
jbe 0x14002129b
cmp r14w, word [rcx]
jne 0x1400212a4
mov word [rcx], di
sub rcx, 2
jmp 0x14002128a
mov r14, qword [rsp + 0x1d0]
mov eax, 0x5d
cmp ax, word [rcx]
jne 0x1400212b9
mov word [rcx], di
add r13, 2
mov qword [rsp + 0x78], r13
movzx eax, word [r13]
cmp ax, di
je 0x140021318
mov ecx, 0x20
lea r8d, [rcx + 0x3b]
lea r9d, [rcx + 8]
cmp dx, ax
ja 0x1400212e4
cmp ax, 0xd
jbe 0x1400212fd
cmp cx, ax
je 0x1400212fd
cmp r8w, ax
je 0x1400212f5
cmp r9w, ax
jne 0x14002130b
mov word [r15], ax
add r15, 2
add r13, 2
mov ax, word [r13]
cmp ax, di
jne 0x1400212d9
mov qword [rsp + 0xc8], r15
mov qword [rsp + 0x78], r13
xorpd xmm7, xmm7
movsxd rax, ebx
movsxd rsi, esi
mov qword [rsp + 0xf8], rax
movsxd rax, ebp
mov dword [rsp + 0xf0], 0x26
mov qword [rsp + 0x110], rax
movsxd rax, r12d
mov qword [rsp + 0xc0], rsi
mov r12d, 0x3d
mov dword [rsp + 0xd4], 0x40
mov qword [rsp + 0x100], rax
mov r15d, 0x27
lea rdx, [rsp + 0x1d8]
lea rcx, [0x1400d98d0]
lea r8d, [r15 - 0x26]
mov qword [rsp + 0x1d8], r13
call fcn.14004e558
mov r10, qword [rsp + 0x1d8]
mov qword [rsp + 0x90], rdi
movzx eax, al
mov rbx, r10
mov qword [rsp + 0x48], rdi
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x80], rdi
mov qword [rsp + 0xa0], rdi
mov dword [rsp + 0xd0], eax
movzx eax, word [r10]
mov qword [rsp + 0x38], rbx
mov r13, rdi
mov qword [rsp + 0x58], rdi
mov bpl, dil
cmp byte [rsp + 0x30], dil
je 0x14002180e
mov r12d, dword [rsp + 0x98]
lea ecx, [r15 - 5]
mov r13, r10
mov qword [rsp + 0x78], r10
mov qword [rsp + 0x68], r10
mov r11b, dil
mov ebx, r12d
mov r8b, dil
cmp cx, ax
je 0x140021427
cmp r15w, ax
je 0x140021427
lea r15d, [rcx - 0x19]
cmp ax, di
je 0x14002146a
sub ax, 0x30
cmp ax, r15w
lea rax, [r10 + 2]
cmova ebx, edi
jmp 0x140021465
movzx eax, word [r10 + 2]
mov r15d, 9
lea rcx, [rsp + 0x68]
sub ax, 0x30
mov r8d, 0xc1
cmp ax, r15w
cmova ebx, edi
xor edx, edx
call fcn.140020840
mov r10, qword [rsp + 0x1d8]
mov r11b, 1
mov r13, rax
mov qword [rsp + 0x78], rax
mov r8b, r11b
mov qword [rsp + 0x38], rax
lea rcx, [rsp + 0x38]
call fcn.140011910
mov rsi, qword [rsp + 0x38]
movsxd r9, ebx
movzx eax, word [rsi]
cmp ax, di
je 0x14002156f
mov ebx, 0x7c
cmp r15w, ax
ja 0x140021499
cmp ax, 0xd
jbe 0x1400214a3
mov ecx, 0x20
cmp cx, ax
jne 0x1400214c8
cmp r8b, 1
jg 0x14002156f
lea rcx, [rsp + 0x38]
inc r8b
call fcn.140011910
mov rsi, qword [rsp + 0x38]
sub rsi, 2
jmp 0x14002155a
mov edx, 0x3d
cmp ax, 0x3e
je 0x1400215eb
cmp ax, 0x3c
je 0x1400215eb
cmp ax, dx
je 0x1400215eb
cmp ax, 0x21
je 0x1400215eb
cmp r9, rdi
je 0x140021555
cmp r12d, edi
je 0x140021555
cmp word [rsp + 0xf0], ax
je 0x140021517
cmp bx, ax
je 0x140021517
cmp word [rsp + 0xd4], ax
jne 0x140021555
cmp r15w, word [rsi + 2]
ja 0x140021525
cmp word [rsi + 2], 0xd
jbe 0x14002152b
cmp cx, word [rsi + 2]
jne 0x140021555
movzx eax, word [rsi - 2]
cmp r15w, ax
ja 0x14002153b
cmp ax, 0xd
jbe 0x140021540
cmp cx, ax
jne 0x140021555
cmp r15w, ax
ja 0x140021550
cmp ax, 0xd
jbe 0x1400215d1
cmp cx, ax
je 0x1400215d1
cmp r8b, dil
jg 0x14002156f
add rsi, 2
mov qword [rsp + 0x38], rsi
mov ax, word [rsi]
cmp ax, di
jne 0x14002148d
cmp r11b, dil
jne 0x140021632
lea rcx, [rsp + 0x68]
xor edx, edx
mov r8d, 0xc1
call fcn.140020840
mov r13, rax
mov qword [rsp + 0x78], rax
cmp bpl, dil
je 0x14002162a
mov r8, rax
lea rcx, [rsp + 0xa0]
mov rdx, rsi
sub r8, rsi
sar r8, 1
call fcn.14004c0cc
mov r13, qword [rsp + 0xa0]
mov word [rsi], di
mov r10, qword [rsp + 0x1d8]
mov qword [rsp + 0x58], r13
jmp 0x140021652
movzx eax, word [rsi]
cmp word [rsi + 2], ax
jne 0x1400215e6
mov word [rsi], di
mov bpl, 5
add rsi, 2
jmp 0x1400215ee
mov bpl, 3
jmp 0x1400215ee
mov bpl, 1
lea rax, [rsi + 2]
mov qword [rsp + 0x68], rax
cmp bpl, 1
jne 0x140021578
cmp word [rax], 0x3e
je 0x14002161c
cmp word [rax], 0x3c
je 0x14002161c
cmp word [rax], dx
je 0x14002161c
cmp word [rax], 0x21
jne 0x140021578
add rax, 2
mov qword [rsp + 0x68], rax
jmp 0x140021578
mov r10, qword [rsp + 0x1d8]
cmp word [r13], di
je 0x14002164f
mov word [r13], di
mov r10, qword [rsp + 0x1d8]
add r13, 2
mov qword [rsp + 0x78], r13
mov r13, rdi
mov rsi, qword [rsp + 0xc0]
cmp byte [r14 + 0xd2], dil
jne 0x140021848
cmp byte [r14 + 0xd], dil
jne 0x140021848
lea r8, [rsp + 0x50]
xor r9d, r9d
mov rdx, r10
mov rcx, r14
mov byte [rsp + 0x20], 1
call fcn.140056690
mov rdx, qword [rsp + 0x50]
lea r8, [rsp + 0x50]
xor r9d, r9d
mov rcx, r14
mov qword [rsp + 0x118], rdx
mov qword [rsp + 0x50], rdi
mov byte [rsp + 0x20], dil
call fcn.140054c4c
cmp r13, rdi
je 0x140021742
lea r8, [rsp + 0x80]
xor r9d, r9d
mov rdx, r13
mov rcx, r14
mov byte [rsp + 0x20], 1
call fcn.140056690
mov rdx, qword [rsp + 0x80]
lea r8, [rsp + 0x80]
xor r9d, r9d
mov rcx, r14
mov qword [rsp + 0x120], rdx
mov qword [rsp + 0x80], rdi
mov byte [rsp + 0x20], dil
call fcn.140054c4c
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov rdx, qword [rsp + 0x80]
lea rcx, [rsp + 0x50]
movsxd rbx, eax
call fcn.14004bfa8
mov rax, qword [rsp + 0x50]
lea r13, [rax + rbx*2]
lea rcx, [rsp + 0x120]
mov r11, rbx
mov qword [rsp + 0x58], r13
call fcn.140044f24
lea rcx, [rsp + 0x118]
call fcn.140044f24
mov rcx, qword [rsp + 0x50]
mov qword [rsp + 0x1d8], rcx
call fcn.140012d94
mov rcx, qword [rsp + 0x1d8]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov r10, qword [rsp + 0x1d8]
movsxd rdx, eax
mov r15, r10
lea rbx, [r10 + rdx*2]
cmp r13, rdi
jne 0x1400217a3
mov rcx, r10
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov r10, qword [rsp + 0x1d8]
movsxd rcx, eax
lea r13, [r10 + rcx*2]
mov qword [rsp + 0x58], r13
mov r8d, dword [rsp + 0xa8]
mov r12, r10
mov r9d, edi
cmp r13, rdi
je 0x1400218ba
mov eax, 9
lea ecx, [rax + 0x17]
cmp ax, word [r12]
ja 0x1400217d5
cmp word [r12], 0xd
jbe 0x1400218ba
cmp cx, word [r12]
je 0x1400218ba
cmp r12, r13
jae 0x1400218ba
add r12, 2
jmp 0x1400217c2
cmp ax, 0x3e
je 0x140021818
cmp ax, 0x3c
je 0x140021818
cmp ax, r12w
je 0x140021818
cmp ax, 0x21
je 0x140021818
add rbx, 2
movzx eax, word [rbx]
cmp ax, di
jne 0x1400217ef
jmp 0x14002165a
lea rcx, [rsp + 0xa0]
mov rdx, rbx
mov bpl, 1
call fcn.140058a38
mov r13, qword [rsp + 0xa0]
mov word [rbx], di
mov r10, qword [rsp + 0x1d8]
mov qword [rsp + 0x58], r13
jmp 0x14002165a
lea r8, [rsp + 0x50]
xor r9d, r9d
mov rdx, r10
mov rcx, r14
mov byte [rsp + 0x20], 1
call fcn.140056690
cmp r13, rdi
je 0x14002174f
lea r8, [rsp + 0x80]
xor r9d, r9d
mov rdx, r13
mov rcx, r14
mov byte [rsp + 0x20], 1
call fcn.140056690
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov rdx, qword [rsp + 0x80]
lea rcx, [rsp + 0x50]
movsxd rbx, eax
call fcn.14004bfa8
mov rcx, qword [rsp + 0x50]
lea r13, [rcx + rbx*2]
mov r11, rbx
mov qword [rsp + 0x58], r13
jmp 0x140021754
sub r12, r10
sar r12, 1
cmp bpl, dil
jne 0x1400218ea
cmp rsi, rdi
jne 0x1400218ea
mov eax, 0x3a
cmp word [r10], ax
je 0x1400218ea
cmp dword [rsp + 0x98], edi
je 0x140021e4f
mov r12d, eax
jmp 0x14002218f
mov rax, r13
mov ecx, 0x3a
mov qword [rsp + 0x38], rax
cmp word [r10], cx
jne 0x140021909
cmp bpl, dil
mov ecx, 0xffffffff
cmove r8d, ecx
cmp bpl, 1
jne 0x140021933
lea rcx, [r13 + 2]
mov edx, 0x3d
cmp word [rcx], dx
je 0x14002192b
cmp word [r13], 0x3c
jne 0x140021938
cmp word [rcx], 0x3e
jne 0x140021938
mov rax, rcx
mov qword [rsp + 0x38], rcx
cmp bpl, dil
je 0x140021941
add rax, 2
mov qword [rsp + 0x38], rax
lea rcx, [rsp + 0x38]
call fcn.140011910
mov r11, qword [rsp + 0x38]
cmp byte [rsp + 0x1e0], dil
je 0x140021980
mov eax, 0x3f
cmp ax, word [r11]
jne 0x140021980
add r11, 2
lea rcx, [rsp + 0x1e8]
mov r14b, 1
mov qword [rsp + 0x38], r11
call fcn.140011910
jmp 0x140021983
mov r14b, dil
mov ecx, dword [rsp + 0x70]
cmp r8d, ecx
je 0x1400219b5
movzx eax, word [r10]
cmp ecx, eax
je 0x1400219a3
cmp dword [rsp + 0x88], eax
je 0x1400219a3
cmp dword [rsp + 0x40], eax
jne 0x1400219b5
add r10, 2
mov r8d, eax
mov r9d, eax
mov qword [rsp + 0x1d8], r10
mov eax, dword [rsp + 0x40]
cmp rsi, rdi
je 0x140021a02
cmp byte [rsp + 0x31], dil
jne 0x140021a02
cmp r8d, eax
je 0x140021a02
lea rcx, [rsp + 0x1d8]
call fcn.140011910
mov r10, qword [rsp + 0x1d8]
cmp word [r10], 0x30
jb 0x1400219ed
cmp word [r10], 0x39
jbe 0x1400219fa
mov eax, 0x2e
cmp ax, word [r10]
cmovne r8d, edi
mov eax, dword [rsp + 0x40]
mov ecx, dword [rsp + 0x70]
cmp qword [rsp + 0xf8], rdi
jne 0x140021a1e
cmp r9d, edi
jne 0x140021a1e
mov edx, 0x27
cmp dx, word [r10]
cmove r8d, ecx
cmp ecx, r8d
jne 0x140021aff
lea rcx, [rsp + 0x68]
mov qword [rsp + 0x68], r10
call fcn.140011910
mov r9, qword [rsp + 0x68]
lea rsi, [r13 - 2]
mov r8d, 9
cmp rsi, r9
jb 0x140021a6e
lea r13d, [r8 + 0x17]
cmp r8w, word [rsi]
ja 0x140021a5a
cmp word [rsi], 0xd
jbe 0x140021a60
cmp r13w, word [rsi]
jne 0x140021a69
sub rsi, 2
cmp rsi, r9
jae 0x140021a4e
mov r13, qword [rsp + 0x58]
sub rsi, r9
lea rcx, [rsp + 0x68]
mov qword [rsp + 0x68], r11
add rsi, 2
sar rsi, 1
call fcn.140011910
mov rdx, qword [rsp + 0x68]
add rbx, 0xfffffffffffffffe
cmp rbx, rdx
jb 0x140021abb
mov r13d, 0x20
cmp r8w, word [rbx]
ja 0x140021aa7
cmp word [rbx], 0xd
jbe 0x140021aad
cmp r13w, word [rbx]
jne 0x140021ab6
sub rbx, 2
cmp rbx, rdx
jae 0x140021a9b
mov r13, qword [rsp + 0x58]
sub rbx, rdx
mov r8d, esi
add rbx, 2
sar rbx, 1
cmp esi, ebx
cmovg r8d, ebx
cmp r8d, edi
jle 0x140021af6
mov rcx, r9
cmp qword [rsp + 0x110], rdi
je 0x140021ae8
call qword [sym.imp.SHLWAPI.dll_StrCmpNW]
jmp 0x140021aee
call qword [sym.imp.SHLWAPI.dll_StrCmpNIW]
cmp eax, edi
jne 0x140022032
mov eax, esi
sub eax, ebx
jmp 0x140022032
cmp eax, r8d
jne 0x140021baf
lea rdx, [rsp + 0x68]
lea rcx, [rsp + 0x1d8]
movsd qword [rsp + 0x68], xmm7
movsd qword [rsp + 0x58], xmm7
call fcn.1400603e4
lea rdx, [rsp + 0x58]
lea rcx, [rsp + 0x38]
call fcn.1400603e4
cmp bpl, 1
movsd xmm5, qword [rsp + 0x68]
movsd xmm1, qword [rsp + 0x58]
cvttsd2si rcx, xmm5
cvttsd2si rax, xmm1
mov qword [rsp + 0x90], rcx
mov qword [rsp + 0x48], rax
jg 0x140022045
pxor xmm0, xmm0
cvtsi2sd xmm0, rcx
ucomisd xmm5, xmm0
jp 0x140021b88
jne 0x140021b88
pxor xmm0, xmm0
cvtsi2sd xmm0, rax
ucomisd xmm1, xmm0
jp 0x140021b88
je 0x140022045
comisd xmm5, xmm1
jbe 0x140021b98
mov eax, 1
jmp 0x140022032
ucomisd xmm5, xmm1
jp 0x140021ba7
jne 0x140021ba7
mov eax, edi
jmp 0x140022032
or eax, 0xffffffff
jmp 0x140022032
cmp dword [rsp + 0x88], r8d
jne 0x140021bef
lea rdx, [rsp + 0x90]
lea rcx, [rsp + 0x1d8]
call fcn.140051edc
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x38]
call fcn.140051edc
mov rcx, qword [rsp + 0x90]
mov rax, qword [rsp + 0x48]
jmp 0x140022045
cmp r12d, 3
jl 0x140022180
lea rcx, [rsp + 0x38]
mov bpl, dil
call fcn.140011910
mov rax, qword [rsp + 0x38]
mov ecx, 0x23
cmp cx, word [rax]
jne 0x140021c21
add rax, 2
mov bpl, 1
mov qword [rsp + 0x38], rax
mov bl, byte [rsp + 0x98]
lea rdx, [rsp + 0xb0]
lea rcx, [rsp + 0xb8]
movsd qword [rsp + 0xb0], xmm7
mov sil, dil
mov qword [rsp + 0xb8], rax
call fcn.1400603e4
mov r13d, eax
mov rax, qword [rsp + 0x38]
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0xb8]
mov qword [rsp + 0xb8], rax
call fcn.140051edc
mov rax, qword [rsp + 0xb8]
mov ecx, 0x2e
cmp cx, word [rax]
jne 0x140021c96
cvttsd2si rcx, qword [rsp + 0xb0]
mov qword [rsp + 0x48], rcx
jmp 0x140021c9b
mov rcx, qword [rsp + 0x48]
lea eax, [r12 - 3]
cmp eax, 2
ja 0x140021de1
lea rdx, [0x1400d98c8]
mov r8d, 3
mov rcx, r15
call qword [sym.imp.SHLWAPI.dll_StrCmpNIW]
cmp eax, edi
jne 0x140021ddc
cmp r12d, 3
je 0x140021cf9
movzx eax, word [r15 + 6]
movzx ecx, word [r15 + 8]
mov edx, 0xffdf
and ax, dx
and cx, dx
cmp r12d, 4
jne 0x140021d79
lea ecx, [r12 + 0x3d]
cmp ax, cx
jne 0x140021d65
mov bl, dil
mov sil, 1
movsx ecx, bl
call fcn.140017ec0
mov rcx, rax
mov qword [rsp + 0x90], rax
mov rdx, rax
cmp sil, dil
je 0x140021d22
lea rdx, [rax + 0xfffff]
shr rdx, 0x14
cmp r14b, dil
jne 0x14002240b
cmp r13d, edi
jle 0x1400223e5
cmp sil, dil
je 0x140021dd5
pxor xmm0, xmm0
cvtsi2sd xmm0, rdx
test rdx, rdx
jns 0x140021d53
addsd xmm0, qword [0x1400d98c0]
comisd xmm0, xmmword [rsp + 0xb0]
jbe 0x140021da4
mov eax, 1
jmp 0x140021db8
cmp ax, 0x42
je 0x140021cfc
cmp ax, 0x55
jne 0x140021dfe
mov bl, 1
jmp 0x140021cf9
cmp r12d, 5
jne 0x140021ddc
cmp ax, 0x42
jne 0x140021dfe
cmp cx, 0x55
jne 0x140021d92
mov bl, 1
jmp 0x140021cfc
mov eax, 0x41
cmp cx, ax
jne 0x140021dfe
mov bl, dil
jmp 0x140021cfc
ucomisd xmm0, qword [rsp + 0xb0]
jp 0x140021db5
jne 0x140021db5
mov eax, edi
jmp 0x140021db8
or eax, 0xffffffff
movsxd rcx, eax
mov rax, rdi
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x90], rcx
mov r13, qword [rsp + 0x58]
jmp 0x140022045
mov rax, qword [rsp + 0x48]
jmp 0x140021dcb
mov rcx, qword [rsp + 0x48]
cmp r12d, 3
jne 0x140021e03
lea rdx, [0x1400d98b8]
mov r8d, r12d
mov rcx, r15
call qword [sym.imp.SHLWAPI.dll_StrCmpNIW]
cmp eax, edi
je 0x140021e34
mov rcx, qword [rsp + 0x48]
mov r10, qword [rsp + 0x1d8]
mov r12d, 0x3a
cmp word [r10], r12w
jne 0x140021f90
cmp word [r10 + 2], 0x65
jne 0x140021e3b
add r10, 4
mov qword [rsp + 0x1d8], r10
jmp 0x14002218f
mov rcx, qword [rsp + 0x48]
jmp 0x140021e87
cmp word [r10 + 2], 0x70
jne 0x140021e6f
add r10, 4
mov qword [rsp + 0x1d8], r10
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, r10
mov dword [rsp + 0x20], edi
call fcn.14001ca38
mov ebx, edi
cmp eax, edi
setg bl
jmp 0x14002228e
cmp word [r10 + 2], 0x6b
jne 0x140021f90
add r10, 4
mov qword [rsp + 0x1d8], r10
mov r8, qword [rsp + 0x38]
mov ebx, 9
movzx eax, word [r8]
sub ax, 0x30
cmp ax, bx
ja 0x140021eb8
movzx edx, word [r8 + 2]
lea eax, [rdx - 0x30]
cmp ax, bx
jbe 0x140021eb5
or dx, 0x20
cmp dx, 0x78
jne 0x140021eb8
mov bpl, 2
cmp bpl, dil
jne 0x140021ecf
xor edx, edx
mov rcx, r8
call fcn.14001c58c
movsxd rcx, eax
mov qword [rsp + 0x48], rcx
cmp rcx, rdi
jle 0x1400223e5
lea rax, [rcx - 0x61]
mov edx, 0x19
cmp rax, rdx
ja 0x140021eef
sub rcx, 0x20
mov qword [rsp + 0x48], rcx
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, 0x8000
mov word [rsp + 0x132], di
and ax, cx
neg ax
sbb r8d, r8d
and r8d, dword [rsp + 0x48]
movsxd rax, r8d
mov word [rsp + 0x130], r8w
mov qword [rsp + 0x90], rax
mov eax, 0x41
cmp r8d, eax
jl 0x140021f34
cmp r8d, 0x5a
jle 0x140021f51
lea eax, [r8 - 0x30]
cmp eax, ebx
jbe 0x140021f51
lea rdx, str.0x_lX
lea rcx, [rsp + 0x130]
call qword [sym.imp.USER32.dll_wsprintfW]
lea r8, [rsp + 0x130]
cmp r14b, dil
jne 0x1400223ec
mov rsi, qword [rsp + 0x1d0]
lea rdx, str.PressKey
mov rcx, rsi
call fcn.14004b578
mov rcx, qword [rsp + 0x90]
mov rax, qword [rsp + 0x48]
mov r13, qword [rsp + 0x58]
jmp 0x14002204d
movzx eax, word [r15]
movsx edx, byte [rsp + 0x98]
lea rcx, [rsp + 0xe0]
mov word [rsp + 0xe0], ax
mov eax, 0x5c
xor r8d, r8d
mov word [rsp + 0xe4], ax
xor eax, eax
mov word [rsp + 0xe2], r12w
mov dword [rsp + 0xe8], eax
mov word [rsp + 0xe6], di
call fcn.140012e14
cmp r14b, dil
jne 0x140022408
cmp r13d, edi
jle 0x140022403
shr rax, 0x14
pxor xmm0, xmm0
cvtsi2sd xmm0, rax
test rax, rax
jns 0x140022007
addsd xmm0, qword [0x1400d98c0]
comisd xmm0, xmmword [rsp + 0xb0]
jbe 0x140022019
mov eax, 1
jmp 0x14002202d
ucomisd xmm0, qword [rsp + 0xb0]
jp 0x14002202a
jne 0x14002202a
mov eax, edi
jmp 0x14002202d
or eax, 0xffffffff
mov r13, qword [rsp + 0x58]
movsxd rcx, eax
mov rax, rdi
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x90], rcx
mov rsi, qword [rsp + 0x1d0]
mov r12d, 0x3d
cmp word [r13], di
jne 0x140022067
cmp rcx, rdi
mov ebx, edi
setne bl
jmp 0x14002229c
cmp word [r13], r12w
jne 0x14002207b
cmp rcx, rax
mov ebx, edi
sete bl
jmp 0x14002229c
mov dx, 0x3e
cmp word [r13], dx
jne 0x14002209a
cmp word [r13 + 2], r12w
jne 0x14002209a
cmp rcx, rax
mov ebx, edi
setge bl
jmp 0x14002229c
cmp word [r13], 0x3c
jne 0x1400220c2
cmp word [r13 + 2], r12w
jne 0x1400220b6
cmp rcx, rax
mov ebx, edi
setle bl
jmp 0x14002229c
cmp word [r13 + 2], dx
jne 0x1400220c2
cmp rcx, rax
jmp 0x14002205d
cmp word [r13], 0x21
jne 0x1400220e0
cmp word [r13 + 2], r12w
je 0x1400220bd
cmp word [r13 + 2], dx
je 0x1400220a9
cmp word [r13 + 2], 0x3c
je 0x14002208d
cmp word [r13], dx
jne 0x1400220f4
cmp rcx, rax
mov ebx, edi
setg bl
jmp 0x14002229c
cmp word [r13], 0x3c
mov r8d, 0x26
jne 0x14002210f
cmp rcx, rax
mov ebx, edi
setl bl
jmp 0x1400222a2
cmp word [r13], r8w
jne 0x140022131
cmp rcx, rdi
je 0x14002212a
cmp rax, rdi
je 0x14002212a
mov ebx, 1
jmp 0x1400222a2
mov ebx, edi
jmp 0x1400222a2
mov edx, 0x7c
cmp word [r13], dx
jne 0x140022158
cmp rcx, rdi
jne 0x14002214e
cmp rax, rdi
jne 0x14002214e
mov ebx, edi
jmp 0x1400222a7
mov ebx, 1
jmp 0x1400222a7
mov r9d, 0x40
cmp word [r13], r9w
jne 0x1400223e5
cmp rax, rdi
mov ebx, edi
mov eax, edi
setne bl
cmp rcx, rdi
setne al
xor ebx, eax
jmp 0x1400222ad
cmp rsi, rdi
je 0x1400224c5
mov r12d, 0x3a
mov rcx, r10
call fcn.140015cb4
mov rcx, rax
mov qword [rsp + 0x1d8], rax
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov rcx, qword [rsp + 0x1d8]
mov ebp, 0x41
movzx esi, word [rcx]
movsxd r11, eax
mov eax, 0xffdf
and si, ax
lea edx, [rbp - 0x28]
movzx eax, si
sub ax, bp
cmp ax, dx
ja 0x1400221f6
cmp word [rcx + 2], r12w
jne 0x1400221f6
cmp word [rcx + 4], di
jne 0x1400221f6
call qword [sym.imp.KERNEL32.dll_GetLogicalDrives]
mov cl, sil
sub cl, bpl
mov ebx, eax
shr ebx, cl
and ebx, 1
jmp 0x14002228e
cmp r11d, edi
jle 0x14002224c
mov edx, 0x5c
mov rax, r11
lea r8d, [rdx - 0x2d]
cmp dx, word [rcx + r11*2 - 2]
je 0x140022217
cmp r8w, word [rcx + r11*2 - 2]
jne 0x14002224c
lea eax, [r11 - 1]
mov sil, 1
cdqe
cmp rax, rdi
jl 0x140022244
cmp dx, word [rcx + rax*2]
je 0x140022232
cmp r8w, word [rcx + rax*2]
jne 0x140022244
mov word [rcx + rax*2], di
sub rax, 1
mov rcx, qword [rsp + 0x1d8]
jns 0x140022225
mov r11d, 1
jmp 0x14002224f
mov sil, dil
mov ebx, edi
cmp r11d, edi
je 0x14002228e
cmp qword [rsp + 0x100], rdi
je 0x140022283
movzx eax, word [rcx]
cmp ax, di
je 0x140022283
cmp word [rcx + 2], r12w
jne 0x140022283
movzx ecx, ax
call fcn.1400b89dc
cmp eax, edi
je 0x14002228e
mov rcx, qword [rsp + 0x1d8]
movsx edx, sil
call fcn.1400b8bc4
mov ebx, eax
mov rsi, qword [rsp + 0x1d0]
mov r12d, 0x3d
mov r8d, 0x26
mov edx, 0x7c
mov r9d, 0x40
mov eax, edi
cmp dword [rsp + 0xd0], edi
je 0x1400222bf
cmp ebx, edi
sete al
jmp 0x1400222c4
cmp ebx, edi
setne al
mov r15, qword [rsp + 0xc8]
mov dword [rsp + 0x60], eax
add ax, 0x30
mov word [r15], ax
add r15, 2
mov qword [rsp + 0xc8], r15
cmp byte [rsp + 0x30], dil
je 0x140022484
mov r13, qword [rsp + 0x78]
movzx eax, word [r13]
cmp ax, di
je 0x14002244d
mov ecx, 0x5b
cmp cx, ax
je 0x140022355
mov ecx, 0x5d
cmp cx, ax
je 0x140022355
mov ecx, 0x28
cmp cx, ax
je 0x140022355
mov ecx, 0x29
cmp cx, ax
je 0x140022355
cmp r8w, ax
je 0x140022355
mov ecx, 9
cmp dx, ax
jne 0x140022386
cmp cx, word [r13 + 2]
ja 0x140022349
cmp word [r13 + 2], 0xd
jbe 0x140022355
mov edx, 0x20
cmp dx, word [r13 + 2]
jne 0x14002238b
mov word [r15], ax
add r15, 2
mov qword [rsp + 0xc8], r15
add r13, 2
mov qword [rsp + 0x78], r13
mov ax, word [r13]
cmp ax, di
je 0x14002244d
mov edx, 0x7c
jmp 0x140022302
mov edx, 0x20
cmp r9w, ax
je 0x140022355
cmp cx, ax
ja 0x14002239c
cmp ax, 0xd
jbe 0x140022365
cmp dx, ax
je 0x140022365
cmp word [r13], di
je 0x14002244d
lea rcx, [rsp + 0xa0]
call fcn.140044f24
lea rcx, [rsp + 0x80]
call fcn.140044f24
lea rcx, [rsp + 0x50]
call fcn.140044f24
mov r14, qword [rsp + 0x1d0]
mov rsi, qword [rsp + 0xc0]
jmp 0x140021364
mov edi, 0x80070057
jmp 0x140022422
mov rdx, qword [rsp + 0x1e8]
mov rcx, qword [rsp + 0x1d0]
call fcn.14004b578
jmp 0x140022422
or edi, 0xffffffff
jmp 0x140022422
mov rdx, rax
mov r8, qword [rsp + 0x1d0]
mov rcx, qword [rsp + 0x1e8]
call fcn.140015a44
mov edi, eax
lea rcx, [rsp + 0xa0]
call fcn.140044f24
lea rcx, [rsp + 0x80]
call fcn.140044f24
lea rcx, [rsp + 0x50]
call fcn.140044f24
mov eax, edi
jmp 0x1400224ee
mov rax, qword [rsp + 0x108]
mov ecx, 0x23
mov word [rax - 4], r8w
mov word [rax - 6], cx
lea rdx, [rax - 2]
mov word [rdx], r12w
lea r8, [rsp + 0x60]
mov rcx, rsi
mov word [r15], di
call fcn.1400a2654
mov ebx, eax
mov dword [rsp + 0x60], eax
jmp 0x140022488
mov ebx, dword [rsp + 0x60]
cmp dword [rsp + 0xd8], edi
je 0x14002249d
cmp ebx, edi
sete dil
mov ebx, edi
mov dword [rsp + 0x60], ebx
lea rcx, [rsp + 0xa0]
call fcn.140044f24
lea rcx, [rsp + 0x80]
call fcn.140044f24
lea rcx, [rsp + 0x50]
call fcn.140044f24
mov eax, ebx
jmp 0x1400224ee
lea rcx, [rsp + 0xa0]
call fcn.140044f24
lea rcx, [rsp + 0x80]
call fcn.140044f24
lea rcx, [rsp + 0x50]
call fcn.140044f24
mov eax, 0x80070057
movaps xmm7, xmmword [rsp + 0x170]
add rsp, 0x188
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret