Function at 0x432210
Capabilities:
Get disk information

Disassembly:
push 0xffffffffffffffff
push 0x47ce20
mov eax, dword fs:[0]
push eax
sub esp, 0x40
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4a9128]
xor eax, esp
push eax
lea eax, [esp + 0x54]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [esp + 0x1c], ebx
lea ecx, [esp + 0x30]
call fcn.004078a0
mov dword [esp + 0x5c], 0
call fcn.00434e50
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x432268
push 0x80004005
call fcn.00401000
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x14], eax
lea ecx, [ebx + 0x1038]
mov byte [esp + 0x5c], 1
call fcn.00407900
mov ebp, dword [sym.imp.KERNEL32.dll_GetLogicalDriveStringsA]
push 0
push 0
call ebp
mov edi, eax
lea ecx, [edi + 1]
push ecx
call fcn.0043379c
add esp, 4
mov esi, eax
push esi
push edi
call ebp
mov eax, esi
lea ecx, [eax + 1]
lea ecx, [ecx]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x4322b0
sub eax, ecx
mov edi, eax
call fcn.00434e50
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x4322d7
push 0x80004005
call fcn.00401000
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x18], eax
test edi, edi
mov byte [esp + 0x5c], 2
jbe 0x43242f
mov bl, 3
test esi, esi
jne 0x4322fe
xor eax, eax
jmp 0x43230e
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x432303
sub eax, edx
push eax
push esi
lea ecx, [esp + 0x20]
call fcn.00401910
mov ebp, dword [esp + 0x18]
cmp dword [ebp - 0xc], 0
jl 0x4325d5
mov cl, byte [ebp]
mov byte [esp + 0x20], cl
mov edx, dword [esp + 0x20]
push edx
call fcn.0040ad80
add esp, 4
test eax, eax
je 0x432356
lea esi, [esi + edi + 1]
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x432348
jmp 0x43241f
cmp dword [ebp - 0xc], 0
jl 0x4325d5
mov al, byte [ebp]
mov byte [esp + 0x24], al
mov ecx, dword [esp + 0x24]
push 0
push ecx
lea edx, [esp + 0x34]
push edx
call fcn.0040b970
push str.mi.dat
push eax
lea eax, [esp + 0x3c]
push eax
mov byte [esp + 0x74], bl
call fcn.00401d00
add esp, 0x18
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x60], 4
call fcn.00401b60
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
mov byte [esp + 0x5c], bl
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4323c2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
mov byte [esp + 0x5c], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4323e7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x14]
cmp dword [ecx - 0xc], 6
jle 0x43240d
lea edx, [esp + 0x14]
push edx
lea ecx, [esp + 0x34]
call fcn.00408480
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x30]
push eax
call fcn.0042ad90
lea esi, [esi + edi + 1]
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x432416
sub eax, edx
mov edi, eax
test edi, edi
ja 0x4322f6
mov ebx, dword [esp + 0x1c]
push esi
call fcn.00433797
mov ebp, dword [ebx + 0x1040]
add esp, 4
test ebp, ebp
je 0x432561
mov bl, 7
jmp 0x432450
test ebp, ebp
mov eax, ebp
je 0x4325df
mov eax, dword [eax + 8]
test eax, eax
mov ebp, dword [ebp]
je 0x432559
lea esi, [eax + 4]
push str..hjm
lea ecx, [esp + 0x30]
push esi
push ecx
call fcn.00401d00
add esp, 0xc
mov eax, dword [eax]
lea edx, [esp + 0x20]
push edx
push eax
mov ecx, 0x4aaa3c
mov byte [esp + 0x64], 5
call fcn.0040dc30
mov edi, eax
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
mov byte [esp + 0x5c], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4324bc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test edi, edi
jne 0x432559
push str..hjm
lea ecx, [esp + 0x2c]
push esi
push ecx
call fcn.00401d00
push eax
mov byte [esp + 0x6c], 6
call fcn.0040a710
mov edi, eax
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
add esp, 0x10
mov byte [esp + 0x5c], 2
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x432509
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp edi, 0xffffffff
je 0x432559
push str..hjm
lea ecx, [esp + 0x28]
push esi
push ecx
call fcn.00401d00
add esp, 0xc
mov eax, dword [eax]
push eax
mov ecx, 0x4aaa3c
mov byte [esp + 0x60], bl
call fcn.0040bea0
mov dword [eax], edi
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
mov byte [esp + 0x5c], 2
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x432559
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test ebp, ebp
jne 0x432450
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov byte [esp + 0x5c], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x432586
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov byte [esp + 0x5c], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4325ab
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x30]
mov dword [esp + 0x5c], 0xffffffff
call fcn.00407960
mov eax, 1
mov ecx, dword [esp + 0x54]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret
push 0x80070057
call fcn.00401000
jmp fcn.00433e1f