Function at 0x52b4c0
Capabilities:
Get disk size
Get file size

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xe8
push esi
mov eax, dword [ebp - 0x88]
mov ecx, dword [ebp - 0x48]
lea edx, [ecx + eax + 0xc6]
movzx ecx, byte [ebp - 0x31]
sub ecx, dword [ebp - 0x24]
sub ecx, 7
shr edx, cl
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x10]
add eax, 0xcd
mov ecx, dword [ebp - 0x30]
sub ecx, dword [ebp - 0xdc]
xor eax, ecx
mov dword [ebp - 0x24], eax
mov edx, dword [ebp - 0xc8]
add edx, 6
sub edx, dword [ebp - 8]
mov eax, dword [ebp - 0x3c]
lea ecx, [edx + eax + 0x10]
and ecx, dword [ebp - 0x54]
mov word [ebp - 0x90], cx
mov edx, dword [ebp - 0xcc]
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0xe4], eax
mov ecx, dword [ebp - 0xe4]
sub ecx, 0xc
mov dword [ebp - 0xe4], ecx
cmp dword [ebp - 0xe4], 0xe9
ja case.0x52b55a.1
mov edx, dword [ebp - 0xe4]
movzx eax, byte [edx + 0x52b804]
jmp dword [eax*4 + 0x52b7e8]
mov ecx, 0x95
mov edx, dword [ebp - 4]
add edx, dword [ebp - 0x10]
and ecx, edx
mov dword [ebp - 0x24], ecx
jmp 0x52b647
movzx eax, word [ebp - 0x78]
mov ecx, dword [ebp - 0x54]
add ecx, 0x7f
and eax, ecx
mov edx, dword [ebp - 0x24]
add edx, dword [ebp - 0xb4]
or eax, edx
movzx ecx, byte [ebp - 0x1e]
add ecx, 0x3a
or eax, ecx
mov dword [ebp - 0xdc], eax
jmp 0x52b647
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov edx, dword [ebp - 4]
lea eax, [eax + edx + 0x27]
mov dword [ebp - 0x3c], eax
jmp 0x52b647
movzx ecx, word [ebp - 0x90]
mov edx, dword [ebp - 0x54]
lea eax, [ecx + edx + 0xd4]
sub eax, dword [ebp - 0x30]
sub eax, dword [ebp - 0x74]
mov ecx, 0x24
sub ecx, dword [ebp - 8]
xor eax, ecx
mov dword [ebp - 0x10], eax
jmp 0x52b647
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x54]
movzx eax, byte [ebp - 0x29]
mov ecx, 0xd
sub ecx, eax
add ecx, 0xc0
and edx, ecx
mov eax, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0x30]
lea eax, [ecx + eax + 0xfe]
or edx, eax
mov word [ebp - 0x90], dx
jmp 0x52b647
mov ecx, dword [ebp - 0x48]
add ecx, dword [ebp - 0x48]
movzx edx, byte [ebp - 0x62]
add ecx, dword [ebp - 0x30]
add edx, ecx
sub edx, dword [ebp - 8]
movzx eax, byte [ebp - 0x9d]
sub edx, eax
and edx, dword [ebp - 0x24]
mov byte [ebp - 0xad], dl
jmp 0x52b647
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x24]
lea eax, [edx + ecx + 0x29]
mov dword [ebp - 0x68], eax
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x24]
lea eax, [edx + ecx - 0xed]
mov byte [ebp - 0x6d], al
cmp dword [ebp - 0x48], 0xd1
je 0x52b672
movzx ecx, word [ebp - 0xd0]
add ecx, 0x27
mov dword [ebp - 0xa4], ecx
jmp 0x52b69d
movzx edx, byte [ebp - 9]
mov eax, dword [ebp - 4]
sub eax, edx
movzx ecx, word [ebp - 0xc0]
xor eax, ecx
mov edx, dword [ebp - 0xcc]
sub edx, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x10]
add ecx, 6
and edx, ecx
and edx, dword [ebp - 0x3c]
or eax, edx
mov dword [ebp - 0x54], eax
cmp dword [ebp - 0x68], 0
je 0x52b6af
mov dword [ebp - 0xdc], 0x1dc
jmp 0x52b6b6
mov byte [ebp - 0x81], 0xfd
mov edx, dword [ebp - 4]
and edx, dword [ebp - 0xcc]
movzx eax, word [ebp - 0x98]
mov ecx, dword [ebp - 0xdc]
lea eax, [ecx + eax + 0xf0]
and edx, eax
or edx, 0x51
mov dword [ebp - 0x30], edx
movzx esi, byte [ebp - 0xb9]
push 0
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceW]
sub esi, eax
sub esi, dword [ebp - 0x68]
sub esi, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x74]
mov edx, dword [ebp - 0xa4]
lea eax, [edx + ecx + 0x1f]
or esi, eax
mov dword [ebp - 0xcc], esi
mov ecx, dword [ebp - 0xdc]
mov dword [ebp - 0xe8], ecx
mov edx, dword [ebp - 0xe8]
sub edx, 5
mov dword [ebp - 0xe8], edx
cmp dword [ebp - 0xe8], 0xc2
ja case.0x52b743.1
mov eax, dword [ebp - 0xe8]
movzx ecx, byte [eax + 0x52b904]
jmp dword [ecx*4 + 0x52b8f0]
mov edx, dword [ebp - 0x48]
sub edx, dword [ebp - 0xb4]
mov eax, dword [ebp - 0xdc]
add eax, 0x4f
sub eax, dword [ebp - 8]
movzx ecx, word [ebp - 0xa8]
sub eax, ecx
and edx, eax
mov dword [ebp - 0xcc], edx
jmp 0x52b7dc
movzx edx, word [ebp - 0x90]
movzx eax, byte [ebp - 0x29]
lea ecx, [edx + eax - 0xf1]
or ecx, dword [ebp - 0x88]
mov dword [ebp - 0x10], ecx
jmp 0x52b7dc
movzx edx, byte [ebp - 0x32]
sub edx, 0x119
and edx, dword [ebp - 0x74]
movzx eax, byte [ebp - 0x7d]
and edx, eax
mov word [ebp - 0x28], dx
jmp 0x52b7dc
mov ecx, 0xa3
sub ecx, dword [ebp - 0x30]
mov dword [ebp - 0x38], ecx
jmp 0x52b7dc
mov edx, dword [ebp - 0x68]
add edx, 0xb7
sub edx, dword [ebp - 0xdc]
sub edx, dword [ebp - 0xc8]
sub edx, dword [ebp - 0x88]
sub edx, dword [ebp - 4]
add edx, dword [ebp - 8]
or edx, dword [ebp - 0x30]
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x24]
pop esi
mov esp, ebp
pop ebp
ret 8