Function at 0x42eb6f
Capabilities:
Get storage device properties
Get system information on windows

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push 0xfffffffffffffffe
push 0x453c60
push 0x43e9e0
mov eax, dword fs:[0]
push eax
push ecx
push ecx
mov eax, 0x6d20
call fcn.0043dba0
mov eax, dword [0x4564f0]
xor dword [ebp - 8], eax
xor eax, ebp
mov dword [ebp - 0x1c], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0x10]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x4a4], esi
push 0x409c8c
lea ecx, [ebp - 0x4ac]
call fcn.0044efe3
mov byte [ebp - 0x495], 0
xor edi, edi
mov dword [ebp - 4], edi
mov eax, dword [esi + 0x34]
mov ecx, dword [esi + 0x18]
lea ebx, [esi + 0x84]
push edi
push edi
push 3
push edi
push eax
push 0xc0000000
push ecx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
push eax
mov ecx, ebx
call fcn.004147c2
mov ecx, ebx
call fcn.004147ab
test al, al
jne 0x42ec92
mov ecx, dword [0x458858]
cmp ecx, edi
je 0x42f3ad
push 9
push 1
call fcn.00414777
test al, al
je 0x42f3ad
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0x4a0]
push eax
call fcn.00414575
mov eax, dword [eax]
mov ecx, dword [esi + 0x18]
mov dword [ebp - 0x3d10], edi
mov edx, dword [0x458858]
mov dword [ebp - 0x3d0c], edx
push eax
push 0x409c70
push ecx
mov ebx, 0x409680
push ebx
push 9
lea ecx, [ebp - 0x4510]
call fcn.0044ef27
push eax
call fcn.0044ed72
add esp, 0xc
push eax
call fcn.0044ed72
add esp, 0xc
mov ecx, eax
call fcn.0044ef88
lea ecx, [ebp - 0x4a0]
call fcn.00413720
jmp 0x42f3b2
mov ebx, dword [0x458858]
cmp ebx, edi
je 0x42eced
push 9
push 3
mov ecx, ebx
call fcn.00414777
test al, al
je 0x42eced
mov eax, dword [esi + 0x18]
mov dword [ebp - 0x4d8], edi
mov dword [ebp - 0x4d4], ebx
push 0x409c3c
push eax
mov ebx, 0x409680
push ebx
push 9
lea ecx, [ebp - 0xcd8]
call fcn.0044ef27
push eax
call fcn.0044ed72
add esp, 0xc
push eax
call fcn.0044ed72
pop ecx
pop ecx
mov ecx, eax
call fcn.0044ef88
jmp 0x42ecf2
mov ebx, 0x409680
push 0x6c
push edi
lea eax, [ebp - 0x494]
push eax
call fcn.0043d340
add esp, 0xc
push 0x2c
pop eax
mov word [ebp - 0x494], ax
mov cl, byte [esi + 0xe2]
mov byte [ebp - 0x48f], cl
movzx ecx, byte [ebp - 0x478]
shr ecx, 5
mov cl, byte [ecx + 0x4563b8]
mov byte [ebp - 0x48e], cl
mov byte [ebp - 0x48d], 0x40
mov byte [ebp - 0x48c], 2
mov dword [ebp - 0x484], 5
mov dword [ebp - 0x47c], eax
lea eax, [ebp - 0x49c]
push eax
lea eax, [ebp - 0x494]
push eax
mov ecx, esi
call fcn.0042d866
cmp eax, edi
jne 0x42edd5
mov ecx, dword [0x458858]
cmp ecx, edi
je 0x42f3b2
push 9
push 1
call fcn.00414777
test al, al
je 0x42f3b2
mov eax, dword [esi + 0x18]
mov dword [ebp - 0x1cf0], edi
mov ecx, dword [0x458858]
mov dword [ebp - 0x1cec], ecx
movzx ecx, byte [ebp - 0x492]
push ecx
push 0x409bf0
push eax
push ebx
push 9
lea ecx, [ebp - 0x24f0]
call fcn.0044ef27
push eax
call fcn.0044ed72
add esp, 0xc
push eax
call fcn.0044ed72
add esp, 0xc
mov ecx, eax
call fcn.0044ef88
jmp 0x42f3b2
mov dword [ebp - 0x4a8], edi
mov ecx, dword [0x458858]
cmp ecx, edi
je 0x42ee33
push 9
push 3
call fcn.00414777
test al, al
je 0x42ee33
mov eax, dword [esi + 0x18]
mov dword [ebp - 0x5d30], edi
mov ecx, dword [0x458858]
mov dword [ebp - 0x5d2c], ecx
push 0x409bd8
push eax
push ebx
push 9
lea ecx, [ebp - 0x6530]
call fcn.0044ef27
push eax
call fcn.0044ed72
add esp, 0xc
push eax
call fcn.0044ed72
pop ecx
pop ecx
mov ecx, eax
call fcn.0044ef88
mov eax, dword [esi + 0x84]
lea ecx, [esi + 0x48]
push edi
lea edx, [ebp - 0x4a8]
push edx
push 8
push ecx
push edi
push edi
push 0x41018
push eax
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
jne 0x42eee0
mov ecx, dword [0x458858]
cmp ecx, edi
je 0x42eed7
push 9
push 1
call fcn.00414777
test al, al
je 0x42eed7
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0x4a0]
push eax
call fcn.00414575
mov eax, dword [eax]
mov ecx, dword [esi + 0x18]
mov dword [ebp - 0x2d00], edi
mov edx, dword [0x458858]
mov dword [ebp - 0x2cfc], edx
push eax
push 0x409bac
push ecx
push ebx
push 9
lea ecx, [ebp - 0x3500]
call fcn.0044ef27
push eax
call fcn.0044ed72
add esp, 0xc
push eax
call fcn.0044ed72
add esp, 0xc
mov ecx, eax
call fcn.0044ef88
lea ecx, [ebp - 0x4a0]
call fcn.00413720
xor eax, eax
lea edi, [esi + 0x48]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor edi, edi
lea eax, [ebp - 0x4d0]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov ecx, dword [0x458858]
cmp ecx, edi
je 0x42ef45
push 9
push 3
call fcn.00414777
test al, al
je 0x42ef45
mov eax, dword [esi + 0x18]
mov dword [ebp - 0x4d20], edi
mov ecx, dword [0x458858]
mov dword [ebp - 0x4d1c], ecx
push 0x409b8c
push eax
push ebx
push 9
lea ecx, [ebp - 0x5520]
call fcn.0044ef27
push eax
call fcn.0044ed72
add esp, 0xc
push eax
call fcn.0044ed72
pop ecx
pop ecx
mov ecx, eax
call fcn.0044ef88
mov dword [ebp - 0x428], edi
mov dword [ebp - 0x424], edi
mov eax, dword [esi + 0x84]
push edi
lea ecx, [ebp - 0x4a8]
push ecx
push 0x400
lea ecx, [ebp - 0x41c]
push ecx
push 0xc
lea ecx, [ebp - 0x428]
push ecx
push 0x2d1400
push eax
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
jne 0x42f039
mov ecx, dword [0x458858]
cmp ecx, edi
je 0x42f003
push 9
push 1
call fcn.00414777
test al, al
je 0x42f003
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0x4a0]
push eax
call fcn.00414575
mov ecx, dword [eax]
mov eax, dword [esi + 0x18]
mov dword [ebp - 0xce0], edi
mov edx, dword [0x458858]
mov dword [ebp - 0xcdc], edx
push ecx
push eax
push 0x409b5c
push eax
push ebx
push 9
lea ecx, [ebp - 0x14e0]
call fcn.0044ef27
push eax
call fcn.0044ed72
add esp, 0xc
push eax
call fcn.0044ed72
add esp, 0x10
mov ecx, eax
call fcn.0044ef88
lea ecx, [ebp - 0x4a0]
call fcn.00413720
push 0x4094b4
lea ecx, [ebp - 0x4a0]
call fcn.004136fa
lea eax, [ebp - 0x4a0]
push eax
lea ecx, [esi + 0x20]
call fcn.004137be
lea ecx, [ebp - 0x4a0]
call fcn.00413720
mov byte [esi + 0xcc], 0
jmp 0x42f171
mov eax, dword [ebp - 0x414]
and eax, 0x1f
mov byte [esi + 0xcc], al
movzx eax, al
push dword [eax*4 + 0x4563c0]
lea ecx, [ebp - 0x4a0]
call fcn.004136fa
lea eax, [ebp - 0x4a0]
push eax
lea ecx, [esi + 0x20]
call fcn.004137be
lea ecx, [ebp - 0x4a0]
call fcn.00413720
mov eax, dword [ebp - 0x410]
cmp eax, edi
je 0x42f098
cmp eax, 0x400
jae 0x42f098
lea eax, [ebp + eax - 0x41c]
push eax
lea ecx, [esi + 0x64]
call fcn.00413806
mov eax, dword [ebp - 0x40c]
cmp eax, edi
je 0x42f0b9
cmp eax, 0x400
jae 0x42f0b9
lea eax, [ebp + eax - 0x41c]
push eax
lea ecx, [esi + 0x6c]
call fcn.00413806
mov eax, dword [ebp - 0x408]
cmp eax, edi
je 0x42f0da
cmp eax, 0x400
jae 0x42f0da
lea eax, [ebp + eax - 0x41c]
push eax
lea ecx, [esi + 0x74]
call fcn.00413806
mov eax, dword [ebp - 0x404]
cmp eax, edi
je 0x42f0fb
cmp eax, 0x400
jae 0x42f0fb
lea eax, [ebp + eax - 0x41c]
push eax
lea ecx, [esi + 0x7c]
call fcn.00413806
mov edi, dword [0x458858]
test edi, edi
je 0x42f1c6
push 9
push 2
mov ecx, edi
call fcn.00414777
test al, al
je 0x42f177
mov eax, dword [esi + 0x7c]
mov ecx, dword [esi + 0x74]
mov edx, dword [esi + 0x18]
and dword [ebp - 0x14e8], 0
mov dword [ebp - 0x14e4], edi
push dword [ebp - 0x400]
push eax
push ecx
push dword [esi + 0x6c]
push dword [esi + 0x64]
movzx eax, byte [ebp - 0x414]
push eax
push 0x409af8
push edx
push ebx
push 9
lea ecx, [ebp - 0x1ce8]
call fcn.0044ef27
push eax
call fcn.0044ed72
add esp, 0xc
push eax
call fcn.0044ed72
add esp, 0x20
mov ecx, eax
call fcn.0044ef88
mov edi, dword [0x458858]
test edi, edi
je 0x42f1c6
push 9
push 3
mov ecx, edi
call fcn.00414777
test al, al
je 0x42f1c6
mov eax, dword [esi + 0x18]
and dword [ebp - 0x24f8], 0
mov dword [ebp - 0x24f4], edi
push 0x409ad4
push eax
push ebx
push 9
lea ecx, [ebp - 0x2cf8]
call fcn.0044ef27
push eax
call fcn.0044ed72
add esp, 0xc
push eax
call fcn.0044ed72
pop ecx
pop ecx
mov ecx, eax
call fcn.0044ef88
xor edi, edi
inc edi
mov dword [ebp - 0x428], edi
and dword [ebp - 0x424], 0
mov eax, dword [esi + 0x84]
push 0
lea ecx, [ebp - 0x4a8]
push ecx
push 0x400
lea ecx, [ebp - 0x41c]
push ecx
push 0xc
lea ecx, [ebp - 0x428]
push ecx
push 0x2d1400
push eax
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
jne 0x42f295
mov ecx, dword [0x458858]
test ecx, ecx
je 0x42f288
push 9
push edi
call fcn.00414777
test al, al
je 0x42f288
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0x4a0]
push eax
call fcn.00414575
mov eax, dword [eax]
mov ecx, dword [esi + 0x18]
and dword [ebp - 0x3508], 0
mov edx, dword [0x458858]
mov dword [ebp - 0x3504], edx
push eax
push 0x409aac
push ecx
push ebx
push 9
lea ecx, [ebp - 0x3d08]
call fcn.0044ef27
push eax
call fcn.0044ed72
add esp, 0xc
push eax
call fcn.0044ed72
add esp, 0xc
mov ecx, eax
call fcn.0044ef88
lea ecx, [ebp - 0x4a0]
call fcn.00413720
mov eax, dword [0x457920]
mov dword [esi + 0x3c], eax
jmp 0x42f39a
mov edi, dword [0x458858]
test edi, edi
je 0x42f30d
push 9
push 2
mov ecx, edi
call fcn.00414777
test al, al
je 0x42f30d
mov eax, dword [esi + 0x18]
and dword [ebp - 0x4518], 0
mov dword [ebp - 0x4514], edi
movzx ecx, byte [ebp - 0x406]
push ecx
movzx ecx, byte [ebp - 0x404]
push ecx
push dword [ebp - 0x40c]
push dword [ebp - 0x410]
push dword [ebp - 0x414]
push 0x409a40
push eax
push ebx
push 9
lea ecx, [ebp - 0x4d18]
call fcn.0044ef27
push eax
call fcn.0044ed72
add esp, 0xc
push eax
call fcn.0044ed72
add esp, 0x1c
mov ecx, eax
call fcn.0044ef88
mov eax, dword [0x457920]
cmp dword [ebp - 0x40c], eax
jbe 0x42f320
mov eax, dword [ebp - 0x40c]
mov dword [esi + 0x3c], eax
mov eax, dword [ebp - 0x414]
test eax, eax
jne 0x42f39f
mov ecx, dword [ebp - 0x410]
test ecx, ecx
je 0x42f34b
or eax, 0xffffffff
cmp ecx, eax
je 0x42f348
lea eax, [ecx - 1]
imul eax, dword [ebp - 0x4cc]
mov dword [esi + 0x40], eax
cmp dword [esi + 0x40], 0
jne 0x42f3a2
mov eax, dword [esi + 0x18]
and dword [ebp - 0x5528], 0
mov ecx, dword [0x458858]
mov dword [ebp - 0x5524], ecx
push dword [0x45791c]
push 0x4099e0
push eax
push ebx
push 9
lea ecx, [ebp - 0x5d28]
call fcn.0044ef27
push eax
call fcn.0044ed72
add esp, 0xc
push eax
call fcn.0044ed72
add esp, 0xc
mov ecx, eax
call fcn.0044ef88
mov eax, dword [0x45791c]
mov dword [esi + 0x40], eax
mov byte [ebp - 0x495], 1
xor edi, edi
jmp 0x42f3b2
mov ebx, 0x409680
mov dword [ebp - 4], 0xfffffffe
call fcn.0042f3f6
lea ecx, [ebp - 0x4ac]
call fcn.0044f049
mov al, byte [ebp - 0x495]
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x1c]
xor ecx, ebp
call fcn.0043db8b
leave
ret