Function at 0x1400595e0
Capabilities:
Get common file path
Get disk size
Read .ini file

Disassembly:
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x19a0]
mov eax, 0x1aa0
call fcn.14024c240
sub rsp, rax
mov qword [rsp + 0x68], 0xfffffffffffffffe
mov qword [rsp + 0x1ad8], rbx
mov qword [rsp + 0x1ae0], rsi
mov qword [rsp + 0x1ae8], rdi
mov rax, qword [0x140398250]
xor rax, rsp
mov qword [rbp + 0x1990], rax
mov r13, rcx
xor r8d, r8d
lea rdx, str.CBaseFuncMgr::FN_CheckDiskSpace
lea rcx, [rsp + 0x30]
call fcn.1400075a0
nop
xor r14d, r14d
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [rbp - 0x80]
lea rdx, str.TEMPPATH
mov rcx, rax
call qword [rdi + 0x18]
lea rcx, [rbp - 0x80]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
movsxd rcx, eax
cmp word [rsp + rcx*2 + 0x7e], 0x5c
je 0x140059693
lea rdx, [0x1402e5094]
lea rcx, [rbp - 0x80]
call qword [sym.imp.KERNEL32.dll_lstrcatW]
lea rdx, str.InsDrv.ini
lea rcx, [rbp - 0x80]
call qword [sym.imp.KERNEL32.dll_lstrcatW]
lea r9, [rbp - 0x80]
lea r8, str._t_t_tRead_File_name:__s
mov edx, 7
lea rcx, [rsp + 0x30]
call fcn.140007780
lea r9, [rbp - 0x80]
mov r8d, 0x1f4
lea rdx, str.Border
lea rcx, str.DiskSpaceCheck
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov edi, eax
lea r9, [rbp - 0x80]
mov r8d, 0x19
lea rdx, str.Margin
lea rcx, str.DiskSpaceCheck
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov ebx, eax
mov eax, 0x7d0
cmp edi, eax
cmova edi, eax
mov eax, 0xa
cmp ebx, eax
cmovb ebx, eax
shl edi, 0x14
shl ebx, 0x14
mov r9d, edi
lea r8, str._t_t_tDisk_Free_Space_Border___d_BYTE
lea edx, [rax - 3]
lea rcx, [rsp + 0x30]
call fcn.140007780
mov r9d, ebx
lea r8, str._t_t_tDisk_Free_Space_Margin___d_BYTE
mov edx, 7
lea rcx, [rsp + 0x30]
call fcn.140007780
mov edx, 0x104
lea rcx, [rbp + 0x780]
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
lea r9, [rsp + 0x60]
lea r8, [rsp + 0x70]
lea rdx, [rsp + 0x58]
lea rcx, [rbp + 0x780]
call qword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExW]
mov rsi, qword [rsp + 0x58]
mov qword [rsp + 0x50], rsi
mov eax, 0x431bde83
mul esi
mov ecx, edx
shr ecx, 0x12
mov dword [rsp + 0x44], ecx
mov eax, ecx
imul eax, eax, 0xf4240
mov edx, esi
sub edx, eax
mov dword [rsp + 0x48], edx
mov dword [rsp + 0x20], edx
mov r9d, ecx
lea r8, str._t_t_tDisk_Free_space___u_06u
mov edx, 7
lea rcx, [rsp + 0x30]
call fcn.140007780
mov edx, edi
cmp rsi, rdx
jae 0x140059a54
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [rbp + 0x990]
lea rdx, str.PRINTERCHECKBOX
mov rcx, rax
call qword [rdi + 0x18]
lea rdx, [0x1402e0308]
lea rcx, [rbp + 0x990]
call qword [sym.imp.KERNEL32.dll_lstrcmpW]
mov edi, 1
test eax, eax
jne 0x1400598ba
mov rax, qword [r13]
mov rcx, r13
call qword [rax + 0x20]
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x358]
mov r12d, eax
mov esi, edi
mov dword [rsp + 0x40], r14d
nop dword [rax]
mov rcx, qword [0x1403b9758]
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rdi, qword [rax]
lea r8, [rsp + 0x40]
mov edx, esi
mov rcx, rax
call qword [rdi + 0x3c0]
test eax, eax
jne 0x14005985d
add esi, esi
cmp esi, 0x20
jbe 0x140059830
jmp 0x14005987d
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x40]
mov rdi, qword [rax]
mov edx, dword [rsp + 0x40]
mov rcx, rax
call qword [rdi + 0xa8]
add r12d, eax
mov rax, qword [r13]
mov rcx, r13
call qword [rax + 0x20]
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x360]
mov edi, eax
mov r9d, r12d
lea r8, str._t_t_tInstall_Require_Size___d_
mov edx, 7
lea rcx, [rsp + 0x30]
call fcn.140007780
cmp r12d, edi
jbe 0x1400598ba
sub ebx, edi
add r12d, ebx
jmp 0x1400598bd
mov r12d, ebx
mov ebx, r14d
lea r9, [rbp - 0x80]
mov r8d, 5
lea rdx, str.WorkMargin
lea rcx, str.DiskSpaceCheck
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov r15d, eax
shl r15d, 0x14
mov r9d, r15d
lea r8, str._t_t_tDisk_Free_Space_WorkMargin___d_BYTE
mov edx, 7
lea rcx, [rsp + 0x30]
call fcn.140007780
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x18]
mov rdi, qword [rax]
mov edx, 3
mov rcx, rax
call qword [rdi + 0x58]
test rax, rax
je 0x14005994d
mov ebx, 0x19000
lea edi, [r15 + 0x2800]
nop word [rax + rax]
add ebx, edi
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x18]
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x60]
test rax, rax
jne 0x140059930
mov r9d, ebx
lea r8, str._t_t_tDisk_Free_Space_Required_Work_Margin_Update____d_BYTE
mov edx, 7
lea rcx, [rsp + 0x30]
call fcn.140007780
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x18]
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x28]
mov r13d, eax
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [rbp + 0x1190]
lea rdx, str.INSTALLATION_SELECT
mov rcx, rax
call qword [rdi + 0x18]
lea rsi, [rbp + 0x1190]
lea rdi, [0x1402e0304]
mov ecx, 2
repe cmpsw word [rsi], word [rdi]
mov eax, 1
cmove r13d, eax
test r13d, r13d
jle 0x1400599ce
imul r13d, r15d
add ebx, r13d
mov r9d, ebx
lea r8, str._t_t_tDisk_Free_Space_Required_Work_Margin___d_BYTE
mov edx, 7
lea rcx, [rsp + 0x30]
call fcn.140007780
add r12d, ebx
mov r9d, r12d
lea r8, str._t_t_tRequire_Size___d
mov edx, 7
lea rcx, [rsp + 0x30]
call fcn.140007780
mov ecx, dword [rsp + 0x48]
mov dword [rsp + 0x20], ecx
mov r9d, dword [rsp + 0x44]
lea r8, str._t_t_tDiskFree_Size___u_06u
mov edx, 7
lea rcx, [rsp + 0x30]
call fcn.140007780
mov edx, r12d
cmp rdx, qword [rsp + 0x50]
jbe 0x140059a70
mov rcx, qword [0x1403b9770]
mov rax, qword [rcx]
mov edx, 0xa4
call qword [rax + 0x18]
mov r14d, 0x8001001e
mov dword [0x1403b95bc], 0x1e
jmp 0x140059a70
shr edi, 0x14
mov r9d, edi
lea r8, str._t_t_tFree_Space_Over_the__d_MB
mov edx, 7
lea rcx, [rsp + 0x30]
call fcn.140007780
mov r9d, r14d
lea r8, str.return__08x
mov edx, 2
lea rcx, [rsp + 0x30]
call fcn.140007780
nop
lea rcx, [rsp + 0x30]
call fcn.140007730
mov eax, r14d
mov rcx, qword [rbp + 0x1990]
xor rcx, rsp
call fcn.140245660
lea r11, [rsp + 0x1aa0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret