Function at 0x1048136
Capabilities:
Get disk information

Disassembly:
push ebp
lea ebp, [esp - 0x5c8]
sub esp, 0x648
mov eax, dword [0x10570e4]
mov dword [ebp + 0x5c4], eax
mov eax, dword [ebp + 0x5d0]
mov dword [ebp - 0x64], eax
mov eax, dword [ebp + 0x5d8]
push ebx
mov ebx, dword [ebp + 0x5d4]
mov dword [ebp - 0x80], eax
mov eax, dword [ebp + 0x5dc]
push esi
xor esi, esi
mov dword [ebp - 0x7c], eax
mov eax, dword [ebp + 0x5e4]
push edi
mov edi, dword [ebp + 0x5e0]
mov dword [ebp - 0x60], eax
mov dword [edi], esi
mov eax, dword [ebx + 0xc]
test al, 0xc0
mov dword [ebp - 0x68], edi
mov dword [ebp - 0x74], esi
mov dword [ebp - 0x6c], esi
mov dword [ebp - 0x70], esi
jne 0x104819e
test ah, 1
je 0x10481be
push 1
push dword [ebx]
call dword [sym.imp.KERNEL32.dll_IsValidLocale]
test eax, eax
jne 0x10481be
push 0x61c9
push dword [ebp - 0x60]
call fcn.0103e4d6
jmp 0x104841e
push 0x468
call fcn.0103e5cc
mov esi, eax
test esi, esi
pop ecx
mov dword [ebp - 0x70], esi
je 0x1048411
mov dword [esi], 1
mov dword [esi + 4], 0x80004005
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push dword [ebp - 0x64]
mov dword [esi + 8], eax
call fcn.0103e91a
test eax, eax
pop ecx
jne 0x1048200
push 0x61b2
jmp 0x10481b1
lea eax, [ebp + 0x3b8]
push eax
push 0x104
push dword [ebp - 0x64]
call fcn.0103fd15
add esp, 0xc
test eax, eax
je 0x1048502
cmp eax, 0x104
ja 0x1048502
lea eax, [ebp + 0x3b8]
push 0x5c
push eax
call sub.msvcrt.dll_wcsrchr
test eax, eax
pop ecx
pop ecx
je 0x1048243
and word [eax + 2], 0
lea eax, [ebp + 0x3b8]
push eax
call fcn.0103ff8a
cmp eax, 4
pop ecx
jne 0x104826e
push dword [ebp - 0x64]
call fcn.010400c7
cmp eax, 0xffffffff
pop ecx
je 0x104826e
test al, 1
jne 0x104826e
mov dword [ebp - 0x74], 0xc
call fcn.01040129
cmp eax, 1
jne 0x104829a
mov eax, dword [ebx + 0xb4]
test eax, eax
je 0x104829a
push dword [ebp - 0x60]
push eax
call fcn.0103eeb4
mov edi, eax
test edi, edi
pop ecx
pop ecx
jl 0x1048526
mov edi, dword [ebp - 0x68]
push dword [ebp - 0x60]
lea eax, [esi + 0xc]
push edi
push eax
mov eax, dword [ebx + 0xc]
push dword [ebx + 0xb4]
or eax, dword [ebp - 0x74]
push eax
push dword [ebp - 0x64]
call fcn.0103f00e
mov edi, eax
add esp, 0x18
test edi, edi
jl 0x1048526
push dword [ebp - 0x60]
lea eax, [esi + 0x28]
push 0x104
push eax
push dword [ebp - 0x64]
call fcn.0103e8c6
mov edi, eax
add esp, 0x10
test edi, edi
jl 0x1048526
call fcn.01040129
cmp eax, 1
jne 0x10483c2
lea eax, [ebp + 0x3b8]
push eax
call fcn.0103edd8
test eax, eax
pop ecx
jne 0x104830e
push 0x61b1
jmp 0x10481b1
xor edi, edi
push edi
push edi
lea eax, [ebp - 0x78]
push eax
push edi
push edi
push edi
push edi
lea eax, [ebp + 0x3b8]
push eax
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationW]
test eax, eax
jne 0x1048338
push dword [ebp - 0x60]
call fcn.0103e957
jmp 0x104841f
test byte [ebp - 0x78], 8
je 0x104839b
or dword [esi + 0x440], 2
test byte [ebx + 0xd], 0x20
je 0x1048371
mov eax, dword [ebx + 0xb4]
cmp eax, edi
je 0x1048371
push dword [ebp - 0x60]
push eax
lea eax, [esi + 0x28]
push eax
call fcn.0103eda9
mov edi, eax
add esp, 0xc
test edi, edi
jl 0x1048526
xor edi, edi
cmp dword [ebx + 0xb4], edi
jne 0x104839b
push dword [ebp - 0x60]
lea eax, [esi + 0x43c]
push eax
lea eax, [esi + 0x28]
push eax
call fcn.0103ece7
mov edi, eax
add esp, 0xc
test edi, edi
jl 0x1048526
xor edi, edi
mov eax, dword [ebx + 0xb4]
cmp eax, edi
je 0x10483c4
push dword [ebp - 0x60]
lea ecx, [esi + 0x43c]
push ecx
push eax
call fcn.0103ee62
mov edi, eax
add esp, 0xc
test edi, edi
jl 0x1048526
xor edi, edi
push dword [ebp - 0x60]
lea eax, [ebp - 0x5c]
push eax
push 0x208
push edi
call fcn.0103e790
push eax
lea eax, [esi + 0x28]
push edi
push eax
call fcn.0103e6a7
mov edi, eax
add esp, 0x1c
test edi, edi
jl 0x1048526
xor edi, edi
push edi
call dword [sym.imp.KERNEL32.dll_SetLastError]
lea eax, [ebp - 0x5c]
push eax
push edi
push dword [esi + 0x43c]
call fcn.0103fb29
add esp, 0xc
cmp eax, edi
mov dword [esi + 0x10], eax
jne 0x1048427
push 0x8007000e
push dword [ebp - 0x60]
call fcn.0103e484
pop ecx
pop ecx
mov edi, eax
jmp 0x1048522
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov eax, dword [esi + 0x10]
push dword [ebp - 0x60]
mov dword [ebp - 0x6c], eax
lea eax, [ebp - 0x5c]
push eax
push 0x208
push edi
call fcn.0103e790
push eax
lea eax, [esi + 0x28]
push 0x1017388
push eax
call fcn.0103e6a7
mov edi, eax
add esp, 0x1c
test edi, edi
jl 0x1048513
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
lea eax, [ebp - 0x5c]
push eax
push 0
push dword [esi + 0x43c]
call fcn.0103fb29
add esp, 0xc
test eax, eax
mov dword [esi + 0x14], eax
jne 0x1048496
push 0x8007000e
push dword [ebp - 0x60]
call fcn.0103e484
jmp 0x104850f
call dword [sym.imp.KERNEL32.dll_GetLastError]
push dword [ebp - 0x60]
xor ecx, ecx
cmp eax, 0xb7
setne cl
mov eax, ecx
mov ecx, dword [ebp - 0x68]
push dword [ecx]
push eax
push dword [ebp - 0x80]
push ebx
push esi
call fcn.01047ae9
mov edi, eax
add esp, 0x18
test edi, edi
jl 0x1048513
mov eax, dword [esi + 0x448]
add eax, 0xc
push 0x1016990
push eax
call fcn.0103e13c
test eax, eax
pop ecx
pop ecx
jne 0x10484e5
push 0x61b3
jmp 0x1048507
mov eax, dword [esi + 0x448]
mov dword [esi + 0x24], eax
mov eax, dword [ebp - 0x7c]
and dword [esi + 4], 0
test eax, eax
je 0x1048513
mov dword [eax], esi
xor esi, esi
mov dword [ebp - 0x70], esi
jmp 0x1048513
push 0x61b2
push dword [ebp - 0x60]
call fcn.0103e4d6
pop ecx
pop ecx
mov edi, eax
cmp dword [ebp - 0x6c], 0
je 0x1048522
push dword [ebp - 0x6c]
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
test edi, edi
jge 0x104854d
test esi, esi
je 0x104853c
mov eax, dword [esi + 0xc]
test eax, eax
je 0x104853c
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
and dword [esi + 0xc], 0
mov eax, dword [ebp - 0x68]
cmp dword [eax], 1
jne 0x104854d
push dword [ebp - 0x64]
call fcn.0103ff2d
pop ecx
lea eax, [ebp - 0x70]
push eax
call fcn.01048018
pop ecx
mov ecx, dword [ebp + 0x5c4]
mov eax, edi
pop edi
pop esi
pop ebx
call fcn.0101897b
add ebp, 0x5c8
leave
ret