Function at 0x5e4030
Capabilities:
Get disk size

Disassembly:
push rbp
sub rsp, 0x40
mov rbp, rsp
mov qword [rbp + 0x28], rbp
mov word [rbp + 0x50], cx
mov qword [rbp + 0x58], rdx
mov rcx, qword [rbp + 0x58]
call fcn.0040eab0
nop
mov eax, dword [0x006965a0]
mov dword [0x006962c8], eax
mov eax, dword [0x00695bf0]
cmp eax, dword [0x00696180]
je 0x5e4074
mov eax, dword [0x00695bf0]
mov dword [0x00696180], eax
mov eax, dword [0x00693440]
add eax, 1
cmp dword [0x00693440], eax
jne 0x5e40dc
mov eax, dword [0x00693568]
test eax, eax
jge 0x5e4094
call fcn.0040afc0
mov ecx, dword [0x006942dc]
test ecx, ecx
jge 0x5e40a3
call fcn.0040afc0
mov edx, dword [0x006958fc]
test edx, edx
jge 0x5e40b2
call fcn.0040afc0
mov r8d, dword [0x00695c0c]
test r8d, r8d
jge 0x5e40c3
call fcn.0040afc0
mov r9d, ecx
mov r10d, edx
mov r11d, r8d
mov ecx, eax
mov edx, r9d
mov r8d, r10d
mov r9d, r11d
call sub.advapi32.dll_CryptDuplicateKey
call fcn.005d2cb0
call fcn.005d2cb0
mov eax, dword [0x00693440]
add eax, 1
cmp dword [0x00693440], eax
jne 0x5e4137
mov eax, dword [0x006957f8]
test eax, eax
jge 0x5e4106
call fcn.0040afc0
mov ecx, dword [0x00695bf8]
test ecx, ecx
jge 0x5e4115
call fcn.0040afc0
mov edx, dword [0x0069618c]
test edx, edx
jge 0x5e4124
call fcn.0040afc0
mov r8d, ecx
mov r9d, edx
mov ecx, eax
mov edx, r8d
mov r8d, r9d
call sub.kernel32.dll_GetDiskFreeSpaceExW
mov eax, dword [0x00695864]
add eax, dword [0x00695b8c]
mov ecx, dword [0x00696120]
add ecx, dword [0x00696308]
cmp eax, ecx
jle 0x5e415f
mov eax, dword [0x00696308]
mov dword [0x00695864], eax
mov eax, dword [0x006957f8]
add eax, dword [0x006958ec]
mov ecx, dword [0x00695bf8]
add ecx, dword [0x0069618c]
cmp eax, ecx
jle 0x5e4180
call fcn.004096f0
mov eax, dword [0x00693284]
mov dword [0x00696ac4], eax
mov eax, dword [0x00693284]
mov dword [0x00696ac4], eax
mov eax, dword [0x00695c10]
cmp eax, dword [0x006961a4]
je 0x5e41b2
mov eax, dword [0x00695c10]
mov dword [0x006961a4], eax
nop
mov eax, dword [0x006931e4]
add eax, dword [0x006933ac]
mov ecx, dword [0x006934d8]
add ecx, dword [0x0069396c]
cmp eax, ecx
jle 0x5e41d9
mov dword [0x006931e4], 0x12b
mov eax, dword [0x00696a70]
mov dword [0x006965b4], eax
mov eax, dword [0x00695838]
add eax, dword [0x00695928]
mov ecx, dword [0x00695d80]
add ecx, dword [0x006962dc]
cmp eax, ecx
jle 0x5e4206
call fcn.004096f0
mov eax, dword [0x0069590c]
add eax, dword [0x00695c1c]
mov ecx, dword [0x006961ac]
add ecx, dword [0x006965e0]
cmp eax, ecx
jle 0x5e422e
mov eax, dword [0x006965e0]
mov dword [0x0069590c], eax
mov dword [rbp + 0x38], 0
mov rax, qword [rbp + 0x58]
test rax, rax
je 0x5e4244
mov eax, dword [rax - 4]
mov dword [rbp + 0x38], eax
mov eax, dword [rbp + 0x38]
mov dword [rbp + 0x3c], eax
cmp dword [rbp + 0x3c], 1
jl 0x5e428c
mov eax, dword [rbp + 0x3c]
movsxd rax, eax
cmp qword [rbp + 0x58], 0
je 0x5e426d
lea rcx, [rax - 1]
mov rdx, qword [rbp + 0x58]
mov edx, dword [rdx - 4]
cmp rcx, rdx
jb 0x5e4272
call fcn.0040afc0
mov rcx, qword [rbp + 0x58]
movzx rax, word [rcx + rax*2 - 2]
cmp ax, word [rbp + 0x50]
je 0x5e428c
sub dword [rbp + 0x3c], 1
cmp dword [rbp + 0x3c], 0
jne 0x5e4250
nop
jmp 0x5e4297
mov eax, dword [0x0069590c]
add eax, dword [0x00695c1c]
mov ecx, dword [0x006961ac]
add ecx, dword [0x006965e0]
cmp eax, ecx
jle 0x5e42bf
mov eax, dword [0x006965e0]
mov dword [0x0069590c], eax
mov eax, dword [0x00695d7c]
cmp eax, dword [0x006962dc]
je 0x5e42d9
mov eax, dword [0x00695d7c]
mov dword [0x006962dc], eax
nop
lea rcx, [rbp + 0x58]
call fcn.0040e920
mov eax, dword [rbp + 0x3c]
lea rsp, [rbp + 0x40]
pop rbp
ret