Function at 0x407e60
Capabilities:
Get disk size

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x15c
push ebx
push esi
push edi
mov dword [ebp - 0x10c], 0x3196c
mov dword [ebp - 0xbc], 0
movzx eax, word [0x55c970]
mov dword [ebp - 0x144], eax
mov cl, byte [0x55c92c]
mov byte [ebp - 0x81], cl
mov dx, word [0x55c970]
mov word [ebp - 0xac], dx
mov eax, dword [ebp - 0x10c]
sub eax, 0x2cfd8
mov esi, eax
xor edi, edi
add esi, dword [ebp - 0x70]
adc edi, dword [ebp - 0x6c]
mov ecx, dword [ebp - 0x10c]
xor edx, edx
add esi, ecx
adc edi, edx
or esi, 0x4bea7
mov eax, dword [ebp - 0x10c]
xor ecx, ecx
mov ebx, dword [ebp - 0x70]
sub ebx, eax
mov eax, dword [ebp - 0x6c]
sbb eax, ecx
mov edx, dword [ebp - 0x10c]
xor ecx, ecx
add ebx, edx
adc eax, ecx
push 0
push 0
push 0
push 0
push 0
push 0
mov dword [ebp - 0x14c], eax
call dword [sym.imp.KERNEL32.dll_GetTimeFormatA]
xor edx, edx
add ebx, eax
mov eax, dword [ebp - 0x14c]
adc eax, edx
push 0
push 0
mov dword [ebp - 0x150], eax
call dword [sym.imp.KERNEL32.dll_SetComputerNameExW]
mov ecx, dword [ebp - 0x10c]
lea edx, [ecx + eax + 0x428e2]
xor eax, eax
and ebx, edx
mov ecx, dword [ebp - 0x150]
and ecx, eax
push 0
push 0
push 0
mov dword [ebp - 0x154], ecx
call dword [sym.imp.KERNEL32.dll_GetVolumePathNameW]
xor ecx, ecx
and ebx, eax
mov eax, dword [ebp - 0x154]
and eax, ecx
or esi, ebx
or edi, eax
mov word [ebp - 0xac], si
mov edx, 0x89c5a
sub edx, dword [ebp - 0x10c]
and edx, 0xbcd62
movzx eax, word [ebp - 0xac]
add eax, dword [ebp - 0x10c]
or edx, eax
mov word [ebp - 0xac], dx
cmp dword [ebp - 0x10c], 0x4d5ac
ja 0x407fa0
movzx ecx, byte [ebp - 0x81]
test ecx, ecx
jne 0x407fe8
movzx edx, word [ebp - 0xac]
and edx, dword [ebp - 0x10c]
mov eax, dword [ebp - 0x10c]
add eax, 0x1a231
sub eax, dword [ebp - 0x10c]
sub eax, 0x3a971
and edx, eax
and edx, 0x723bf
movzx ecx, word [ebp - 0xac]
add ecx, 0x4e4ba
sub ecx, dword [ebp - 0x10c]
and edx, ecx
mov dword [ebp - 0x10c], edx
jmp 0x408042
push 0
push 0
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetTimeFormatA]
mov esi, eax
sub esi, 0x4159d
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_PostQueuedCompletionStatus]
sub esi, eax
sub esi, 0x38947
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_DefineDosDeviceA]
sub eax, 0x9ee6
and esi, eax
push 0
push 0
call sub.KERNEL32.dll_CreateToolhelp32Snapshot
and esi, eax
or esi, 0x5f3e3
mov dword [ebp - 0x10c], esi
mov dword [ebp - 0x10c], 0x7521e
push 0
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetStringTypeExA]
cmp eax, 0x3cdc5
je 0x408093
cmp dword [ebp - 0x10c], 0xb855
jne 0x4080f3
push 0
push 0
call dword [sym.imp.KERNEL32.dll_SetThreadAffinityMask]
cmp eax, 0x6612e
jne 0x4080f3
movzx edx, byte [ebp - 0x81]
cmp edx, 0x32830
jne 0x4080f3
push 0
push 0
push 0
call sub.KERNEL32.dll_SetConsoleDisplayMode
mov esi, eax
sub esi, dword [ebp - 0x10c]
and esi, dword [ebp - 0x10c]
mov eax, dword [ebp - 0x10c]
sub eax, dword [ebp - 0x10c]
or esi, eax
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateSemaphoreW]
sub eax, 0xafd1
or esi, eax
movzx ecx, byte [ebp - 0x81]
mov edx, 0x76f1
sub edx, ecx
and edx, 0x1285d
and edx, 0x3463a
or esi, edx
mov dword [ebp - 0x10c], esi
jmp 0x408145
push 0
call dword [sym.imp.KERNEL32.dll_FindAtomW]
movzx ebx, ax
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_OpenEventA]
sub ebx, eax
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessWorkingSetSize]
mov ecx, dword [ebp - 0x10c]
sub ecx, eax
sub ecx, dword [ebp - 0x10c]
mov eax, dword [ebp - 0x10c]
shr eax, cl
or ebx, eax
movzx ecx, word [ebp - 0xac]
sub ecx, 0x6e1a0
or ebx, ecx
mov byte [ebp - 0x81], bl
movzx edx, word [ebp - 0xac]
cmp dword [ebp - 0x10c], edx
jne 0x408168
movzx eax, word [ebp - 0xac]
sub eax, 0x13999
mov dword [ebp - 0x10c], eax
jmp 0x4081cc
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetConsoleAliasExesW]
add eax, 0x231d2
sub eax, dword [ebp - 0x10c]
movzx ecx, word [ebp - 0xac]
or eax, ecx
movzx edx, byte [ebp - 0x81]
mov ecx, 0x33405
sub ecx, edx
mov edx, dword [ebp - 0x10c]
lea ecx, [ecx + edx - 0x7448e]
mov edx, dword [ebp - 0x10c]
add edx, 0x77f97
and ecx, edx
and ecx, 0x3115f
or eax, ecx
movzx ecx, byte [ebp - 0x81]
add ecx, dword [ebp - 0x10c]
or eax, ecx
mov dword [ebp - 0x10c], eax
push 0
call dword [sym.imp.KERNEL32.dll_SetConsoleActiveScreenBuffer]
mov esi, eax
sub esi, dword [ebp - 0x10c]
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessVersion]
add esi, eax
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetFileTime]
mov edx, dword [ebp - 0x10c]
sub edx, eax
sub edx, 0x5293e
or esi, edx
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetLongPathNameW]
add eax, 0xa661
or esi, eax
mov dword [ebp - 0x10c], esi
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_DefineDosDeviceW]
mov ebx, eax
xor esi, esi
mov eax, dword [ebp - 0x10c]
add eax, 0x4baa2
mov ecx, dword [ebp - 0x10c]
add ecx, 0x350e0
and eax, ecx
mov edi, eax
xor eax, eax
push 0
push 0
push 0
push 0
push 0
mov dword [ebp - 0x158], eax
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceA]
sub eax, dword [ebp - 0x10c]
push 0
push 0
push 0
push 0
push 0
mov dword [ebp - 0x15c], eax
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceA]
mov ecx, dword [ebp - 0x15c]
lea edx, [ecx + eax + 0x33469]
xor eax, eax
add edx, dword [ebp - 0x70]
adc eax, dword [ebp - 0x6c]
and edi, edx
mov ecx, dword [ebp - 0x158]
and ecx, eax
or ebx, edi
or esi, ecx
mov byte [ebp - 0x81], bl
movzx ecx, word [ebp - 0xac]
cmp ecx, 0x3f301
jne 0x4082e3
cmp dword [ebp - 0x10c], 0x63ec1
jbe 0x4082e3
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateEventA]
mov edx, dword [ebp - 0x10c]
lea eax, [edx + eax + 0x201e7]
mov dword [ebp - 0x10c], eax
jmp 0x4082f0
call dword [sym.imp.KERNEL32.dll_CreateTimerQueue]
mov word [ebp - 0xac], ax
movzx eax, byte [ebp - 0x81]
cdq
mov esi, eax
mov edi, edx
add esi, dword [ebp - 0x70]
adc edi, dword [ebp - 0x6c]
mov ecx, dword [ebp - 0x10c]
xor edx, edx
add esi, ecx
adc edi, edx
add esi, 0x1fae
adc edi, 0
or esi, 0x34190
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExW]
add eax, 0x54143
xor ecx, ecx
or esi, eax
or edi, ecx
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateHardLinkA]
movzx edx, word [ebp - 0xac]
add eax, edx
sub eax, dword [ebp - 0x10c]
sub eax, dword [ebp - 0x10c]
xor ecx, ecx
or esi, eax
or edi, ecx
mov dword [ebp - 0x10c], esi
mov ax, word [ebp - 0xac]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x28