Function at 0x43f940
Capabilities:
Get disk information
Get disk size

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x10864
call fcn.004d0b30
push ebx
push esi
push edi
mov esi, edx
mov edi, ecx
call fcn.004315d0
mov ebx, eax
cmp ebx, 9
jne 0x43f979
mov eax, dword [ebp + 8]
push eax
xor bl, bl
mov ecx, edi
call fcn.0043f410
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp ebx, 4
jne 0x43fa2a
push 0x7ffe
lea ecx, [esp + 0x874]
push edi
push ecx
call fcn.004c67b5
add esp, 0xc
xor edx, edx
lea eax, [esp + 0x870]
mov word [esp + 0x1086c], dx
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x43f9b0
sub eax, edx
sar eax, 1
je 0x43f9db
cmp word [esp + eax*2 + 0x86e], 0x5c
lea eax, [esp + eax*2 + 0x870]
je 0x43f9db
mov ecx, 0x5c
mov word [eax], cx
lea ecx, [esi + 0x12]
mov edi, edi
movzx eax, word [ecx]
cmp eax, 0x20
je 0x43f9ed
cmp eax, 9
jne 0x43f9f2
add ecx, 2
jmp 0x43f9e0
push ecx
lea edx, [esp + 0x874]
push edx
call dword [sym.imp.KERNEL32.dll_SetVolumeLabelW]
test eax, eax
mov eax, 0x4e1a5c
jne 0x43fa0f
mov eax, 0x4e6784
push 1
push 0
push 0xffffffffffffffff
push eax
mov eax, dword [0x5166e0]
push eax
call fcn.004aa2a0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [0x515e10]
mov dword [esp + 0x10], ecx
call fcn.0041bc60
cmp ebx, 8
ja case.0x43fa42.4
jmp dword [ebx*4 + 0x43ff30]
cmp word [edi], 0
jne 0x43fa59
mov edi, 0x100
jmp 0x43fb20
push 0x4ef868
call fcn.0049fc00
add esp, 4
push eax
push edi
call fcn.004c4e9d
add esp, 8
test eax, eax
jne 0x43fa7c
lea edi, [eax + 5]
jmp 0x43fb20
push str.R7__30_7
call fcn.0049fc00
add esp, 4
push eax
push edi
call fcn.004c4e9d
add esp, 8
test eax, eax
jne 0x43fa9f
lea edi, [eax + 2]
jmp 0x43fb20
push 0x4ef8a8
call fcn.0049fc00
add esp, 4
push eax
push edi
call fcn.004c4e9d
add esp, 8
test eax, eax
jne 0x43fabf
lea edi, [eax + 3]
jmp 0x43fb20
push 0x4ef8c4
call fcn.0049fc00
add esp, 4
push eax
push edi
call fcn.004c4e9d
add esp, 8
test eax, eax
jne 0x43fadf
lea edi, [eax + 4]
jmp 0x43fb20
push str.R3_6__9
call fcn.0049fc00
add esp, 4
push eax
push edi
call fcn.004c4e9d
add esp, 8
test eax, eax
jne 0x43faff
lea edi, [eax + 6]
jmp 0x43fb20
push str._a_9___
call fcn.0049fc00
add esp, 4
push eax
push edi
call fcn.004c4e9d
add esp, 8
test eax, eax
jne case.0x43fa42.0
xor edi, edi
mov dword [esp + 0x14], 0
mov bl, 0x41
lea ebx, [ebx]
movzx esi, bl
lea ecx, [esp + 0x70]
xor eax, eax
push ecx
mov word [esp + 0x74], si
mov dword [esp + 0x76], 0x5c003a
mov word [esp + 0x7a], ax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
cmp eax, edi
je 0x43fb63
cmp edi, 0x100
jne 0x43fb71
cmp eax, 1
je 0x43fb71
mov eax, dword [esp + 0x14]
mov word [esp + eax*2 + 0x30], si
inc eax
mov dword [esp + 0x14], eax
inc bl
cmp bl, 0x5a
jbe 0x43fb30
mov eax, dword [esp + 0x14]
push 1
xor edx, edx
push edx
push 0xffffffffffffffff
lea ecx, [esp + 0x3c]
mov word [esp + eax*2 + 0x3c], dx
mov edx, dword [esp + 0x1c]
push ecx
push edx
call fcn.004aa2a0
cmp word [esp + 0x30], 0
je case.0x43fa42.0
jmp case.0x43fa42.4
push 0x7ffe
lea eax, [esp + 0x874]
push edi
push eax
call fcn.004c67b5
add esp, 0xc
xor ecx, ecx
lea eax, [esp + 0x870]
mov word [esp + 0x1086c], cx
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x43fbd2
sub eax, edx
sar eax, 1
je 0x43fbfd
cmp word [esp + eax*2 + 0x86e], 0x5c
lea eax, [esp + eax*2 + 0x870]
je 0x43fbfd
mov edx, 0x5c
mov word [eax], dx
push 0xff
lea eax, [esp + 0x674]
push eax
lea ecx, [esp + 0x34]
push ecx
lea edx, [esp + 0x2c]
push edx
lea eax, [esp + 0x24]
push eax
push 0xff
lea ecx, [esp + 0x288]
push ecx
lea edx, [esp + 0x88c]
push edx
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationW]
test eax, eax
je case.0x43fa42.0
mov eax, ebx
sub eax, 2
je 0x43fc7d
dec eax
je 0x43fc65
sub eax, 2
jne case.0x43fa42.4
push 0x18
push eax
mov eax, dword [esp + 0x1c]
push eax
mov eax, dword [esp + 0x1c]
call fcn.00401590
jmp case.0x43fa42.4
mov edx, dword [esp + 0x10]
push 1
push 0
push 0xffffffffffffffff
lea ecx, [esp + 0x27c]
push ecx
push edx
jmp 0x43fe82
lea eax, [esp + 0x670]
jmp 0x43fe76
push 0x7ffe
lea edx, [esp + 0x874]
push edi
push edx
call fcn.004c67b5
add esp, 0xc
xor eax, eax
mov word [esp + 0x1086c], ax
lea eax, [esp + 0x870]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x43fcb3
sub eax, edx
sar eax, 1
je 0x43fcde
cmp word [esp + eax*2 + 0x86e], 0x5c
lea eax, [esp + eax*2 + 0x870]
je 0x43fcde
mov ecx, 0x5c
mov word [eax], cx
lea edx, [esp + 0x870]
push edx
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
cmp eax, 6
ja case.0x43fa42.0
jmp dword [eax*4 + 0x43ff54]
push str._a_9___
call fcn.0049fc00
add esp, 4
push 1
push 0
push 0xffffffffffffffff
push eax
mov eax, dword [esp + 0x20]
push eax
jmp 0x43fe82
push str.R7__30_7
call fcn.0049fc00
add esp, 4
jmp 0x43fe76
push 0x4ef8a8
call fcn.0049fc00
mov edx, dword [esp + 0x14]
add esp, 4
push 1
push 0
push 0xffffffffffffffff
push eax
push edx
jmp 0x43fe82
push 0x4ef8c4
jmp 0x43fd01
push 0x4ef924
call fcn.0049fc00
add esp, 4
jmp 0x43fe76
push 0x4ef940
jmp 0x43fd31
push 0x7ffe
lea eax, [esp + 0x874]
push edi
push eax
call fcn.004c67b5
add esp, 0xc
xor ecx, ecx
lea eax, [esp + 0x870]
mov word [esp + 0x1086c], cx
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x43fd94
sub eax, edx
sar eax, 1
je 0x43fdbf
cmp word [esp + eax*2 + 0x86e], 0x5c
lea eax, [esp + eax*2 + 0x870]
je 0x43fdbf
mov edx, 0x5c
mov word [eax], dx
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x2c]
push edx
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x880]
push ecx
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceW]
test eax, eax
je 0x43fde9
xor eax, eax
jmp 0x43fdf4
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x15
ja case.0x43fdfb.1
movzx edx, byte [eax + 0x43ff84]
jmp dword [edx*4 + 0x43ff70]
push 0x4ef960
jmp 0x43fd01
push str.e__3__6
call fcn.0049fc00
add esp, 4
jmp 0x43fe76
push 0x4ef99c
jmp 0x43fd31
push 0x4ef9c0
jmp 0x43fd01
push str._a_9___
call fcn.0049fc00
add esp, 4
jmp 0x43fe76
cmp word [edi], 0
jne 0x43fea7
push 0
push 0x80
lea edx, [esp + 0x178]
push edx
push str._3_r1636_r_67
call fcn.0049fc00
add esp, 4
push eax
call dword [sym.imp.WINMM.dll_mciSendStringW]
test eax, eax
jne case.0x43fa42.0
lea eax, [esp + 0x170]
mov ecx, dword [esp + 0x10]
push 1
push 0
push 0xffffffffffffffff
push eax
push ecx
call fcn.004aa2a0
mov edx, dword [0x5166e0]
push 1
push 0
push 0xffffffffffffffff
push 0x4e1a5c
push edx
call fcn.004aa2a0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push edi
push str._7_rw_r_7r1636_r3__3_r16r_3_r_:3_730_7
call fcn.0049fc00
add esp, 4
push eax
mov esi, 0x100
lea edi, [esp + 0x478]
call fcn.004a71f0
mov esi, dword [sym.imp.WINMM.dll_mciSendStringW]
add esp, 8
push 0
push 0
push 0
mov eax, edi
push eax
call esi
test eax, eax
jne case.0x43fa42.0
push eax
push 0x80
lea ecx, [esp + 0x178]
push ecx
push str._3_r16r_67
call fcn.0049fc00
add esp, 4
push eax
call esi
push 0
push 0
push 0
push str.1__7r16r_3_
mov edi, eax
call fcn.0049fc00
add esp, 4
push eax
call esi
test edi, edi
je 0x43fe6f
mov edx, dword [ebp + 8]
push edx
call fcn.004319e0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4