Function at 0x43e3d6
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x26c
mov eax, dword [0x59ece0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
xor esi, esi
push eax
lea ecx, [ebp - 0x230]
mov dword [ebp - 0x26c], esi
call fcn.004059e0
lea eax, [ebp - 0x230]
push eax
call fcn.0043e093
pop ecx
test al, al
je 0x43e42e
mov bl, 1
push esi
push 1
lea ecx, [ebp - 0x230]
call fcn.00405df0
mov al, bl
jmp 0x43e6c3
xor eax, eax
push 7
pop edi
mov word [ebp - 0x24c], ax
lea eax, [ebp - 0x24c]
push eax
push ebx
mov dword [ebp - 0x238], edi
mov dword [ebp - 0x23c], esi
call fcn.0043e0f5
pop ecx
pop ecx
test al, al
jne 0x43e46b
push esi
push 1
lea ecx, [ebp - 0x24c]
call fcn.00405df0
xor bl, bl
jmp 0x43e419
cmp dword [ebp - 0x21c], 8
mov ecx, dword [ebp - 0x230]
jae 0x43e480
lea ecx, [ebp - 0x230]
mov eax, dword [ebp - 0x220]
cmp word [ecx + eax*2 - 2], 0x5c
jne 0x43e4dc
xor ecx, ecx
dec eax
push eax
push esi
lea eax, [ebp - 0x230]
mov word [ebp - 0x268], cx
push eax
lea ecx, [ebp - 0x268]
mov dword [ebp - 0x254], edi
mov dword [ebp - 0x258], esi
call fcn.00405b50
lea eax, [ebp - 0x268]
push eax
lea ecx, [ebp - 0x230]
call fcn.00405ad0
xor edi, edi
push esi
inc edi
push edi
lea ecx, [ebp - 0x268]
call fcn.00405df0
jmp 0x43e4df
xor edi, edi
inc edi
cmp dword [ebp - 0x21c], 8
mov ecx, dword [ebp - 0x230]
jae 0x43e4f4
lea ecx, [ebp - 0x230]
cmp dword [ebp - 0x238], 8
mov eax, dword [ebp - 0x24c]
jae 0x43e509
lea eax, [ebp - 0x24c]
push ecx
push eax
call fcn.0049e4e4
pop ecx
pop ecx
test eax, eax
jne 0x43e528
push esi
push edi
lea ecx, [ebp - 0x24c]
call fcn.00405df0
jmp 0x43e417
push edi
push esi
lea eax, [ebp - 0x26c]
push eax
lea ecx, [ebp - 0x230]
mov dword [ebp - 0x26c], 0x3a
call fcn.0040ddb0
mov ebx, eax
cmp ebx, esi
je 0x43e6a7
cmp ebx, 0xffffffff
je 0x43e6a7
cmp ebx, edi
jbe 0x43e581
cmp dword [ebp - 0x21c], 8
mov eax, dword [ebp - 0x230]
jae 0x43e572
lea eax, [ebp - 0x230]
cmp word [eax + ebx*2 - 4], 0x5c
je 0x43e581
push esi
push edi
jmp 0x43e45c
xor eax, eax
cmp dword [ebp - 0x21c], 8
mov word [ebp - 0xc], ax
lea edi, [ebp - 0xa]
stosd dword es:[edi], eax
stosw word es:[edi], ax
mov eax, dword [ebp - 0x230]
jae 0x43e5a2
lea eax, [ebp - 0x230]
lea edi, [ebx + ebx]
mov eax, dword [edi + eax - 2]
mov dword [ebp - 0xc], eax
mov esi, 0x104
push esi
lea eax, [ebp - 0x214]
push eax
lea eax, [ebp - 0xc]
push eax
call dword [sym.imp.KERNEL32.dll_QueryDosDeviceW]
cmp eax, 2
jb 0x43e68f
cmp eax, esi
je 0x43e68f
lea eax, [ebp - 0x214]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x43e5dd
sub eax, edx
sar eax, 1
mov esi, eax
mov eax, dword [ebp - 0x220]
sub eax, ebx
lea eax, [eax + esi - 1]
cmp eax, dword [ebp - 0x23c]
jne 0x43e68f
cmp dword [ebp - 0x238], 8
mov eax, dword [ebp - 0x24c]
jae 0x43e61b
lea eax, [ebp - 0x24c]
push esi
lea ecx, [ebp - 0x214]
push ecx
push eax
call fcn.004a21c2
add esp, 0xc
test eax, eax
jne 0x43e68f
cmp dword [ebp - 0x21c], 8
mov ecx, dword [ebp - 0x230]
jae 0x43e645
lea ecx, [ebp - 0x230]
cmp dword [ebp - 0x238], 8
mov eax, dword [ebp - 0x24c]
jae 0x43e65a
lea eax, [ebp - 0x24c]
lea ecx, [edi + ecx + 2]
push ecx
lea eax, [eax + esi*2]
push eax
call fcn.0049e4e4
pop ecx
pop ecx
test eax, eax
jne 0x43e68f
push eax
push 1
lea ecx, [ebp - 0x24c]
call fcn.00405df0
push 0
push 1
lea ecx, [ebp - 0x230]
call fcn.00405df0
mov al, 1
jmp 0x43e6c3
push 0
push 1
lea ecx, [ebp - 0x24c]
call fcn.00405df0
xor bl, bl
xor esi, esi
jmp 0x43e419
push esi
push edi
lea ecx, [ebp - 0x24c]
call fcn.00405df0
push esi
push edi
lea ecx, [ebp - 0x230]
call fcn.00405df0
xor al, al
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0049d4b1
leave
ret