Function at 0x100418cf
Capabilities:
Get disk information

Disassembly:
mov eax, 0x10063070
call fcn.10061518
sub esp, 0x130
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
test cl, cl
je 0x10041f77
cmp byte [ebp + 0xc], 0
je 0x10041f72
mov edi, dword [ebp + 8]
mov esi, dword [ebp + 0x1c]
mov dword [ebp - 0x9c], edi
mov dword [ebp - 0xa4], esi
mov eax, dword [edi]
cmp eax, dword [edi + 4]
je 0x10041f6a
lea eax, [ebp - 0xa0]
xor ebx, ebx
push eax
push 0x1000
lea ecx, [ebp - 0x54]
mov dword [ebp - 0xa0], ebx
mov dword [ebp - 0x54], ebx
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x4c], ebx
call fcn.10039cb4
mov dword [ebp - 4], ebx
mov esi, 0x8bad
mov eax, dword [ebp - 0x50]
sub eax, dword [ebp - 0x54]
push dword [ebp - 0x54]
sar eax, 1
push eax
push esi
push 0x11748
call fcn.10022317
pop ecx
pop ecx
call eax
push dword [ebp - 0x54]
lea ecx, [ebp - 0x7c]
call fcn.1000bcde
push 0x11ea1
mov byte [ebp - 4], 1
call fcn.1003966e
cmp dword [ebp - 0x68], 8
pop ecx
movzx edx, ax
lea ecx, [ebp - 0x7c]
cmovae ecx, dword [ebp - 0x7c]
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0x5c], edx
cmp word [ecx + eax*2 - 2], dx
je 0x100419d4
push 0x173c
push 0x25cc
push 1
push 0x78ee
push 0x60a1
push 0x2ac9
push 1
push 0x791
push 0x39cd
push 1
lea eax, [ebp - 0x5c]
mov edx, 0xc8c
push eax
lea eax, [ebp - 0x7c]
mov ecx, 0x57d7
push eax
call fcn.10041082
add esp, 0x30
push ecx
mov edx, 0x2de6
lea ecx, [ebp - 0x138]
call fcn.10029dbf
push ecx
push eax
lea ecx, [ebp - 0x7c]
mov byte [ebp - 4], 2
call fcn.100260ee
push ebx
push 1
lea ecx, [ebp - 0x138]
mov byte [ebp - 4], 1
call fcn.1000c4ec
cmp dword [ebp - 0x68], 8
lea eax, [ebp - 0x7c]
push ebx
cmovae eax, dword [ebp - 0x7c]
push eax
push esi
push 0x9306
call fcn.10022317
pop ecx
pop ecx
call eax
push ecx
push 0x7118
lea eax, [ebp - 0x5c]
mov ecx, 0x307d
push eax
push 1
lea edx, [ebp - 0x7c]
call fcn.100412c1
push 1
push 1
push 0x55f6
lea edx, [ebp - 0x58]
mov dword [ebp - 0x58], ebx
mov ecx, edi
call fcn.100415d9
mov cl, bl
add esp, 0x1c
mov byte [ebp - 0x15], cl
mov eax, ebx
mov dword [ebp - 0x60], eax
cmp eax, 0x12c
jae 0x10041f5f
test cl, cl
jne 0x10041f5f
lea eax, [ebp - 0x7c]
push eax
lea ecx, [ebp - 0xbc]
call fcn.1000bca3
push 0x10
pop edx
lea ecx, [ebp - 0x120]
mov byte [ebp - 4], 3
call fcn.1003c2c5
push ecx
push ecx
lea eax, [ebp - 0x120]
mov byte [ebp - 4], 4
push eax
lea ecx, [ebp - 0xbc]
call fcn.100260ee
mov dword [ebp - 0x64], 0x7f21
cmp dword [ebp - 0x64], 0x82be
jle 0x10041af9
mov edi, ebx
mov esi, ebx
mov dword [ebp - 0x98], ebx
mov dword [ebp - 0x1c], 0x1ce8
mov ecx, ebx
mov eax, edi
shl eax, cl
mov ecx, 0x1007d858
cdq
push edx
push eax
call fcn.1000bb8e
add ebx, esi
dec dword [ebp - 0x1c]
jne 0x10041aca
inc esi
push 0
pop ebx
cmp esi, 0x9c8
jl 0x10041abd
inc edi
cmp edi, 0xb07
jl 0x10041abb
mov byte [ebp - 4], 5
cmp dword [ebp - 0x64], 0x7cce
mov word [ebp - 0x38], 0x803
mov byte [ebp - 0x36], bl
mov dword [ebp - 0x35], 0x156024b
mov dword [ebp - 0x31], 0x7929041d
mov word [ebp - 0x2d], 0xcb0e
jge 0x10041b62
mov edx, str.gtqdap_wfntgfw_smzfyk
mov ecx, 0x1007d858
call fcn.1000dfd7
jmp 0x10041b62
push 0x65
pop eax
mov dword [ebp - 4], 4
mov ecx, ebx
push 2
mov word [ebp - 0x82], ax
pop esi
mov dword [ebp - 0x1c], ecx
cmp esi, 8
jne 0x10041b8f
movzx eax, byte [ebp - 0x30]
lea ecx, [eax + 1]
mov dword [ebp - 0x1c], ecx
lea esi, [eax + 7]
jmp 0x10041beb
movzx edx, byte [ebp + esi - 0x37]
mov eax, esi
sub eax, ecx
push 0x773e
push 0x7b43
push 0x150
movzx eax, byte [ebp + eax - 0x3a]
push 0x6de2
push 0x23d2
push 1
movzx eax, word [ebp + eax*2 - 0x88]
mov ecx, eax
and eax, edx
or ecx, edx
lea edx, [ebp - 0x1c]
sub ecx, eax
movzx eax, byte [ebp + esi - 0x38]
push ebx
push 0x3d25
mov word [ebp + eax*2 - 0x88], cx
mov cl, 1
call fcn.100418cf
mov ecx, dword [ebp - 0x1c]
add esp, 0x20
add esi, 2
cmp esi, 0xd
jb 0x10041b7b
xor eax, eax
mov dword [ebp - 0xf4], 7
mov word [ebp - 0x80], ax
lea ecx, [ebp - 0x108]
mov word [ebp - 0x108], ax
lea eax, [ebp - 0x88]
push eax
mov dword [ebp - 0xf8], ebx
call fcn.1000c3ca
push ecx
push ecx
lea eax, [ebp - 0x108]
mov byte [ebp - 4], 7
push eax
lea ecx, [ebp - 0xbc]
call fcn.100260ee
push ebx
push 1
lea ecx, [ebp - 0x108]
mov byte [ebp - 4], 4
call fcn.1000c4ec
xor eax, eax
lea edi, [ebp - 0x88]
cmp dword [ebp - 0xa8], 8
stosd dword es:[edi], eax
push ebx
push 0x80
push 2
stosd dword es:[edi], eax
push ebx
push ebx
push 0x40000000
stosw word es:[edi], ax
lea eax, [ebp - 0xbc]
cmovae eax, dword [ebp - 0xbc]
mov edi, 0x8bad
push eax
push edi
push 0xe3d9
call fcn.10022317
pop ecx
pop ecx
call eax
mov esi, eax
cmp esi, 0xffffffff
je 0x10041f33
push ebx
lea eax, [ebp - 0xd8]
push eax
push dword [ebp - 0x58]
mov eax, dword [ebp + 8]
push dword [eax]
push esi
push edi
push 0x13c05
call fcn.10022317
pop ecx
pop ecx
call eax
push esi
test eax, eax
push edi
push 0x12d53
setne bl
call fcn.10022317
pop ecx
pop ecx
call eax
test bl, bl
je 0x10041f31
push 0x22
pop eax
xor ebx, ebx
mov dword [ebp - 0x24], 0xc302f300
push 2
mov ecx, ebx
mov byte [ebp - 0x20], 0x39
mov word [ebp - 0x28], ax
pop esi
mov dword [ebp - 0x48], ecx
cmp esi, 2
jne 0x10041d03
push 3
pop ecx
push ecx
mov dword [ebp - 0x48], ecx
pop esi
jmp 0x10041d7b
movzx edx, byte [ebp + esi - 0x23]
mov eax, esi
sub eax, ecx
push 0x4076
push 1
push 0x298a
movzx eax, byte [ebp + eax - 0x26]
push 1
push 0x6358
push 0x2ef2
movzx ecx, word [ebp + eax*2 - 0x28]
mov eax, ecx
and eax, edx
add eax, eax
sub ecx, eax
movzx eax, byte [ebp + esi - 0x24]
add ecx, edx
mov edx, 0x617d
push 0x3380
mov word [ebp + eax*2 - 0x28], cx
lea eax, [ebp - 0x48]
push eax
push 0x1086
push 0x2e94
push 0x7042
push 0x1588
push 0x7e4a
push 1
mov ecx, 0x192
call fcn.100416db
mov ecx, dword [ebp - 0x48]
add esp, 0x38
add esi, 2
cmp esi, 5
jb 0x10041cf4
xor eax, eax
mov dword [ebp - 0xc0], 7
mov word [ebp - 0x26], ax
lea ecx, [ebp - 0xd4]
mov word [ebp - 0xd4], ax
lea eax, [ebp - 0x28]
push eax
mov dword [ebp - 0xc4], ebx
call fcn.1000c3ca
push 0xe7a
push 1
lea eax, [ebp - 0xbc]
mov byte [ebp - 4], 8
push eax
sub esp, 0x10
mov dword [ebp - 0x28], ebx
lea eax, [ebp - 0xd4]
mov ecx, 0x5e80
push eax
call fcn.10041628
add esp, 0x20
mov dword [ebp - 0x44], 0x7100a603
mov dword [ebp - 0x40], 0xf020201
mov ecx, ebx
mov word [ebp - 0x3c], 0xd301
push 0x53
pop eax
push 2
mov word [ebp - 0x8e], ax
pop esi
cmp esi, 8
jne 0x10041e0c
push 2
pop ecx
jmp 0x10041e3b
movzx edx, byte [ebp + esi - 0x43]
mov eax, esi
sub eax, ecx
movzx eax, byte [ebp + eax - 0x46]
movzx ecx, word [ebp + eax*2 - 0x94]
mov eax, ecx
and eax, edx
add eax, eax
sub ecx, eax
movzx eax, byte [ebp + esi - 0x44]
add ecx, edx
mov word [ebp + eax*2 - 0x94], cx
mov ecx, ebx
add esi, 2
cmp esi, 0xa
jb 0x10041e02
xor eax, eax
mov dword [ebp - 0xdc], 7
mov word [ebp - 0x8c], ax
lea ecx, [ebp - 0xf0]
mov word [ebp - 0xf0], ax
lea eax, [ebp - 0x94]
push eax
mov dword [ebp - 0xe0], ebx
call fcn.1000c3ca
push ecx
push ecx
lea eax, [ebp - 0xf0]
mov byte [ebp - 4], 9
push eax
lea ecx, [ebp - 0xd4]
call fcn.100260ee
push ebx
push 1
lea ecx, [ebp - 0xf0]
mov byte [ebp - 4], 8
call fcn.1000c4ec
push ebx
xor eax, eax
lea edi, [ebp - 0x94]
stosd dword es:[edi], eax
mov edx, 0x44c5
push 0x6260
push 0x7aba
push 1
stosd dword es:[edi], eax
mov cl, 1
push 0xde1
push 0x4cbd
stosw word es:[edi], ax
lea eax, [ebp - 0x15]
push eax
push 0x2338
push 0x26e3
call fcn.10042318
add esp, 0x24
lea edx, [ebp - 0x7c]
lea ecx, [ebp - 0xd4]
call fcn.10040734
mov ecx, dword [ebp + 0x1c]
push ebx
push 1
mov dword [ecx], eax
lea ecx, [ebp - 0xd4]
call fcn.1000c4ec
push ebx
push 1
lea ecx, [ebp - 0x120]
call fcn.1000c4ec
push ebx
push 1
lea ecx, [ebp - 0xbc]
call fcn.1000c4ec
push ebx
push 1
lea ecx, [ebp - 0x7c]
call fcn.1000c4ec
lea ecx, [ebp - 0x54]
call fcn.1002943c
jmp 0x10041fb0
xor ebx, ebx
push ebx
push 1
lea ecx, [ebp - 0x120]
call fcn.1000c4ec
push ebx
push 1
lea ecx, [ebp - 0xbc]
mov byte [ebp - 4], 1
call fcn.1000c4ec
mov eax, dword [ebp - 0x60]
mov cl, byte [ebp - 0x15]
inc eax
jmp 0x10041a5a
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 2
jmp 0x10041f1c
mov dword [esi], 1
jmp 0x10041fb0
and dword [edx], 0
jmp 0x10041fb0
cmp byte [ebp + 0x10], 0
je 0x10041f9f
mov eax, dword [ebp + 0x18]
mov esi, dword [eax]
mov eax, dword [ebp + 0x20]
mov edx, dword [eax]
mov eax, dword [ebp + 0x24]
mov ecx, dword [eax]
mov eax, dword [edx + esi*4]
cmp eax, dword [ecx + esi*4]
jle 0x10041fb0
mov eax, dword [ebp + 0x14]
mov dword [eax], 1
jmp 0x10041fb0
xor ebx, ebx
mov byte [ebp - 0x16], bl
cmp byte [ebp - 0x16], bl
je 0x10041fb0
push ebx
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret