Function at 0x1401751a0
Capabilities:
Get disk information
Manipulate console buffer
Set environment variable

Disassembly:
mov word [rsp + 8], cx
push rsi
push rdi
sub rsp, 0x1b8
lea rax, [rsp + 0xb0]
lea rcx, str.beam
mov rdi, rax
mov rsi, rcx
mov ecx, 5
rep movsb byte [rdi], byte [rsi]
lea rax, [rsp + 0xb8]
lea rcx, str.Bought
mov rdi, rax
mov rsi, rcx
mov ecx, 7
rep movsb byte [rdi], byte [rsi]
mov byte [rsp + 0x41], 0x4e
mov byte [rsp + 0x40], 0x1c
movzx eax, byte [rsp + 0x40]
cmp eax, 0x4e
jg 0x140175293
movzx eax, byte [rsp + 0x40]
add eax, 0x49
cmp eax, 0x3b
je 0x14017527c
movzx eax, byte [rsp + 0x40]
mov byte [rsp + 0x9c], al
cmp byte [rsp + 0x9c], 0x1c
je 0x140175223
jmp 0x14017526d
movzx eax, byte [rsp + 0x40]
imul eax, eax, 0x61
cmp eax, 0x67
jne 0x14017524e
movzx r9d, byte [rsp + 0x40]
movzx r8d, byte [rsp + 0x40]
movzx edx, byte [rsp + 0x40]
movzx ecx, byte [rsp + 0x40]
call fcn.140175c10
nop
jmp 0x14017526b
movzx eax, byte [rsp + 0x40]
and eax, 0xa1
cmp eax, 0xfe
jg 0x14017526b
movsx eax, byte [rsp + 0x41]
or eax, 0x7d
mov byte [rsp + 0x41], al
jmp 0x14017527a
mov eax, 0x679
mov word [rsp + 0x1d0], ax
jmp 0x140175293
mov edx, 0x1e
mov rcx, qword [rsp + 0xd8]
call qword [sym.imp.KERNEL32.dll_SetPriorityClass]
mov dword [rsp + 0x78], eax
movzx eax, byte [rsp + 0x41]
mov byte [rsp + 0x42], al
movzx eax, byte [rsp + 0x41]
mov byte [rsp + 0xa0], al
cmp byte [rsp + 0xa0], 0x55
je 0x1401752b4
jmp 0x1401752ff
movsx eax, byte [rsp + 0x41]
xor eax, 0x6b
mov byte [rsp + 0x42], al
movzx eax, byte [rsp + 0x41]
mov byte [rsp + 0x70], al
cmp byte [rsp + 0x70], 0xb
je 0x1401752d2
jmp 0x1401752d4
jmp 0x1401752de
call qword [sym.imp.KERNEL32.dll_GetConsoleCP]
mov dword [rsp + 0x48], eax
movzx r9d, byte [rsp + 0x40]
movzx r8d, byte [rsp + 0x40]
movzx edx, byte [rsp + 0x40]
movzx ecx, byte [rsp + 0x40]
call fcn.140175c10
nop
jmp 0x14017573f
lea rax, [rsp + 0x48]
mov qword [rsp + 0x58], rax
movzx eax, byte [rsp + 0x41]
mov byte [rsp + 0x74], al
cmp byte [rsp + 0x74], 0x68
je 0x14017531e
jmp 0x1401753d2
movzx eax, byte [rsp + 0x40]
shl eax, 2
mov byte [rsp + 0x40], al
mov rax, qword [rsp + 0x58]
mov eax, dword [rax]
add eax, dword [rsp + 0x48]
mov rcx, qword [rsp + 0x58]
mov dword [rcx], eax
movzx eax, byte [rsp + 0x40]
sub eax, 0xd7
cmp eax, 0x4d
jge 0x140175383
movzx eax, byte [rsp + 0x40]
and eax, 0xc9
mov byte [rsp + 0x40], al
lea rdx, [rsp + 0x78]
mov rcx, qword [rsp + 0xa8]
call qword [sym.imp.KERNEL32.dll_SetConsoleCursorInfo]
mov dword [rsp + 0x90], eax
mov eax, dword [rsp + 0x48]
add eax, 0xe8ff3c09
mov rcx, qword [rsp + 0x58]
mov dword [rcx], eax
mov rax, qword [rsp + 0x58]
mov eax, dword [rax]
mov dword [rsp + 0x48], eax
mov dword [rsp + 0x28], 0xb7
lea rax, [rsp + 0xb8]
mov qword [rsp + 0x20], rax
lea r9, str.cooperatively_Brandish
lea r8, [rsp + 0x41]
mov edx, 9
mov ecx, 0xcd
call qword [sym.imp.KERNEL32.dll_GetTimeFormatA]
mov dword [rsp + 0x4c], eax
mov eax, 0x95a
mov word [rsp + 0x1d0], ax
jmp 0x1401753f1
lea rax, [rsp + 0x40]
mov qword [rsp + 0x50], rax
mov eax, dword [rsp + 0x4c]
mov dword [rsp + 0x60], eax
movzx eax, word [rsp + 0x1d0]
mov word [rsp + 0x44], ax
movzx eax, word [rsp + 0x44]
mov dword [rsp + 0x64], eax
cmp dword [rsp + 0x64], 0
je 0x1401754bd
cmp dword [rsp + 0x64], 0x46a
je 0x140175414
jmp 0x1401755b3
mov eax, dword [rsp + 0x60]
sub eax, 0x7271c359
cmp eax, dword [rsp + 0x4c]
jl 0x14017545f
movzx eax, byte [rsp + 0x40]
add eax, 0x43
mov rcx, qword [rsp + 0x50]
mov byte [rcx], al
mov rax, qword [rsp + 0x50]
movzx eax, byte [rax]
shl eax, 1
mov byte [rsp + 0x40], al
mov rdx, qword [rsp + 0xe8]
mov rcx, qword [rsp + 0xf0]
call qword [sym.imp.KERNEL32.dll_SetEnvironmentVariableA]
mov dword [rsp + 0x98], eax
jmp 0x1401754b8
movzx ecx, word [rsp + 0x44]
call fcn.1401751a0
movzx eax, word [rsp + 0x1d0]
xor eax, 0xebf
mov word [rsp + 0x44], ax
lea rcx, [rsp + 0xa8]
call qword [sym.imp.KERNEL32.dll_ConvertThreadToFiber]
mov qword [rsp + 0xf8], rax
mov eax, dword [rsp + 0x48]
mov rcx, qword [rsp + 0x58]
mov qword [rsp + 0xd0], rcx
movzx ecx, al
mov rax, qword [rsp + 0xd0]
mov eax, dword [rax]
shr eax, cl
mov rcx, qword [rsp + 0x58]
mov dword [rcx], eax
jmp 0x1401755b3
movzx eax, byte [rsp + 0x42]
mov byte [rsp + 0x7c], al
cmp byte [rsp + 0x7c], 0x7e
je 0x1401754d2
jmp 0x1401755b3
movzx eax, word [rsp + 0x44]
mov dword [rsp + 0x80], eax
cmp dword [rsp + 0x80], 0xd34
je 0x1401754f0
jmp 0x14017557d
movsx eax, byte [rsp + 0x42]
or eax, 0x33
movsx ecx, byte [rsp + 0x41]
cmp eax, ecx
jle 0x140175559
movzx eax, word [rsp + 0x44]
mov word [rsp + 0x1d0], ax
mov rax, qword [rsp + 0x50]
movzx eax, byte [rax]
movzx ecx, byte [rsp + 0x40]
and eax, ecx
mov rcx, qword [rsp + 0x50]
mov byte [rcx], al
mov dword [rsp + 0x28], 8
lea rax, str.Quicklime_Upon_raccoon_Swarm
mov qword [rsp + 0x20], rax
mov r9d, 0xc8
lea r8, str.irascibly_Maddens_terriers_Reapply_Razorblades
mov edx, 0x31
mov ecx, 0xe
call qword [sym.imp.KERNEL32.dll_CompareStringA]
mov dword [rsp + 0x68], eax
movsx eax, byte [rsp + 0x41]
add eax, 0x34
mov byte [rsp + 0x42], al
mov rax, qword [rsp + 0x50]
movzx eax, byte [rax]
movzx ecx, byte [rsp + 0x40]
sub eax, ecx
mov rcx, qword [rsp + 0x50]
mov byte [rcx], al
jmp 0x1401755b3
movzx eax, byte [rsp + 0x40]
mov byte [rsp + 0x20], al
movzx r9d, byte [rsp + 0x40]
movzx r8d, byte [rsp + 0x40]
movzx edx, byte [rsp + 0x41]
movzx ecx, byte [rsp + 0x42]
call fcn.1401757d0
movzx eax, word [rsp + 0x1d0]
sub eax, 0x13f
mov word [rsp + 0x44], ax
mov eax, dword [rsp + 0x4c]
mov dword [rsp + 0x84], eax
cmp dword [rsp + 0x84], 0
je 0x1401755ca
jmp 0x1401755fa
mov rax, qword [rsp + 0x58]
mov eax, dword [rax]
mov dword [rsp + 0x8c], eax
mov eax, dword [rsp + 0x68]
mov ecx, dword [rsp + 0x4c]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x60], eax
lea rax, [rsp + 0x68]
mov qword [rsp + 0xe0], rax
jmp 0x1401756c1
mov rax, qword [rsp + 0x58]
mov eax, dword [rax]
mov dword [rsp + 0x88], eax
cmp dword [rsp + 0x88], 0x4c154fc1
je 0x14017561a
jmp 0x1401756ab
xor edx, edx
mov rcx, qword [rsp + 0x100]
call qword [sym.imp.KERNEL32.dll_SetThreadPriorityBoost]
mov dword [rsp + 0x94], eax
mov eax, dword [rsp + 0x48]
mov ecx, dword [rsp + 0x8c]
and ecx, eax
mov eax, ecx
mov rcx, qword [rsp + 0x58]
mov dword [rcx], eax
movzx eax, word [rsp + 0x44]
mov word [rsp + 0x1d0], ax
movzx eax, byte [rsp + 0x40]
imul eax, eax, 0xcc
mov rcx, qword [rsp + 0x50]
movzx ecx, byte [rcx]
cmp eax, ecx
jle 0x140175687
mov edx, dword [rsp + 0xc0]
mov rcx, qword [rsp + 0xd8]
call qword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
mov dword [rsp + 0x90], eax
mov rax, qword [rsp + 0x50]
movzx r9d, byte [rax]
mov rax, qword [rsp + 0x50]
movzx r8d, byte [rax]
movzx edx, byte [rsp + 0x40]
movzx ecx, byte [rsp + 0x40]
call fcn.140175c10
nop
jmp 0x1401756c1
mov rax, qword [rsp + 0x50]
movzx eax, byte [rax]
movzx ecx, byte [rsp + 0x40]
sub eax, ecx
mov rcx, qword [rsp + 0x50]
mov byte [rcx], al
movzx eax, word [rsp + 0x44]
mov dword [rsp + 0x6c], eax
cmp dword [rsp + 0x6c], 0
je 0x1401756dd
cmp dword [rsp + 0x6c], 0x884
je 0x1401756f8
jmp 0x140175732
mov eax, dword [rsp + 0x4c]
mov dword [rsp + 0xc4], eax
mov rax, qword [rsp + 0x58]
mov eax, dword [rax]
mov dword [rsp + 0xc8], eax
jmp 0x140175732
mov r8d, dword [rsp + 0x48]
mov rax, qword [rsp + 0xe0]
mov edx, dword [rax]
mov ecx, dword [rsp + 0x60]
call fcn.140176420
lea r8, [rsp + 0x41]
lea rdx, [rsp + 0xa8]
mov rcx, qword [rsp + 0xa8]
call qword [sym.imp.KERNEL32.dll_GetProcessWorkingSetSize]
mov dword [rsp + 0x94], eax
movzx eax, word [rsp + 0x44]
mov word [rsp + 0x1d0], ax
movzx ecx, word [rsp + 0x1d0]
call fcn.1401751a0
movzx eax, byte [rsp + 0x40]
sar eax, 1
mov byte [rsp + 0x40], al
mov dword [rsp + 0x38], 0x7f
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x110]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x110]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x41]
mov r8d, 0x8c
lea rdx, [rsp + 0x110]
lea rcx, str.C:marooningurethracloister
call qword [sym.imp.KERNEL32.dll_GetVolumeInformationA]
mov dword [rsp + 0x98], eax
mov eax, 0xde
add rsp, 0x1b8
pop rdi
pop rsi
ret