Function at 0x404e30
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x84
mov byte [ebp - 0x36], 0x7b
mov al, byte [section..data]
mov byte [ebp - 0x3f], al
movsx ecx, byte [ebp - 0x3f]
movsx edx, byte [ebp + 8]
sub ecx, edx
movsx eax, byte [section..data]
cmp ecx, eax
jne 0x405105
mov dword [ebp - 0x68], 0xdac9
mov dword [ebp - 0x18], 0x3565
push 0
push 0
call dword [sym.imp.KERNEL32.dll_AssignProcessToJobObject]
lea ecx, [ebp - 0x5c]
push ecx
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
call dword [sym.imp.KERNEL32.dll_GetLogicalDrives]
mov dword [ebp - 0x6c], eax
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x7c], edx
cmp dword [ebp - 0x7c], 0x34bb
je 0x404ea6
cmp dword [ebp - 0x7c], 0x3565
je 0x404ee2
jmp 0x404f77
movsx eax, byte [ebp + 8]
movsx ecx, byte [section..data]
and eax, ecx
mov byte [ebp - 0x3f], al
movzx edx, byte [ebp - 0x36]
or edx, 0xb1
mov byte [ebp - 0x36], dl
mov cl, byte [ebp - 0x3f]
call fcn.00403a80
mov al, byte [ebp - 0x3f]
mov byte [ebp + 8], al
mov ecx, dword [ebp - 0x18]
xor ecx, 0x2ed7
mov dword [ebp - 0x18], ecx
jmp 0x404f77
mov dl, byte [ebp + 8]
mov byte [ebp - 0x80], dl
cmp byte [ebp - 0x80], 0x10
je 0x404ef3
jmp 0x404f77
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x84], eax
cmp dword [ebp - 0x84], 0x3e81
je 0x404f16
cmp dword [ebp - 0x84], 0x9ddd
je 0x404f6c
jmp 0x404f77
mov cl, byte [ebp - 0x3f]
mov byte [ebp + 8], cl
cmp dword [ebp - 0x68], 0xeca9
je 0x404f5d
movzx edx, byte [ebp - 0x36]
shl edx, 2
mov byte [ebp - 0x36], dl
mov eax, dword [ebp - 0x18]
add eax, 0x4f9a
mov dword [ebp - 0x18], eax
lea ecx, [ebp - 0x1c]
push ecx
push 0x31
lea edx, [ebp - 0x18]
push edx
mov eax, dword [ebp - 0x34]
push eax
call sub.WINSPOOL.DRV_ReadPrinter
mov dword [ebp - 0x1c], eax
call fcn.00405130
mov cl, byte [ebp - 0x3f]
mov byte [ebp + 8], cl
jmp 0x404f6a
movzx edx, byte [ebp - 0x36]
sub edx, 0xbc
mov byte [ebp - 0x36], dl
jmp 0x404f77
call fcn.00405130
mov al, byte [ebp - 0x3f]
mov byte [ebp + 8], al
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x44], ecx
mov edx, dword [ebp - 0x44]
mov dword [ebp - 0x30], edx
lea eax, [ebp - 0x3f]
mov dword [ebp - 8], eax
mov ecx, 0x411
mov word [ebp - 0x2c], cx
mov dl, byte [ebp - 0x36]
mov byte [ebp - 0x3d], dl
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x70], eax
mov ecx, dword [ebp - 0x44]
imul ecx, dword [ebp - 0x18]
mov dword [ebp - 0x30], ecx
mov edx, dword [ebp - 0x44]
and edx, dword [ebp - 0x30]
cmp edx, dword [ebp - 0x18]
je 0x4050af
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0x78], eax
mov ecx, dword [ebp - 0x44]
mov dword [ebp - 0x3c], ecx
lea edx, [ebp - 0x44]
mov dword [ebp - 0xc], edx
mov eax, 0x6d4
mov word [ebp - 0x64], ax
mov cl, byte [ebp - 0x36]
mov byte [ebp - 1], cl
lea edx, [ebp - 0x2c]
mov dword [ebp - 0x10], edx
mov al, byte [ebp - 0x3f]
mov byte [ebp - 0x3e], al
lea ecx, [ebp - 0x68]
mov dword [ebp - 0x74], ecx
mov edx, dword [ebp - 0xc]
mov eax, dword [edx]
cdq
idiv dword [ebp - 0x3c]
mov dword [ebp - 0x30], eax
lea eax, [ebp - 0x3d]
mov dword [ebp - 0x14], eax
mov cx, word [ebp - 0x64]
mov word [ebp - 0x28], cx
mov edx, dword [ebp - 0x14]
movzx eax, byte [edx]
movzx ecx, byte [ebp - 0x36]
or eax, ecx
movzx edx, byte [ebp - 0x3d]
movzx ecx, byte [ebp - 1]
xor edx, ecx
cmp eax, edx
jge 0x405030
call fcn.00405130
mov edx, dword [ebp - 0x74]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x78]
shl eax, cl
mov dword [ebp - 0x68], eax
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x60], ecx
movsx edx, word [ebp - 0x2c]
imul edx, edx, 0x59b
mov eax, dword [ebp - 0x10]
movsx ecx, word [eax]
cmp edx, ecx
jle 0x40504c
jmp 0x405055
mov edx, dword [ebp - 0x3c]
and edx, dword [ebp - 0x44]
mov dword [ebp - 0x60], edx
mov eax, dword [ebp - 0x18]
sub eax, dword [ebp - 0x30]
mov dword [ebp - 0x44], eax
mov cl, byte [ebp - 0x3e]
mov byte [ebp + 8], cl
lea edx, [ebp - 0x10]
push edx
lea eax, [ebp - 0x30]
push eax
push 0xf9
lea ecx, [ebp - 0x3e]
push ecx
push 0xbd
mov edx, dword [ebp - 0x24]
push edx
push 0xfd
call sub.WINSPOOL.DRV_EnumPrintersA
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x14]
movzx ecx, byte [eax]
movzx edx, byte [ebp - 0x36]
sub ecx, edx
mov eax, dword [ebp - 0x14]
mov byte [eax], cl
mov ecx, dword [ebp - 0x74]
mov edx, dword [ecx]
add edx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x74]
mov dword [eax], edx
mov cl, byte [ebp - 0x3f]
mov byte [ebp + 8], cl
movsx edx, byte [ebp - 0x3f]
movsx eax, byte [section..data]
add edx, eax
mov ecx, dword [ebp - 8]
mov byte [ecx], dl
mov edx, dword [ebp - 0x68]
sub edx, 0xb06a
mov dword [ebp - 0x70], edx
mov eax, dword [ebp - 8]
mov cl, byte [eax]
mov byte [ebp + 8], cl
mov dl, byte [ebp - 0x36]
mov ecx, dword [ebp - 0x2c]
call fcn.004044e0
mov edx, dword [ebp - 0x18]
add edx, dword [ebp - 0x30]
mov dword [ebp - 0x44], edx
mov eax, dword [ebp - 8]
movsx ecx, byte [eax]
movsx edx, byte [ebp - 0x3f]
sub ecx, edx
mov eax, dword [ebp - 8]
mov byte [eax], cl
mov edx, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x18]
sar edx, cl
mov dword [ebp - 0x30], edx
movzx eax, byte [ebp + 8]
push eax
call fcn.00404e30
movzx ecx, byte [ebp - 0x36]
add ecx, 0x2c
mov byte [ebp - 0x36], cl
movsx eax, byte [section..data]
mov esp, ebp
pop ebp
ret 4