Function at 0x5d4880
Capabilities:
Get disk size

Disassembly:
push rbp
push rdi
push rsi
sub rsp, 0x400
mov rbp, rsp
mov qword [rbp + 0x130], 0
mov qword [rbp + 0x138], rbp
mov qword [rbp + 0x420], rcx
mov qword [rbp + 0x428], rdx
mov dword [rbp + 0x430], r8d
mov qword [rbp + 0x438], r9
lea rcx, [rbp + 0x438]
call fcn.0040eaf0
nop
mov eax, dword [0x006933e0]
add eax, 1
cmp dword [0x006933e0], eax
jne 0x5d48f8
mov ecx, dword [0x00695bb8]
mov edx, dword [0x00693300]
mov r8d, dword [0x00693500]
mov r9d, dword [0x00693958]
call sub.advapi32.dll_CryptDuplicateKey
call fcn.005cdc30
mov rcx, qword [rbp + 0x420]
call fcn.0040e9c0
nop
mov rcx, qword [0x004d2058]
mov dl, 1
call fcn.0040b440
mov qword [rbp + 0x3f8], rax
nop
mov dword [rbp + 0x154], 0
mov rax, qword [rbp + 0x438]
test rax, rax
je 0x5d4942
mov eax, dword [rax - 4]
shr eax, 1
mov dword [rbp + 0x154], eax
mov rcx, qword [rbp + 0x438]
call fcn.00410050
mov rcx, qword [rbp + 0x3f8]
mov rdx, rax
mov r8d, dword [rbp + 0x154]
add r8d, r8d
movsxd r8, r8d
call fcn.004fbd70
mov eax, dword [0x006932f8]
add eax, 1
cmp dword [0x006932f8], eax
jne 0x5d4993
mov ecx, dword [0x00693908]
mov edx, dword [0x00695838]
mov r8d, dword [0x00695ba4]
call sub.kernel32.dll_GetDiskFreeSpaceExW
mov eax, dword [0x006942b4]
add eax, dword [0x00695844]
mov ecx, dword [0x00695908]
add ecx, dword [0x00695be8]
cmp eax, ecx
jle 0x5d49bb
mov eax, dword [0x00695be8]
mov dword [0x006942b4], eax
mov eax, dword [0x006931c0]
mov dword [0x0069611c], eax
call fcn.005ccda0
mov dword [0x0069329c], 0x31e
mov eax, dword [0x0069329c]
sub eax, 0x1b0
mov dword [0x006933d4], eax
mov eax, dword [0x00693204]
mov dword [0x00696160], eax
mov eax, dword [0x006933d0]
add eax, 1
cmp dword [0x006933d0], eax
jne 0x5d4a1d
mov ecx, dword [0x00693974]
mov edx, dword [0x006957fc]
mov r8d, dword [0x006958f8]
call sub.kernel32.dll_GetDiskFreeSpaceExW
lea rcx, [rbp + 0x158]
mov edx, 0x2a0
xor r8, r8
call fcn.0040a9a0
mov eax, dword [0x00693204]
mov dword [0x00696160], eax
mov eax, dword [0x006958f8]
cmp eax, dword [0x00695bd8]
je 0x5d4a58
mov eax, dword [0x006958f8]
mov dword [0x00695bd8], eax
mov eax, dword [0x00695904]
add eax, dword [0x00695bac]
mov ecx, dword [0x006942ac]
add ecx, dword [0x0069583c]
cmp ecx, eax
jle 0x5d4a80
mov ecx, dword [0x00695bac]
mov dword [0x006942ac], ecx
mov ecx, dword [0x006942ac]
add ecx, dword [0x0069583c]
cmp ecx, eax
jle 0x5d4a9c
mov eax, dword [0x00695bac]
mov dword [0x006942ac], eax
mov eax, dword [0x00695868]
cmp eax, dword [0x0069592c]
je 0x5d4ab6
mov eax, dword [0x00695868]
mov dword [0x0069592c], eax
mov eax, dword [0x006933c8]
add eax, 1
cmp dword [0x006933c8], eax
jne 0x5d4af0
mov ecx, dword [0x006940b8]
mov edx, dword [0x00695834]
mov r8d, dword [0x00695930]
mov r9d, dword [0x00695d90]
mov eax, dword [0x006961ac]
mov dword [rsp + 0x20], eax
call sub.kernel32.dll_LockFile
mov eax, dword [0x00693204]
mov dword [0x00696160], eax
mov eax, dword [0x00693204]
mov dword [0x00696160], eax
mov eax, dword [0x0069584c]
cmp eax, dword [0x00695910]
je 0x5d4b22
mov eax, dword [0x0069584c]
mov dword [0x00695910], eax
mov eax, dword [0x006942c4]
add eax, dword [0x00695854]
mov ecx, dword [0x00695918]
add ecx, dword [0x00695bc0]
cmp eax, ecx
jle 0x5d4b4a
mov eax, dword [0x00695bc0]
mov dword [0x006942c4], eax
mov rcx, qword [rbp + 0x3f8]
mov rax, qword [rbp + 0x3f8]
mov rax, qword [rax]
call qword [rax]
lea rcx, [rbp + 0x130]
mov rdx, qword [rbp + 0x3f8]
mov rdx, qword [rdx + 8]
mov r8d, eax
call fcn.005a9750
lea rcx, [rbp + 0x30]
mov rdx, qword [rbp + 0x130]
mov r8d, 0xff
call fcn.0040f680
lea rcx, [rbp + 0x190]
lea rdx, [rbp + 0x30]
mov r8b, 0x20
call fcn.0040f3e0
mov eax, dword [0x006932a4]
add eax, 1
cmp dword [0x006932a4], eax
jne 0x5d4bd1
mov ecx, dword [0x00695c18]
mov edx, dword [0x006933b8]
mov r8d, dword [0x006934f0]
mov r9d, dword [0x00693948]
call sub.advapi32.dll_CryptDuplicateKey
mov eax, dword [0x00696190]
mov dword [0x00696120], eax
call fcn.005cb920
mov eax, dword [0x00693288]
add eax, 1
cmp dword [0x00693288], eax
jne 0x5d4c1c
mov ecx, dword [0x006933dc]
mov edx, dword [0x0069354c]
mov r8d, dword [0x00694120]
mov r9d, dword [0x006957f4]
mov eax, dword [0x006958f0]
mov dword [rsp + 0x20], eax
call sub.kernel32.dll_LockFile
mov eax, dword [0x006a88b0]
mov dword [rbp + 0x164], eax
mov eax, dword [0x00694120]
add eax, dword [0x006957f4]
mov ecx, dword [0x0069589c]
add ecx, dword [0x00695b98]
cmp eax, ecx
jle 0x5d4c49
call fcn.004096f0
mov dword [0x0069328c], 0x2f7
mov eax, dword [0x0069328c]
sub eax, 0x19e
mov dword [0x006933c4], eax
mov eax, dword [0x0069618c]
mov dword [0x00695d70], eax
mov eax, dword [0x00695880]
add eax, dword [0x00695944]
mov ecx, dword [0x0069413c]
add ecx, dword [0x006942f0]
cmp ecx, eax
jle 0x5d4c99
mov ecx, dword [0x00695944]
mov dword [0x0069413c], ecx
mov ecx, dword [0x0069413c]
add ecx, dword [0x006942f0]
cmp ecx, eax
jle 0x5d4cb5
mov eax, dword [0x00695944]
mov dword [0x0069413c], eax
mov eax, dword [0x0069585c]
cmp eax, dword [0x00695920]
je 0x5d4ccf
mov eax, dword [0x0069585c]
mov dword [0x00695920], eax
mov eax, dword [0x0069328c]
add eax, 1
cmp dword [0x0069328c], eax
jne 0x5d4cff
mov ecx, dword [0x00695910]
mov edx, dword [0x00696190]
mov r8d, dword [0x00693294]
mov r9d, dword [0x0069343c]
call sub.advapi32.dll_CryptDuplicateKey
mov eax, dword [0x006942fc]
add eax, dword [0x0069588c]
mov ecx, dword [0x00695b88]
add ecx, dword [0x00695d78]
cmp eax, ecx
jle 0x5d4d27
mov eax, dword [0x00695d78]
mov dword [0x006942fc], eax
mov eax, dword [0x00696184]
mov dword [0x00695c20], eax
lea rcx, [rbp + 0x16f]
lea rdx, [0x006a8700]
mov r8b, 0x20
call fcn.0040f3e0
mov eax, dword [0x006933c4]
add eax, 1
cmp dword [0x006933c4], eax
jne 0x5d4d65
mov ecx, dword [0x006931d0]
call sub.kernel32.dll_SetConsoleKeyShortcuts
mov eax, dword [rbp + 0x430]
mov dword [rbp + 0x3bc], eax
call fcn.005cb920
mov eax, dword [0x00696184]
mov dword [0x00695c20], eax
mov eax, dword [0x00695870]
cmp eax, dword [0x00695934]
je 0x5d4d9c
mov eax, dword [0x00695870]
mov dword [0x00695934], eax
call fcn.005d2170
cmp eax, dword [0x006931f8]
jle 0x5d4db3
mov dword [0x006931f8], 0x3d
mov dword [0x00693284], 0x2f2
mov eax, dword [0x00693284]
sub eax, 0x1aa
mov dword [0x006933bc], eax
mov eax, dword [0x00694124]
add eax, dword [0x006957f8]
mov ecx, dword [0x006958a0]
add ecx, dword [0x00695b9c]
cmp eax, ecx
jle 0x5d4df0
call fcn.004096f0
mov eax, dword [0x0069339c]
add eax, 1
cmp dword [0x0069339c], eax
jne 0x5d4e0c
mov ecx, dword [0x00695c10]
call sub.kernel32.dll_SetConsoleKeyShortcuts
mov eax, dword [0x006931c4]
mov dword [0x00696120], eax
mov eax, dword [0x006931c4]
mov dword [0x00696120], eax
mov eax, dword [0x00695860]
cmp eax, dword [0x00695924]
je 0x5d4e3e
mov eax, dword [0x00695860]
mov dword [0x00695924], eax
mov eax, dword [0x006940c0]
add eax, dword [0x006942ac]
mov ecx, dword [0x00695804]
add ecx, dword [0x006958c8]
cmp eax, ecx
jle 0x5d4e5f
call fcn.004096f0
mov dword [rbp + 0x3c0], 2
mov eax, dword [0x00693974]
mov dword [0x00693554], eax
call fcn.005d4760
cmp eax, dword [0x006932b0]
jle 0x5d4e8c
mov dword [0x006932b0], 0x53
mov dword [0x006931f4], 0x2f7
mov eax, dword [0x006931f4]
sub eax, 0x19d
mov dword [0x006932fc], eax
mov eax, dword [0x00695800]
add eax, dword [0x006958c4]
mov ecx, dword [0x00695ba8]
add ecx, dword [0x00695d98]
cmp eax, ecx
jle 0x5d4ed0
mov eax, dword [0x00695d98]
mov dword [0x00695800], eax
mov eax, dword [0x00695d98]
mov dword [0x00695ba8], eax
mov dword [rbp + 0x3c4], 1
mov dword [0x00693208], 0x303
mov eax, dword [0x00693208]
sub eax, 0x1a3
mov dword [0x006933a4], eax
mov eax, dword [0x00695830]
add eax, dword [0x006958f8]
mov ecx, dword [0x00695bd8]
add ecx, dword [0x0069613c]
cmp eax, ecx
jle 0x5d4f2a
mov eax, dword [0x0069613c]
mov dword [0x00695830], eax
call fcn.005cc090
mov eax, dword [0x00695830]
add eax, dword [0x006958f8]
mov ecx, dword [0x00695bd8]
add ecx, dword [0x0069613c]
cmp eax, ecx
jle 0x5d4f57
mov eax, dword [0x0069613c]
mov dword [0x00695830], eax
mov eax, dword [0x0069585c]
cmp eax, dword [0x00695920]
je 0x5d4f71
mov eax, dword [0x0069585c]
mov dword [0x00695920], eax
mov eax, dword [0x006933a8]
add eax, 1
cmp dword [0x006933a8], eax
jne 0x5d4fab
mov ecx, dword [0x0069593c]
mov edx, dword [0x00696180]
mov r8d, dword [0x006932bc]
mov r9d, dword [0x0069342c]
mov eax, dword [0x00693564]
mov dword [rsp + 0x20], eax
call sub.kernel32.dll_LockFile
call fcn.005a66a0
movsd qword [rbp + 0x3c8], xmm0
mov eax, dword [0x00695830]
add eax, dword [0x006958f4]
mov ecx, dword [0x00695bd4]
add ecx, dword [0x00696138]
cmp eax, ecx
jle 0x5d4fe0
mov eax, dword [0x00696138]
mov dword [0x00695830], eax
mov eax, dword [0x00693434]
add eax, 1
cmp dword [0x00693434], eax
jne 0x5d501a
mov ecx, dword [0x00693980]
mov edx, dword [0x00695808]
mov r8d, dword [0x006958cc]
mov r9d, dword [0x00695be8]
mov eax, dword [0x0069614c]
mov dword [rsp + 0x20], eax
call sub.kernel32.dll_LockFile
mov eax, dword [0x006933a0]
add eax, 1
cmp dword [0x006933a0], eax
jne 0x5d5043
mov ecx, dword [0x006934f0]
mov edx, dword [0x006940fc]
mov r8d, dword [0x006942e8]
call sub.kernel32.dll_GetDiskFreeSpaceExW
call fcn.005d08d0
cmp eax, dword [0x006961a4]
jle 0x5d505a
mov dword [0x006961a4], 0x27
call fcn.005a6320
mov dword [rbp + 0x3d8], eax
call fcn.005d2170
cmp eax, dword [0x006931fc]
jle 0x5d507c
mov dword [0x006931fc], 0x3e
mov dword [rbp + 0x160], 0xffffffff
mov eax, dword [0x00693200]
mov dword [0x0069615c], eax
call fcn.005d19c0
cmp eax, dword [0x006931d0]
jle 0x5d50a9
mov dword [0x006931d0], 0x33
mov eax, dword [0x006942bc]
mov dword [0x006940d0], eax
mov eax, dword [0x00695d7c]
mov dword [0x0069591c], eax
mov eax, dword [0x00695d7c]
mov dword [0x0069591c], eax
mov eax, dword [0x0069588c]
cmp eax, dword [0x00695b88]
je 0x5d50e7
mov eax, dword [0x0069588c]
mov dword [0x00695b88], eax
mov eax, dword [0x0069327c]
mov dword [0x00696178], eax
mov eax, dword [0x0069327c]
mov dword [0x00696178], eax
mov eax, dword [0x00695854]
cmp eax, dword [0x00695918]
je 0x5d5119
mov eax, dword [0x00695854]
mov dword [0x00695918], eax
lea rdi, [rbp + 0x1b2]
lea rsi, [0x005d579c]
mov ecx, 0x41
rep movsq qword [rdi], qword [rsi]
call fcn.005d08d0
cmp eax, dword [0x006961a4]
jle 0x5d5147
mov dword [0x006961a4], 0x27
lea rcx, [rbp + 0x3f8]
call fcn.005acef0
test al, al
je 0x5d564f
lea rcx, [0x006a8a98]
lea rdx, [rbp + 0x3f8]
call fcn.005aa7b0
test al, al
je 0x5d564f
mov rcx, qword [rbp + 0x3f8]
mov rax, qword [rbp + 0x3f8]
mov rax, qword [rax]
call qword [rax]
mov qword [rbp + 0x3f0], rax
mov dword [0x00693288], 0x333
mov eax, dword [0x00693288]
sub eax, 0x1ab
mov dword [0x006933c0], eax
mov dword [0x00693288], 0x333
mov eax, dword [0x00693288]
sub eax, 0x1ab
mov dword [0x006933c0], eax
mov eax, dword [0x00695850]
cmp eax, dword [0x00695914]
je 0x5d51e2
mov eax, dword [0x00695850]
mov dword [0x00695914], eax
mov rax, qword [rbp + 0x3f0]
lea rax, [rax + 0x2a0]
mov qword [rbp + 0x158], rax
mov eax, dword [0x006961a8]
add eax, dword [0x006932b0]
mov ecx, dword [0x006933e8]
add ecx, dword [0x006934e8]
cmp eax, ecx
jle 0x5d521d
mov dword [0x006961a8], 0x26
mov eax, dword [0x006933a4]
add eax, 1
cmp dword [0x006933a4], eax
jne 0x5d5239
mov ecx, dword [0x006940f8]
call sub.kernel32.dll_SetConsoleKeyShortcuts
mov eax, dword [0x006932b0]
add eax, 1
cmp dword [0x006932b0], eax
jne 0x5d5262
mov ecx, dword [0x0069341c]
mov edx, dword [0x00693904]
mov r8d, dword [0x00694128]
call sub.kernel32.dll_GetDiskFreeSpaceExW
mov eax, dword [0x006932e0]
add eax, 1
cmp dword [0x006932e0], eax
jne 0x5d5292
mov ecx, dword [0x006958c4]
mov edx, dword [0x00695c18]
mov r8d, dword [0x006931b0]
mov r9d, dword [0x006932f0]
call sub.advapi32.dll_CryptDuplicateKey
mov eax, dword [0x006961a8]
add eax, dword [0x006932b0]
mov ecx, dword [0x006933e8]
add ecx, dword [0x006934e8]
cmp eax, ecx
jle 0x5d52b8
mov dword [0x006961a8], 0x26
mov eax, dword [0x006958e8]
cmp eax, dword [0x00695bc8]
je 0x5d52d2
mov eax, dword [0x006958e8]
mov dword [0x00695bc8], eax
mov eax, dword [0x006940d4]
add eax, dword [0x006942c0]
mov ecx, dword [0x00695818]
add ecx, dword [0x006958e0]
cmp eax, ecx
jle 0x5d52f3
call fcn.004096f0
mov eax, dword [0x006942dc]
add eax, dword [0x0069586c]
mov ecx, dword [0x00695934]
add ecx, dword [0x00695bdc]
cmp eax, ecx
jle 0x5d531b
mov eax, dword [0x00695bdc]
mov dword [0x006942dc], eax
mov eax, dword [0x00696158]
mov dword [0x00695bf4], eax
mov rcx, qword [rbp + 0x3f8]
xor edx, edx
xor r8, r8
mov rax, qword [rbp + 0x3f8]
mov rax, qword [rax]
call qword [rax + 0x48]
mov eax, dword [0x00696158]
mov dword [0x00695bf4], eax
mov eax, dword [0x006958c4]
cmp eax, dword [0x00695ba4]
je 0x5d5366
mov eax, dword [0x006958c4]
mov dword [0x00695ba4], eax
call fcn.005d19c0
cmp eax, dword [0x006931cc]
jle 0x5d537d
mov dword [0x006931cc], 0x32
call fcn.005cc790
mov eax, dword [0x006942d0]
add eax, dword [0x00695860]
mov ecx, dword [0x006958ec]
add ecx, dword [0x00695bcc]
cmp eax, ecx
jle 0x5d53aa
mov eax, dword [0x00695bcc]
mov dword [0x006942d0], eax
mov dword [0x00693200], 0x2fc
mov eax, dword [0x00693200]
sub eax, 0x1a0
mov dword [0x00693308], eax
mov eax, dword [0x006933d8]
add eax, 1
cmp dword [0x006933d8], eax
jne 0x5d53f6
mov ecx, dword [0x00695bb8]
mov edx, dword [0x0069618c]
mov r8d, dword [0x006932cc]
mov r9d, dword [0x0069343c]
call sub.advapi32.dll_CryptDuplicateKey
mov eax, dword [0x00696128]
mov dword [0x00695bc4], eax
mov rax, qword [rbp + 0x428]
mov rax, qword [rax]
mov rcx, rax
mov rax, qword [rax]
call qword [rax]
mov qword [rbp + 0x148], rax
mov rax, qword [rbp + 0x428]
mov rax, qword [rax]
mov rcx, rax
mov rdx, qword [rbp + 0x148]
xor r8, r8
mov rax, qword [rax]
call qword [rax + 0x50]
call fcn.005cdc30
call fcn.005a2d10
cmp eax, dword [0x006932b4]
jle 0x5d5454
mov dword [0x006932b4], 0x54
mov rax, qword [rbp + 0x428]
mov rcx, qword [rax]
lea rdx, [rbp + 0x158]
mov r8d, 0x2a0
call fcn.004fbd70
mov eax, dword [0x0069429c]
add eax, dword [0x0069582c]
mov ecx, dword [0x006958f4]
add ecx, dword [0x00695bd4]
cmp eax, ecx
jle 0x5d5499
mov eax, dword [0x00695bd4]
mov dword [0x0069429c], eax
mov eax, dword [0x00696150]
mov dword [0x00695bec], eax
mov eax, dword [0x00696150]
mov dword [0x00695bec], eax
mov eax, dword [0x0069588c]
cmp eax, dword [0x00695b88]
je 0x5d54cb
mov eax, dword [0x0069588c]
mov dword [0x00695b88], eax
mov eax, dword [0x0069341c]
add eax, 1
cmp dword [0x0069341c], eax
jne 0x5d54f4
mov ecx, dword [0x00693908]
mov edx, dword [0x006942a8]
mov r8d, dword [0x00695838]
call sub.kernel32.dll_GetDiskFreeSpaceExW
mov eax, dword [0x006942d0]
add eax, dword [0x00695860]
mov ecx, dword [0x00695924]
add ecx, dword [0x00695c04]
cmp eax, ecx
jle 0x5d551c
mov eax, dword [0x00695c04]
mov dword [0x006942d0], eax
mov rcx, qword [rbp + 0x3f8]
mov rax, qword [rbp + 0x3f8]
mov rax, qword [rax]
call qword [rax]
mov rcx, qword [rbp + 0x428]
mov rcx, qword [rcx]
mov rdx, qword [rbp + 0x3f8]
mov r8, rax
call fcn.004fbf30
mov eax, dword [0x00694114]
add eax, dword [0x00694300]
mov ecx, dword [0x00695890]
add ecx, dword [0x00695b90]
cmp eax, ecx
jle 0x5d5569
call fcn.004096f0
mov eax, dword [0x006931dc]
add eax, dword [0x006932e4]
mov ecx, dword [0x0069341c]
add ecx, dword [0x0069351c]
cmp eax, ecx
jle 0x5d558f
mov dword [0x006931dc], 0x100
mov eax, dword [0x006942fc]
add eax, dword [0x0069588c]
mov ecx, dword [0x00695918]
add ecx, dword [0x00695bf8]
cmp eax, ecx
jle 0x5d55b7
mov eax, dword [0x00695bf8]
mov dword [0x006942fc], eax
mov rcx, qword [rbp + 0x420]
lea rdx, [rbp + 0x190]
call fcn.0040ff20
mov eax, dword [0x006933a8]
mov dword [0x006931d8], eax
mov eax, dword [0x00694124]
add eax, dword [0x006957f8]
mov ecx, dword [0x006958a0]
add ecx, dword [0x00695b9c]
cmp eax, ecx
jle 0x5d55f7
call fcn.004096f0
call fcn.005cc050
mov eax, dword [0x006931d8]
mov dword [0x00696134], eax
mov eax, dword [0x006931d8]
mov dword [0x00696134], eax
mov eax, dword [0x00695908]
cmp eax, dword [0x00695be8]
je 0x5d562e
mov eax, dword [0x00695908]
mov dword [0x00695be8], eax
call fcn.005cce40
call fcn.005a2d10
cmp eax, dword [0x006932cc]
jle 0x5d564a
mov dword [0x006932cc], 0x69
call fcn.005cc790
nop
mov rcx, qword [rbp + 0x3f8]
call fcn.0040b500
jmp 0x5d5693
mov eax, dword [0x006931f4]
mov dword [0x00696118], eax
mov eax, dword [0x00694300]
add eax, dword [0x00695890]
mov ecx, dword [0x00695b8c]
add ecx, dword [0x00695d7c]
cmp eax, ecx
jle 0x5d56c7
mov eax, dword [0x00695d7c]
mov dword [0x00694300], eax
mov eax, dword [0x006931e0]
mov dword [0x00695d90], eax
mov eax, dword [0x006957f0]
add eax, dword [0x00695898]
mov ecx, dword [0x00695b94]
add ecx, dword [0x00695d84]
cmp eax, ecx
jle 0x5d56fb
mov eax, dword [0x00695d84]
mov dword [0x006957f0], eax
mov eax, dword [0x0069616c]
mov dword [0x00695c08], eax
nop
lea rcx, [rbp + 0x130]
call fcn.0040e970
lea rcx, [rbp + 0x438]
call fcn.0040e9c0
mov rax, qword [rbp + 0x420]
lea rsp, [rbp + 0x400]
pop rsi
pop rdi
pop rbp
ret