Function at 0x433cf0
Capabilities:
Get disk information
Get disk size
Get file attributes
Set file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x56b926
mov eax, dword fs:[0]
push eax
sub esp, 0x830
mov eax, dword [0x676300]
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
push 0x400
lea eax, [ebp - 0x410]
push 0
push eax
call fcn.00534b40
push 0x679040
call fcn.004ee6fe
add esp, 0x10
cmp eax, 1
jne 0x433d9a
lea ecx, [ebp - 0x410]
push 0x3ff
push ecx
call fcn.00433a60
add esp, 8
cmp byte [ebp - 0x410], 0
je 0x433d82
lea edx, [ebp - 0x410]
push edx
call fcn.004ee71c
add esp, 4
test eax, eax
jne 0x433d82
lea eax, [ebp - 0x410]
push eax
call fcn.004ee6c0
add esp, 4
lea ecx, [ebp - 0x410]
push ecx
call fcn.004ee71c
add esp, 4
test eax, eax
jne 0x433d9a
call fcn.00433c60
push 0x400
lea edx, [ebp - 0x410]
push 0
push edx
call fcn.00534b40
push 0x679040
call fcn.004ee6fe
add esp, 0x10
cmp eax, 1
jne 0x433e05
lea eax, [ebp - 0x410]
push 0x3ff
push eax
call fcn.00433a60
add esp, 8
test eax, eax
je 0x433e05
mov eax, dword [ebp - 0x410]
test al, al
je 0x433e05
push eax
call fcn.00433590
add esp, 4
test al, al
je 0x433e05
lea ecx, [ebp - 0x410]
push ecx
call fcn.00433630
add esp, 4
test al, al
jne 0x433fac
mov ecx, 0x679440
mov dword [ebp - 0x814], 0x679440
call fcn.004ef6fb
push 0x679040
mov dword [ebp - 4], 0
call fcn.004ee6fe
add esp, 4
test eax, eax
je 0x433e42
push 0
push 0
push 0x679040
call fcn.004eee67
add esp, 0xc
mov ecx, 0x679440
mov dword [ebp - 4], 0xffffffff
call fcn.004ef710
push 0x400
lea edx, [ebp - 0x810]
push 0
push edx
call fcn.00534b40
add esp, 0xc
push 0x3ff
lea eax, [ebp - 0x810]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
cmp byte [ebp + 8], 0
je 0x433e97
mov ecx, dword [ebp - 0x810]
push ecx
call fcn.00433710
add esp, 4
jmp 0x433fac
call dword [sym.imp.KERNEL32.dll_GetLogicalDrives]
test eax, eax
je 0x433ea5
shr eax, 1
jne 0x433ea1
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetLogicalDriveStringsA]
mov esi, eax
lea ebx, [esi + 1]
push ebx
call fcn.00538174
mov edi, eax
add esp, 4
test edi, edi
je 0x434017
mov dword [ebp - 0x82c], edi
push ebx
push 0
push edi
mov dword [ebp - 4], 1
call fcn.00534b40
add esp, 0xc
push edi
push esi
call dword [sym.imp.KERNEL32.dll_GetLogicalDriveStringsA]
mov dl, byte [ebp - 0x810]
mov byte [ebp - 0x814], dl
mov eax, esi
cdq
and edx, 3
add eax, edx
xor ebx, ebx
sar eax, 2
mov dword [ebp - 0x824], ebx
cmp eax, ebx
jle 0x433f90
mov esi, edi
mov dword [ebp - 0x818], eax
push esi
call dword [sym.imp.KERNEL32.dll_GetDriveTypeA]
cmp eax, 3
jne 0x433f85
lea eax, [ebp - 0x820]
push eax
lea ecx, [ebp - 0x83c]
push ecx
lea edx, [ebp - 0x834]
push edx
push esi
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExA]
test eax, eax
je 0x433f85
mov eax, dword [ebp - 0x81c]
cmp eax, dword [ebp - 0x824]
jb 0x433f85
ja 0x433f5b
cmp dword [ebp - 0x820], ebx
jbe 0x433f85
movzx edx, byte [esi]
push edx
call fcn.00433590
add esp, 4
test al, al
je 0x433f85
mov eax, dword [ebp - 0x81c]
mov cl, byte [esi]
mov ebx, dword [ebp - 0x820]
mov dword [ebp - 0x824], eax
mov byte [ebp - 0x814], cl
add esi, 4
dec dword [ebp - 0x818]
jne 0x433f17
mov edx, dword [ebp - 0x814]
push edx
call fcn.00433710
push edi
mov dword [ebp - 4], 0xffffffff
call fcn.00535f7c
add esp, 8
push 0x400
lea eax, [ebp - 0x410]
push 0
push eax
call fcn.00534b40
lea ecx, [ebp - 0x410]
push 0x3ff
push ecx
call fcn.00433a60
add esp, 0x14
test eax, eax
je 0x434017
lea edx, [ebp - 0x410]
push edx
call fcn.004ee71c
add esp, 4
test eax, eax
jne 0x433ff9
lea eax, [ebp - 0x410]
push eax
call fcn.004ee6c0
add esp, 4
lea ecx, [ebp - 0x410]
push ecx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
or eax, 6
push eax
lea edx, [ebp - 0x410]
push edx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
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.00534bba
mov esp, ebp
pop ebp
ret