Function at 0x43ad60
Capabilities:
Get disk information

Disassembly:
push 0xffffffffffffffff
push 0x4e3928
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 [0x5143ac]
mov edx, dword [eax + 0xc]
mov ecx, 0x5143ac
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.00426c10
lea ebx, [esp + 0x44]
call fcn.00426e60
mov edi, eax
call fcn.00426ee0
mov ecx, dword [esp + 0x44]
mov eax, dword [ecx - 0xc]
cmp eax, 2
lea ebx, [esi + 1]
jle 0x43b126
cmp eax, ebx
jge 0x43aded
push 0x80070057
call fcn.00401340
movzx edx, word [ecx + 2]
cmp dx, 0x3a
jne 0x43b126
cmp eax, 2
jge 0x43ae0a
push 0x80070057
call fcn.00401340
movzx eax, word [ecx + 4]
cmp ax, 0x5c
jne 0x43b126
push ecx
lea ecx, [esp + 0x20]
call fcn.0043c190
mov byte [esp + 0x3c], bl
mov eax, dword [esp + 0x1c]
cmp dword [eax - 0xc], esi
je 0x43aea9
mov edx, dword [0x5143ac]
mov eax, dword [edx + 0xc]
mov ecx, 0x5143ac
call eax
add eax, 0x10
mov dword [esp + 0x20], eax
mov byte [esp + 0x3c], 2
mov ecx, dword [esp + 0x1c]
push ecx
push 0x4f3c74
lea edi, [esp + 0x28]
call fcn.00406040
add esp, 8
add ebp, 0x68
push esi
mov eax, ebp
call fcn.0043cb50
push ebx
mov ecx, 0x12f
mov eax, ebp
call fcn.004281b0
mov edi, dword [esp + 0x20]
mov ecx, 0x12f
mov eax, ebp
call fcn.00439ac0
lea ecx, [esp + 0x20]
call fcn.00416ce0
lea ecx, [esp + 0x1c]
call fcn.00416ce0
lea ecx, [esp + 0x44]
call fcn.00416ce0
jmp 0x43b177
mov eax, dword [esp + 0x44]
cmp dword [eax - 0xc], 0x96
jle 0x43aee1
add ebp, 0x68
push esi
mov eax, ebp
call fcn.0043cb50
push ebx
mov ecx, 0x12f
mov eax, ebp
call fcn.004281b0
mov edi, 0x4f3ca0
mov ecx, 0x12f
mov eax, ebp
call fcn.00439ac0
jmp 0x43ae92
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x24], esp
mov edi, esp
call fcn.004012d0
add eax, 0x10
mov ecx, 0x515668
mov dword [edi], eax
call fcn.00413460
cmp eax, esi
jne 0x43af1c
lea edx, [esp + 0x20]
push edx
mov ecx, 0x4f3ccc
call fcn.004099e0
mov byte [esp + 0x3c], 3
jmp 0x43ae61
mov eax, 3
lea ecx, [esp + 0x20]
lea edx, [esp + 0x44]
call fcn.004098a0
lea edi, [esp + 0x44]
mov byte [esp + 0x3c], 4
call fcn.004013f0
lea ecx, [esp + 0x20]
call fcn.00416ce0
mov eax, edi
call fcn.00411cb0
push esi
push 0x100000
push edx
push eax
call fcn.004c6110
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
lea esi, [esp + 0x18]
mov dword [ebp + 0x464], eax
fmul qword [0x4f8c60]
fstp qword [esp + 0x24]
call fcn.00416d00
lea esi, [esp + 0x20]
call fcn.00416d00
mov byte [esp + 0x3c], 6
fld1
mov ecx, dword [ebp + 0x464]
cmp ecx, 0xf5
jge 0x43b01f
fcomp qword [esp + 0x24]
push 0x4f3d0c
mov edi, esi
fnstsw ax
test ah, 5
jp 0x43afd3
call fcn.00406040
fld qword [esp + 0x28]
push ecx
fstp qword [esp]
push 0xf5
push 0x4f3d28
lea edi, [esp + 0x28]
call fcn.00406040
add esp, 0x10
jmp 0x43aff8
call fcn.00406040
mov eax, dword [ebp + 0x464]
add esp, 4
push eax
push 0xf5
push 0x4f3d64
lea edi, [esp + 0x24]
call fcn.00406040
add esp, 0xc
lea esi, [ebp + 0x68]
push 0
mov eax, esi
call fcn.0043cb50
cmp dword [ebp + 0x410], 0
je 0x43b07e
cmp dword [ebp + 0x4a4], 0
jne 0x43b07e
mov edi, ebp
call fcn.0043be10
jmp 0x43b07e
fld qword [esp + 0x24]
lea edi, [esp + 0x18]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x43b04c
sub esp, 8
fstp qword [esp]
push 0xf5
push 0x4f3d28
call fcn.00406040
add esp, 0x10
jmp 0x43b061
push ecx
fstp st(0)
push 0xf5
push 0x4f3d64
call fcn.00406040
add esp, 0xc
lea esi, [ebp + 0x68]
mov edi, 0xce
mov eax, esi
call fcn.00428360
push eax
mov eax, esi
call fcn.0043cb50
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 0x43b0d1
cmp eax, 2
je 0x43b09d
cmp eax, 5
jne 0x43b0bd
mov edi, 0x4f3d98
mov ecx, 0x12f
mov eax, esi
call fcn.00439ac0
push ebx
mov ecx, 0x12f
mov eax, esi
call fcn.004281b0
jmp 0x43b0fe
test ebp, ebp
je 0x43b0d1
push 0
mov ecx, 0x12f
mov eax, esi
call fcn.004281b0
jmp 0x43b0ee
push ebx
mov ecx, 0x12f
mov eax, esi
call fcn.004281b0
mov edi, dword [esp + 0x20]
mov ecx, 0x12f
mov eax, esi
call fcn.00439ac0
mov edi, dword [esp + 0x18]
mov ecx, 0x12e
mov eax, esi
call fcn.00439ac0
lea ecx, [esp + 0x20]
call fcn.00416ce0
lea ecx, [esp + 0x18]
call fcn.00416ce0
lea ecx, [esp + 0x1c]
call fcn.00416ce0
lea ecx, [esp + 0x44]
call fcn.00416ce0
mov eax, ebx
jmp 0x43b179
add ebp, 0x68
push esi
mov eax, ebp
call fcn.0043cb50
push ebx
mov ecx, 0x12f
mov eax, ebp
call fcn.004281b0
mov edi, 0x4f3c48
mov ecx, 0x12f
mov eax, ebp
call fcn.00439ac0
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 0x43b177
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