Function at 0x41615e
Capabilities:
Get disk size

Disassembly:
push ebp
lea ebp, [esp - 0x90c]
sub esp, 0x98c
mov eax, dword [0x488548]
xor eax, ebp
mov dword [ebp + 0x908], eax
push esi
mov esi, dword [ebp + 0x914]
push edi
lea edi, [esi + 0xa34]
cmp word [edi], 0x3f
je 0x4163dc
push ebx
xor ebx, ebx
cmp dword [ebp + 0x918], ebx
je 0x4161a6
lea eax, [esi + 0x64]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [esi + 0x1d20]
cmp eax, 1
je 0x416238
cmp eax, 2
je 0x416238
cmp eax, 3
je 0x416238
cmp eax, ebx
je 0x416238
xor edx, edx
lea ecx, [esi + 0x1d58]
cmp dword [ecx], ebx
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x60], edx
jle 0x4161fa
mov eax, dword [esi + 0x1d34]
mov ecx, dword [ecx]
add eax, 0x44
mov edi, dword [eax - 4]
add dword [ebp - 0x5c], edi
add edx, dword [eax]
mov dword [ebp - 0x60], edx
cmp edx, dword [eax]
jae 0x4161f2
inc dword [ebp - 0x5c]
add eax, 0x278
dec ecx
jne 0x4161e0
or dword [ebp - 0x64], 0xffffffff
mov eax, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x64]
mov edi, dword [ebp - 0x68]
mov edx, dword [ebp - 0x60]
mov dword [esi + 0x1d8c], eax
mov eax, 0x80000000
mov dword [esi + 0x1d80], edi
mov dword [esi + 0x1d84], ecx
mov dword [esi + 0x1d88], edx
test eax, ecx
je 0x416397
or dword [ebp - 0x5c], 0xffffffff
jmp 0x4163a8
lea edx, [ebp + 0x458]
mov eax, edi
sub edx, edi
movzx ecx, word [eax]
mov word [edx + eax], cx
inc eax
inc eax
cmp cx, bx
jne 0x416242
cmp dword [ebp + 0x918], ebx
je 0x416262
lea eax, [esi + 0x64]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 4
mov ecx, str.Netwrk
lea eax, [esi + 0x185c]
pop ebx
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x416294
test dx, dx
je 0x416290
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x416294
add eax, ebx
add ecx, ebx
test dx, dx
jne 0x416270
xor eax, eax
jmp 0x416299
sbb eax, eax
sbb eax, 0xffffffff
xor edi, edi
cmp eax, edi
je 0x4163db
or dword [ebp - 0x5c], 0xffffffff
lea eax, [ebp + 0x458]
push eax
lea eax, [ebp - 0x58]
push eax
call dword [sym.imp.PPLIB32W.DLL__GetDriveName_8]
cmp dword [0x48aa10], 2
lea eax, [ebp + 0x458]
je 0x4162ca
lea eax, [ebp - 0x58]
lea ecx, [ebp - 0x80]
push ecx
lea ecx, [ebp - 0x60]
push ecx
lea ecx, [ebp - 0x68]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExW]
cmp dword [ebp - 0x5c], 0xffffffff
jne 0x41633b
cmp dword [0x48aa04], 6
jb 0x4162f7
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 1
jne 0x416337
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp - 0x74]
push eax
lea eax, [ebp - 0x78]
push eax
lea eax, [ebp - 0x6c]
push eax
lea eax, [ebp - 0x58]
push eax
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceW]
test eax, eax
je 0x416337
mov eax, dword [ebp - 0x6c]
imul eax, dword [ebp - 0x78]
mov ecx, eax
imul ecx, dword [ebp - 0x74]
mov dword [ebp - 0x6c], eax
imul eax, dword [ebp - 0x70]
mov dword [ebp - 0x64], edi
mov dword [ebp - 0x5c], edi
mov dword [ebp - 0x68], ecx
mov dword [ebp - 0x60], eax
jmp 0x41633b
or dword [ebp - 0x64], 0xffffffff
cmp dword [ebp + 0x918], edi
je 0x4161fe
lea edi, [esi + 0x64]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea ecx, [esi + 0xa34]
lea eax, [ebp + 0x458]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x416381
test dx, dx
je 0x41637d
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x416381
add eax, ebx
add ecx, ebx
test dx, dx
jne 0x41635d
xor eax, eax
jmp 0x416386
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4161fe
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x4163db
sub dword [ebp - 0x5c], ecx
mov ecx, edx
sub edx, edi
mov dword [ebp - 0x60], edx
cmp edx, ecx
jbe 0x4163a8
dec dword [ebp - 0x5c]
test dword [ebp - 0x5c], eax
je 0x4163b1
or dword [ebp - 0x5c], 0xffffffff
cmp dword [ebp + 0x918], 0
mov eax, dword [ebp - 0x5c]
mov dword [esi + 0x1d90], edx
mov dword [esi + 0x1d94], eax
je 0x4163db
lea eax, [esi + 0x64]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 0x40
push esi
call fcn.004214f7
pop ebx
mov ecx, dword [ebp + 0x908]
pop edi
xor ecx, ebp
pop esi
call fcn.0046890b
add ebp, 0x90c
leave
ret 8