Function at 0x4265d0
Capabilities:
Get disk information
Get disk size
Get file size

Disassembly:
sub esp, 0x21c
push ebx
push ebp
push esi
push edi
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x64]
mov ebx, dword [esp + 0x230]
rep stosd dword es:[edi], eax
mov ecx, 0x32
lea edi, [esp + 0x164]
rep stosd dword es:[edi], eax
mov ecx, 0xc
lea edi, [esp + 0x30]
rep stosd dword es:[edi], eax
or ebp, 0xffffffff
push ebx
mov dword [esp + 0x30], ebp
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x28], ebp
mov dword [esp + 0x24], ebp
mov dword [esp + 0x20], ebp
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], ebp
mov byte [esp + 0x14], 0x6e
mov byte [esp + 0x15], 0x35
mov byte [esp + 0x16], 0
stosw word es:[edi], ax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeA]
cmp eax, 5
je 0x426650
pop edi
mov eax, ebp
pop esi
pop ebp
pop ebx
add esp, 0x21c
ret
lea edi, [esp + 0x10]
mov ecx, ebp
xor eax, eax
lea edx, [esp + 0x30]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 0x32
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x28]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
lea eax, [esp + 0x2c]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x34]
push ecx
push edx
lea ecx, [esp + 0x38]
push eax
push ecx
lea edx, [esp + 0x178]
push 0xc8
push edx
push ebx
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationA]
lea eax, [esp + 0x30]
push eax
push str.CDFS
call fcn.00562370
add esp, 8
test eax, eax
je 0x4266c1
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x21c
ret
lea ecx, [esp + 0x18]
lea edx, [esp + 0x14]
push ecx
lea eax, [esp + 0x20]
push edx
lea ecx, [esp + 0x28]
push eax
push ecx
push ebx
mov dword [esp + 0x28], 4
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceA]
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4266fc
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x21c
ret
mov edi, ebx
mov ecx, ebp
xor eax, eax
lea edx, [esp + 0x64]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x64]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0x238]
mov ecx, ebp
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 0x60000001
mov esi, edi
mov ebx, ecx
mov edi, edx
mov ecx, ebp
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
push 3
push eax
and ecx, 3
push 1
lea eax, [esp + 0x78]
push 0x80000000
push eax
rep movsb byte es:[edi], byte [esi]
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, ebp
jne 0x426784
push ebp
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
pop esi
pop ebp
mov eax, 4
pop ebx
add esp, 0x21c
ret
push 0
push esi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
cmp eax, ebp
jne 0x4267a8
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
pop esi
pop ebp
mov eax, 5
pop ebx
add esp, 0x21c
ret
mov ecx, dword [esp + 0x238]
push esi
cmp eax, ecx
je 0x4267ca
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
pop esi
pop ebp
mov eax, 6
pop ebx
add esp, 0x21c
ret
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esp + 0x18]
imul eax, dword [esp + 0x1c]
imul eax, dword [esp + 0x20]
cmp eax, 0x29e00000
jae 0x4267f1
cmp eax, 0x2ad00000
mov eax, 0xa
ja 0x4267f6
mov eax, 7
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x21c
ret