Function at 0x470c79
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x844
push ebx
xor ebx, ebx
xor eax, eax
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x14], ecx
mov word [ebp - 0x434], ax
mov byte [ebp - 2], bl
mov byte [ebp - 3], bl
mov byte [ebp - 1], bl
call fcn.00468c26
mov byte [ebp - 4], al
mov eax, dword [ebp + 0x14]
lea ecx, [ebp - 0x22c]
cmp eax, ebx
jne 0x470cb9
call fcn.0046bf39
jmp 0x470cbf
push ecx
call fcn.004c9d65
cmp word [ebp - 0x22c], bx
jne 0x470cd0
push 6
pop eax
jmp 0x470df7
push esi
lea eax, [ebp - 0x22c]
push eax
push 0x523dc8
call fcn.00466ca2
add esp, 8
mov esi, 0x104
push esi
lea eax, [ebp - 0x434]
push eax
push dword [0x56bf8c]
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [ebp - 0x22c]
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
cmp cx, bx
jne 0x470d07
sub eax, edx
sar eax, 1
push edi
mov edi, eax
push edi
lea eax, [ebp - 0x434]
push eax
lea eax, [ebp - 0x22c]
push eax
call sub.msvcrt.dll__wcsnicmp
add esp, 0xc
test eax, eax
jne 0x470d4f
lea eax, [ebp + edi*2 - 0x434]
push 0x521ccc
push eax
call sub.msvcrt.dll__wcsicmp
pop ecx
pop ecx
test eax, eax
jne 0x470d4f
mov byte [ebp - 2], 1
push dword [0x8903fc]
lea eax, [ebp - 0x434]
push eax
call sub.msvcrt.dll__wcsicmp
pop ecx
pop ecx
test eax, eax
jne 0x470d6b
mov byte [ebp - 3], 1
push 6
lea edx, [ebp - 0x24]
lea ecx, [ebp - 0x434]
mov dword [ebp - 0x10], ebx
call fcn.0047a694
push ebx
push ebx
push ebx
push ebx
lea eax, [ebp - 0x10]
push eax
push esi
lea eax, [ebp - 0x844]
push eax
lea eax, [ebp - 0x24]
push eax
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationW]
mov eax, dword [0x8901f4]
cmp dword [ebp - 0x10], eax
je 0x470daa
cmp eax, ebx
je 0x470daa
mov byte [ebp - 1], 1
call fcn.00469784
lea ecx, [ebp - 0xc]
mov byte [ebp + 0x17], al
call fcn.004a0e93
lea edx, [ebp - 8]
lea ecx, [ebp - 0xc]
mov dword [ebp - 8], ebx
call fcn.00467055
cmp byte [ebp - 2], bl
je 0x470dd6
cmp dword [ebp - 8], 0x7021
je 0x470dea
mov esi, dword [ebp + 0x10]
cmp esi, 0x10000
je 0x470e21
call fcn.00466ff6
test al, al
je 0x470dfc
lea ecx, [ebp - 0xc]
call fcn.0044f7da
push 3
pop eax
pop edi
pop esi
pop ebx
leave
ret 0x10
cmp dword [0x88f81c], 0x7021
jne 0x470e21
cmp byte [ebp + 0x17], bl
jne 0x470e21
cmp byte [ebp - 1], bl
jne 0x470e21
push 3
pop esi
lea ecx, [ebp - 0xc]
call fcn.0044f7da
mov eax, esi
jmp 0x470df5
mov eax, esi
mov edi, 0x80
and eax, edi
cmp al, 0x80
je 0x470f7f
call fcn.004b8f52
test al, al
jne 0x470f7f
movzx eax, byte [0x56bb50]
cmp eax, 6
jb 0x470f7f
mov eax, dword [0x88f6a4]
cmp eax, ebx
je 0x470e6b
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push dword [0x88f6a4]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0x104
lea eax, [ebp - 0x63c]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push dword [ebp - 0x18]
mov edx, dword [ebp - 0x14]
lea ecx, [ebp + 0xc]
call fcn.00468c54
push dword [0x88fb14]
lea eax, [ebp - 0x22c]
push eax
or esi, edi
push esi
push 0x523da8
call fcn.0049f991
add esp, 0x10
mov esi, eax
cmp eax, ebx
jne 0x470eb4
mov esi, 0x510d20
mov ecx, dword [ebp + 0xc]
cmp ecx, ebx
je 0x470ec7
xor eax, eax
cmp word [ecx], bx
sete al
cmp al, bl
je 0x470ece
mov eax, 0x517834
jmp 0x470ed6
lea ecx, [ebp + 0xc]
call fcn.004a0ff9
push esi
push eax
lea eax, [ebp + 0x14]
push 0x523d9c
push eax
call fcn.004a1618
add esp, 0x10
push ebx
lea ecx, [ebp + 0x14]
call fcn.004a0ff9
mov edx, eax
lea ecx, [ebp - 0x63c]
call fcn.0046be78
mov esi, eax
push ebx
cmp esi, 3
setle al
push ebx
xor edx, edx
push ebx
cmp al, bl
push ebx
setne dl
push esi
push 2
pop ecx
dec edx
call fcn.0046d0b6
cmp esi, 3
jg 0x470f6a
lea ecx, [ebp + 0x10]
call fcn.0049a4d6
mov ecx, eax
call fcn.004a0ff9
push 0x88d7d8
call fcn.004c9d65
lea ecx, [ebp + 0x10]
call fcn.004a0c7d
call fcn.0049bf29
mov eax, dword [0x88c8e0]
mov dword [0x8901fc], eax
mov eax, dword [0x88c8e4]
mov dword [0x88f81c], 0x7021
mov dword [0x890200], eax
call fcn.0049b96a
lea ecx, [ebp + 0x14]
call fcn.004a0c7d
lea ecx, [ebp + 0xc]
call fcn.004a0c7d
jmp 0x470e15
mov edi, 0x7021
cmp dword [ebp - 8], edi
je 0x470fb8
mov eax, dword [0x88c8e0]
push 0x100
push 0x134
push 0x8004
push dword [0x88f7f8]
mov dword [0x8901fc], eax
mov eax, dword [0x88c8e4]
mov dword [0x890200], eax
call dword [sym.imp.USER32.dll_PostMessageW]
mov dword [ebp + 0x10], ebx
test esi, 0x10000
je 0x47100b
call fcn.004afd98
test al, al
jne 0x471002
lea eax, [ebp + 0x10]
push eax
push 1
push dword [ebp + 0xc]
xor dl, dl
lea ecx, [ebp - 0x22c]
call fcn.00470661
test al, al
jne 0x471088
push ebx
push ebx
push ebx
push ebx
push 4
pop esi
push esi
push 2
or edx, 0xffffffff
pop ecx
call fcn.0046d0b6
jmp 0x470e15
mov dword [ebp + 0x10], 0x141
jmp 0x471088
call fcn.00466ff6
test al, al
jne 0x471072
call fcn.004c9f38
test al, al
jne 0x471069
cmp byte [ebp - 4], bl
jne 0x471069
cmp dword [0x88f81c], edi
jne 0x471034
cmp byte [ebp + 0x17], bl
jne 0x471034
cmp byte [ebp - 1], bl
je 0x471088
movzx eax, byte [ebp - 1]
push eax
movzx eax, byte [ebp - 2]
push eax
push 0x523cf8
call fcn.00466ca2
add esp, 0xc
cmp byte [ebp + 0x17], bl
jne 0x47105f
cmp byte [ebp - 2], bl
jne 0x47105a
cmp byte [ebp - 3], bl
je 0x47105f
cmp byte [ebp - 1], bl
je 0x471081
lea eax, [ebp + 0x10]
push eax
push ebx
jmp 0x470fd2
mov dword [ebp + 0x10], 0x10f
jmp 0x471088
cmp dword [ebp - 8], ebx
je 0x471088
cmp dword [ebp - 8], edi
je 0x471088
cmp byte [ebp - 2], bl
je 0x471088
mov dword [ebp + 0x10], 0x100
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x22c]
call fcn.00470b5f
mov esi, eax
push ebx
cmp esi, 3
setle al
push ebx
xor edx, edx
push ebx
cmp al, bl
push ebx
setne dl
push esi
push 2
pop ecx
dec edx
call fcn.0046d0b6
call fcn.00468cbf
mov eax, dword [0x88f6a4]
cmp eax, ebx
je 0x4710d4
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push dword [0x88f6a4]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp esi, 3
je 0x4710e1
cmp byte [0x88f7d0], bl
je 0x471104
push 0x104
lea eax, [ebp - 0x22c]
push eax
push dword [0x56bf8c]
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea ecx, [ebp - 0x22c]
call fcn.004b69ee
lea edx, [ebp - 0x22c]
mov ecx, 0x8903fc
call fcn.0049fe43
push 6
lea edx, [ebp - 0x24]
lea ecx, [ebp - 0x22c]
call fcn.0047a694
push ebx
push ebx
push ebx
push ebx
push 0x8901f4
push 0x104
lea eax, [ebp - 0x844]
push eax
lea eax, [ebp - 0x24]
push eax
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationW]
call fcn.0049b96a
jmp 0x470e15