Function at 0x1400168b0
Capabilities:
Get disk information
Read .ini file

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x3d8]
sub rsp, 0x4b0
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
mov rax, qword [0x1400ab680]
xor rax, rsp
mov qword [rbp + 0x380], rax
mov r14, rcx
xor r9d, r9d
xor r8d, r8d
mov edx, 0x146
mov rcx, qword [rcx + 0x4e48]
call qword [sym.imp.USER32.dll_SendMessageW]
test eax, eax
je 0x140016944
nop
xor r9d, r9d
xor r8d, r8d
mov edx, 0x144
mov rcx, qword [r14 + 0x4e48]
call qword [sym.imp.USER32.dll_SendMessageW]
xor r9d, r9d
xor r8d, r8d
mov edx, 0x146
mov rcx, qword [r14 + 0x4e48]
call qword [sym.imp.USER32.dll_SendMessageW]
test eax, eax
jne 0x140016910
call fcn.14003be40
mov rcx, rax
test rax, rax
je 0x140016e77
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x30], rax
call fcn.14003be40
mov rcx, rax
test rax, rax
je 0x140016e82
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x58], rax
xor edx, edx
mov r8d, 0x200
lea rcx, [rbp - 0x80]
call fcn.140060b10
lea rsi, [rbp - 0x80]
xor r13d, r13d
mov r12d, r13d
lea rdx, [rbp - 0x80]
mov ecx, 0xff
call qword [sym.imp.KERNEL32.dll_GetLogicalDriveStringsW]
mov dword [r14 + 0x574], r13d
mov r9, qword [r14 + 0x168]
lea r8d, [r13 + 2]
lea rdx, str.DriveLetter
lea rcx, str.Setting
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov dword [r14 + 0x560], eax
lea r15, [r13 - 1]
cmp word [rbp - 0x80], r12w
je 0x140016c4c
movsd xmm6, qword [0x14009b640]
movsd xmm7, qword [0x14009b690]
nop word [rax + rax]
xor eax, eax
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x38], rax
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetDriveTypeW]
mov ecx, eax
mov rdi, r15
nop
inc rdi
cmp word [rsi + rdi*2], r13w
jne 0x140016a20
add eax, 0xfffffffe
cmp eax, 2
jbe 0x140016a3b
cmp ecx, 6
jne 0x140016c37
mov word [rsi + 2], r13w
movzx r8d, word [rsi]
lea rdx, str._C:
lea rcx, [rsp + 0x30]
call fcn.14000c550
mov qword [rsp + 0x60], r13
mov qword [rsp + 0x50], r13
mov qword [rsp + 0x38], r13
lea r9, [rsp + 0x38]
lea r8, [rsp + 0x50]
lea rdx, [rsp + 0x60]
mov rbx, qword [rsp + 0x30]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExW]
test eax, eax
je 0x140016c37
mov r8d, dword [rbx - 0x10]
mov rdx, rbx
lea rcx, [rsp + 0x58]
call fcn.14000c2b0
mov r8, qword [rsp + 0x50]
movabs rax, 0x200000000
mov rdx, r8
xorps xmm3, xmm3
cmp r8, rax
jae 0x140016b1a
lea r10, str._s:__.0f_____.0f__.0fMiB_
sub rdx, qword [rsp + 0x38]
js 0x140016ac9
cvtsi2sd xmm3, rdx
jmp 0x140016ae1
mov rcx, rdx
shr rcx, 1
mov rax, rdx
and eax, 1
or rcx, rax
cvtsi2sd xmm3, rcx
addsd xmm3, xmm3
xorps xmm0, xmm0
test r8, r8
js 0x140016af8
cvtsi2sd xmm0, r8
shr rdx, 0xa
shr r8, 0xa
jmp 0x140016b76
mov rcx, r8
shr rcx, 1
mov rax, r8
and eax, 1
or rcx, rax
cvtsi2sd xmm0, rcx
addsd xmm0, xmm0
shr rdx, 0xa
shr r8, 0xa
jmp 0x140016b76
lea r10, str._s:__.0f_____.0f__.0fGiB_
sub rdx, qword [rsp + 0x38]
js 0x140016b2f
cvtsi2sd xmm3, rdx
jmp 0x140016b47
mov rcx, rdx
shr rcx, 1
mov rax, rdx
and eax, 1
or rcx, rax
cvtsi2sd xmm3, rcx
addsd xmm3, xmm3
xorps xmm0, xmm0
test r8, r8
js 0x140016b56
cvtsi2sd xmm0, r8
jmp 0x140016b6e
mov rcx, r8
shr rcx, 1
mov rax, r8
and eax, 1
or rcx, rax
cvtsi2sd xmm0, rcx
addsd xmm0, xmm0
shr rdx, 0x14
shr r8, 0x14
divsd xmm3, xmm0
xorps xmm0, xmm0
test r8, r8
js 0x140016b89
cvtsi2sd xmm0, r8
jmp 0x140016b9f
mov rax, r8
shr rax, 1
and r8d, 1
or rax, r8
cvtsi2sd xmm0, rax
addsd xmm0, xmm0
mulsd xmm0, xmm6
xorps xmm1, xmm1
test rdx, rdx
js 0x140016bb2
cvtsi2sd xmm1, rdx
jmp 0x140016bc7
mov rax, rdx
shr rax, 1
and edx, 1
or rax, rdx
cvtsi2sd xmm1, rax
addsd xmm1, xmm1
mulsd xmm1, xmm6
mulsd xmm3, xmm7
movsd qword [rsp + 0x28], xmm0
movsd qword [rsp + 0x20], xmm1
movq r9, xmm3
mov r8, rsi
mov rdx, r10
lea rcx, [rsp + 0x30]
call fcn.14000c550
mov rbx, qword [rsp + 0x30]
mov r8d, dword [rbx - 0x10]
mov rdx, rbx
lea rcx, [rsp + 0x58]
call fcn.14000c2b0
movzx eax, word [rsi]
sub eax, 0x41
cmp dword [r14 + 0x560], eax
jne 0x140016c1c
mov dword [r14 + 0x574], r12d
inc r12d
mov r9, rbx
xor r8d, r8d
mov edx, 0x143
mov rcx, qword [r14 + 0x4e48]
call qword [sym.imp.USER32.dll_SendMessageW]
movsxd rax, edi
lea rsi, [rsi + rax*2]
add rsi, 2
cmp word [rsi], r13w
jne 0x140016a00
lea rax, [rsp + 0x40]
mov qword [rsp + 0x70], rax
lea rax, [rsp + 0x48]
mov qword [rsp + 0x78], rax
call fcn.14003be40
mov rcx, rax
test rax, rax
je 0x140016e8d
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x40], rax
lea rdx, str.SELECT_FOLDER
cmp rdx, 0x10000
jae 0x140016c9f
movzx edx, dx
lea rcx, [rsp + 0x40]
call fcn.1400029b0
jmp 0x140016cba
mov rax, r15
inc rax
cmp word [rdx + rax*2], 0
jne 0x140016ca2
mov r8d, eax
lea rcx, [rsp + 0x40]
call fcn.140002ba0
nop
call fcn.14003be40
mov rcx, rax
test rax, rax
je 0x140016e6c
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x48], rax
lea rdx, str.Menu
cmp rdx, 0x10000
jae 0x140016cf9
movzx edx, dx
lea rcx, [rsp + 0x48]
call fcn.1400029b0
jmp 0x140016d18
mov rax, r15
nop dword [rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x140016d00
mov r8d, eax
lea rcx, [rsp + 0x48]
call fcn.140002ba0
nop
lea r9, [rsp + 0x40]
lea r8, [rsp + 0x48]
lea rdx, [rsp + 0x68]
mov rcx, r14
call fcn.14002a320
mov r9, qword [rax]
xor r8d, r8d
mov edx, 0x143
mov rcx, qword [r14 + 0x4e48]
call qword [sym.imp.USER32.dll_SendMessageW]
mov rdx, qword [rsp + 0x68]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140016d66
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [r14 + 0x168]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0x100
lea r9, [rbp + 0x180]
lea r8, [0x1400901e0]
lea rdx, str.TargetPath
lea rcx, str.Setting
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea rcx, [r14 + 0x558]
lea rdx, [rbp + 0x180]
mov rax, r15
nop dword [rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x140016db0
mov r8d, eax
lea rdx, [rbp + 0x180]
call fcn.140002ba0
cmp dword [r14 + 0x560], 0x63
jne 0x140016dda
mov dword [r14 + 0x574], r12d
mov dword [r14 + 0x564], r12d
mov rcx, r14
call fcn.140016ea0
xor edx, edx
mov rcx, r14
call fcn.140042f44
nop
mov rdx, qword [rsp + 0x58]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140016e14
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x30]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], r15d
sub r15d, 1
jg 0x140016e32
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rcx, qword [rbp + 0x380]
xor rcx, rsp
call fcn.14005df90
lea r11, [rsp + 0x4b0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
mov ecx, 0x80004005
call fcn.140002fe0
nop
mov ecx, 0x80004005
call fcn.140002fe0
nop
mov ecx, 0x80004005
call fcn.140002fe0
nop
mov ecx, 0x80004005
call fcn.140002fe0
int3