Function at 0x42efa0
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5da4c3
mov eax, dword fs:[0]
push eax
sub esp, 0x658
mov eax, dword [0x6c0fe4]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x62c], esi
mov dword [ebp - 0x638], esi
mov dword [ebp - 4], 0
mov dword [ebp - 0x65c], esi
mov dword [ebp - 0x63c], 0
call fcn.0047d722
mov ecx, eax
test ecx, ecx
je 0x42f357
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], eax
mov eax, 0x620488
mov dword [ebp - 4], 1
mov ecx, esi
test eax, 0xffff0000
jne 0x42f02c
movzx eax, ax
push eax
call fcn.0040c0b0
jmp 0x42f038
push 0
push 0x620488
call fcn.0040c5e0
mov dword [ebp - 4], 0
mov esi, dword [sym.imp.KERNEL32.dll_GetLogicalDriveStringsW]
mov dword [ebp - 0x63c], 1
nop
lea eax, [ebp - 0x224]
push eax
push 0xc8
call esi
cmp word [ebp - 0x224], 0
je 0x42f050
cdq
and edx, 3
lea edi, [edx + eax]
sar edi, 2
sub edi, 1
js 0x42f2b7
or ebx, 0xffffffff
nop
movzx eax, word [ebp + edi*8 - 0x224]
mov word [ebp - 0x24], ax
movzx eax, word [ebp + edi*8 - 0x222]
mov word [ebp - 0x22], ax
movzx eax, word [ebp + edi*8 - 0x220]
mov word [ebp - 0x20], ax
movzx eax, word [ebp + edi*8 - 0x21e]
mov word [ebp - 0x1e], ax
xor eax, eax
mov word [ebp - 0x1c], ax
lea eax, [ebp - 0x24]
push eax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
cmp eax, 2
jne 0x42f2ae
push 0xc8
lea eax, [ebp - 0x624]
mov dword [ebp - 0x638], 0x1e
push eax
lea eax, [ebp - 0x660]
push eax
lea eax, [ebp - 0x638]
push eax
lea eax, [ebp - 0x664]
push eax
push 0xc8
lea eax, [ebp - 0x424]
push eax
lea eax, [ebp - 0x24]
push eax
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationW]
push str.WASON
lea eax, [ebp - 0x424]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x42f2ae
lea ecx, [ebp - 0x658]
call fcn.0048854e
mov dword [ebp - 4], 2
call fcn.0047d722
mov ecx, eax
test ecx, ecx
je 0x42f357
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x634], eax
lea eax, [ebp - 0x24]
mov byte [ebp - 4], 3
push eax
lea eax, [ebp - 0x634]
push str._s.csv
push eax
call fcn.0040c930
mov esi, dword [ebp - 0x634]
lea ecx, [ebp - 0x658]
add esp, 0xc
push 0
push esi
call fcn.00488726
test eax, eax
je 0x42f279
lea ecx, [ebp - 0x658]
call fcn.004888d3
lea eax, [ebp - 0x628]
push eax
lea ecx, [ebp - 0x658]
call fcn.004889ce
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x628]
cmp dword [eax - 0xc], 0
jl 0x42f25e
push 0x693108
push eax
call fcn.005b1dea
mov ecx, eax
add esp, 8
mov eax, dword [ebp - 0x628]
test ecx, ecx
je 0x42f1e0
sub ecx, eax
sar ecx, 1
jns 0x42f2db
cmp dword [eax - 0xc], 0
jl 0x42f25e
push 0x693110
push eax
call fcn.005b1dea
mov ecx, eax
add esp, 8
mov eax, dword [ebp - 0x628]
test ecx, ecx
je 0x42f20a
sub ecx, eax
sar ecx, 1
jns 0x42f2db
cmp dword [eax - 0xc], 0
jl 0x42f25e
push 0x693118
push eax
call fcn.005b1dea
mov ecx, eax
add esp, 8
mov eax, dword [ebp - 0x628]
test ecx, ecx
je 0x42f234
sub ecx, eax
sar ecx, 1
jns 0x42f2db
cmp dword [eax - 0xc], 0
jl 0x42f25e
push 0x693120
push eax
call fcn.005b1dea
mov ecx, eax
add esp, 8
mov eax, dword [ebp - 0x628]
test ecx, ecx
je 0x42f25e
sub ecx, eax
sar ecx, 1
jns 0x42f2db
lea edx, [eax - 0x10]
mov byte [ebp - 4], 3
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x42f279
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x658]
call fcn.004886cc
mov byte [ebp - 4], 2
add esi, 0xfffffff0
mov eax, ebx
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x42f29f
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x658]
mov byte [ebp - 4], 0
call fcn.0048864e
sub edi, 1
jns 0x42f080
mov edi, dword [ebp - 0x62c]
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.005b03a9
mov esp, ebp
pop ebp
ret
lea ecx, [ebp - 0x24]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x42f2e1
mov edi, dword [ebp - 0x62c]
lea eax, [ebp - 0x24]
sub ecx, edx
sar ecx, 1
push ecx
push eax
mov ecx, edi
call fcn.0040c5e0
lea ecx, [ebp - 0x658]
call fcn.004886cc
mov byte [ebp - 4], 3
mov eax, ebx
mov edx, dword [ebp - 0x628]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x42f32e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 2
add esi, 0xfffffff0
lock xadd dword [esi + 0xc], ebx
dec ebx
test ebx, ebx
jg 0x42f347
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x658]
call fcn.0048864e
jmp 0x42f2bd
push 0x80004005
call fcn.004025a0
int3