Function at 0x43b170
Capabilities:
Get disk information

Disassembly:
push 0xffffffffffffffff
push 0x4e3768
mov eax, dword fs:[0]
push eax
sub esp, 0x20
push ebx
push ebp
push esi
push edi
mov eax, dword [0x50f130]
xor eax, esp
push eax
lea eax, [esp + 0x34]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x44]
xor esi, esi
mov dword [ebp + 0x418], esi
mov eax, dword [0x5143cc]
mov edx, dword [eax + 0xc]
mov ecx, 0x5143cc
call edx
add eax, 0x10
mov dword [esp + 0x44], eax
lea edx, [ebp + 0x41c]
lea ecx, [esp + 0x44]
mov dword [esp + 0x3c], esi
call fcn.00426ac0
lea ebx, [esp + 0x44]
call fcn.00426d10
mov edi, eax
call fcn.00426d90
mov ecx, dword [esp + 0x44]
mov eax, dword [ecx - 0xc]
cmp eax, 2
lea ebx, [esi + 1]
jle 0x43b536
cmp eax, ebx
jge 0x43b1fd
push 0x80070057
call fcn.00401350
movzx edx, word [ecx + 2]
cmp dx, 0x3a
jne 0x43b536
cmp eax, 2
jge 0x43b21a
push 0x80070057
call fcn.00401350
movzx eax, word [ecx + 4]
cmp ax, 0x5c
jne 0x43b536
push ecx
lea ecx, [esp + 0x20]
call fcn.0043c5a0
mov byte [esp + 0x3c], bl
mov eax, dword [esp + 0x1c]
cmp dword [eax - 0xc], esi
je 0x43b2b9
mov edx, dword [0x5143cc]
mov eax, dword [edx + 0xc]
mov ecx, 0x5143cc
call eax
add eax, 0x10
mov dword [esp + 0x20], eax
mov byte [esp + 0x3c], 2
mov ecx, dword [esp + 0x1c]
push ecx
push 0x4f3c64
lea edi, [esp + 0x28]
call fcn.00406130
add esp, 8
add ebp, 0x68
push esi
mov eax, ebp
call fcn.0043d010
push ebx
mov ecx, 0x12f
mov eax, ebp
call fcn.004281f0
mov edi, dword [esp + 0x20]
mov ecx, 0x12f
mov eax, ebp
call fcn.00439ed0
lea ecx, [esp + 0x20]
call fcn.004016d0
lea ecx, [esp + 0x1c]
call fcn.004016d0
lea ecx, [esp + 0x44]
call fcn.004016d0
jmp 0x43b587
mov eax, dword [esp + 0x44]
cmp dword [eax - 0xc], 0x96
jle 0x43b2f1
add ebp, 0x68
push esi
mov eax, ebp
call fcn.0043d010
push ebx
mov ecx, 0x12f
mov eax, ebp
call fcn.004281f0
mov edi, 0x4f3c90
mov ecx, 0x12f
mov eax, ebp
call fcn.00439ed0
jmp 0x43b2a2
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x24], esp
mov edi, esp
call fcn.004012e0
add eax, 0x10
mov ecx, 0x515688
mov dword [edi], eax
call fcn.004136b0
cmp eax, esi
jne 0x43b32c
lea edx, [esp + 0x20]
push edx
mov ecx, 0x4f3cbc
call fcn.00409c00
mov byte [esp + 0x3c], 3
jmp 0x43b271
mov eax, 3
lea ecx, [esp + 0x20]
lea edx, [esp + 0x44]
call fcn.00409ac0
lea edi, [esp + 0x44]
mov byte [esp + 0x3c], 4
call fcn.00401410
lea ecx, [esp + 0x20]
call fcn.004016d0
mov eax, edi
call fcn.00411f00
push esi
push 0x100000
push edx
push eax
call fcn.004c6030
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
lea esi, [esp + 0x18]
mov dword [ebp + 0x464], eax
fmul qword [0x4f8c50]
fstp qword [esp + 0x24]
call fcn.004016f0
lea esi, [esp + 0x20]
call fcn.004016f0
mov byte [esp + 0x3c], 6
fld1
mov ecx, dword [ebp + 0x464]
cmp ecx, 0xf5
jge 0x43b42f
fcomp qword [esp + 0x24]
push 0x4f3cfc
mov edi, esi
fnstsw ax
test ah, 5
jp 0x43b3e3
call fcn.00406130
fld qword [esp + 0x28]
push ecx
fstp qword [esp]
push 0xf5
push 0x4f3d18
lea edi, [esp + 0x28]
call fcn.00406130
add esp, 0x10
jmp 0x43b408
call fcn.00406130
mov eax, dword [ebp + 0x464]
add esp, 4
push eax
push 0xf5
push 0x4f3d54
lea edi, [esp + 0x24]
call fcn.00406130
add esp, 0xc
lea esi, [ebp + 0x68]
push 0
mov eax, esi
call fcn.0043d010
cmp dword [ebp + 0x410], 0
je 0x43b48e
cmp dword [ebp + 0x4a4], 0
jne 0x43b48e
mov edi, ebp
call fcn.0043c220
jmp 0x43b48e
fld qword [esp + 0x24]
lea edi, [esp + 0x18]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x43b45c
sub esp, 8
fstp qword [esp]
push 0xf5
push 0x4f3d18
call fcn.00406130
add esp, 0x10
jmp 0x43b471
push ecx
fstp st(0)
push 0xf5
push 0x4f3d54
call fcn.00406130
add esp, 0xc
lea esi, [ebp + 0x68]
mov edi, 0xce
mov eax, esi
call fcn.004283a0
push eax
mov eax, esi
call fcn.0043d010
mov dword [ebp + 0x418], ebx
mov ecx, dword [esp + 0x44]
push ecx
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
mov ebp, dword [ebp + 0x418]
test ebp, ebp
je 0x43b4e1
cmp eax, 2
je 0x43b4ad
cmp eax, 5
jne 0x43b4cd
mov edi, 0x4f3d88
mov ecx, 0x12f
mov eax, esi
call fcn.00439ed0
push ebx
mov ecx, 0x12f
mov eax, esi
call fcn.004281f0
jmp 0x43b50e
test ebp, ebp
je 0x43b4e1
push 0
mov ecx, 0x12f
mov eax, esi
call fcn.004281f0
jmp 0x43b4fe
push ebx
mov ecx, 0x12f
mov eax, esi
call fcn.004281f0
mov edi, dword [esp + 0x20]
mov ecx, 0x12f
mov eax, esi
call fcn.00439ed0
mov edi, dword [esp + 0x18]
mov ecx, 0x12e
mov eax, esi
call fcn.00439ed0
lea ecx, [esp + 0x20]
call fcn.004016d0
lea ecx, [esp + 0x18]
call fcn.004016d0
lea ecx, [esp + 0x1c]
call fcn.004016d0
lea ecx, [esp + 0x44]
call fcn.004016d0
mov eax, ebx
jmp 0x43b589
add ebp, 0x68
push esi
mov eax, ebp
call fcn.0043d010
push ebx
mov ecx, 0x12f
mov eax, ebp
call fcn.004281f0
mov edi, 0x4f3c38
mov ecx, 0x12f
mov eax, ebp
call fcn.00439ed0
mov dword [esp + 0x3c], 0xffffffff
mov eax, dword [esp + 0x44]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x43b587
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
mov ecx, dword [esp + 0x34]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2c
ret 4