Function at 0x10065190
Capabilities:
Hash data with md5
Read file on windows
Write file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x220cc
call fcn.1008bd60
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov edi, dword [ebp + 0x14]
mov ebx, edx
push 0
push 0x80
push 3
push 0
mov dword [ebp - 0x22094], eax
mov eax, dword [ebp + 0x10]
push 0
mov dword [ebp - 0x22090], eax
mov eax, dword [ebp + 0x1c]
push SysReAllocString
push eax
mov dword [ebp - 0x2208c], ecx
mov dword [ebp - 0x22084], edi
call dword [sym.imp.KERNEL32.DLL_CreateFileW]
mov dword [ebp - 0x22088], eax
cmp eax, 0xffffffff
je 0x100654ab
push 0
lea ecx, [ebp - 0x2207c]
mov dword [ebp - 0x22078], 0
push ecx
push 0x10000
lea ecx, [ebp - 0x10010]
mov dword [ebp - 0x22074], 0
push ecx
push eax
mov dword [ebp - 0x22070], 0x67452301
mov dword [ebp - 0x2206c], 0xefcdab89
mov dword [ebp - 0x22068], 0x98badcfe
mov dword [ebp - 0x22064], 0x10325476
call dword [sym.imp.KERNEL32.DLL_ReadFile]
mov esi, eax
test esi, esi
je 0x1006547b
lea ebx, [ebx]
mov eax, dword [ebp - 0x2207c]
test eax, eax
je 0x1006547b
push eax
lea edx, [ebp - 0x10010]
lea ecx, [ebp - 0x22078]
call fcn.100762d0
add esp, 4
test byte [ebp + 0xc], 1
je 0x100653d8
lea eax, [ebp - 0x10010]
mov dword [ebp - 0x220ac], 0
mov dword [ebp - 0x220cc], eax
lea ecx, [ebp - 0x220cc]
mov eax, dword [ebp - 0x2207c]
sub esp, 0x18
mov dword [ebp - 0x220c8], eax
mov edi, 0x1200c
lea eax, [ebp - 0x22020]
mov dword [ebp - 0x220bc], edi
mov dword [ebp - 0x220c0], eax
mov dword [ebp - 0x220a8], 0
mov dword [ebp - 0x220a4], 0
call fcn.10076cf0
mov esi, eax
add esp, 0x18
test esi, esi
jne 0x10065329
lea ecx, [ebp - 0x220cc]
call fcn.10076f90
mov esi, eax
lea ecx, [ebp - 0x220cc]
cmp esi, 1
je 0x1006531a
call fcn.10077700
test esi, esi
mov eax, 0xfffffffb
cmove esi, eax
jmp 0x10065327
mov edi, dword [ebp - 0x220b8]
call fcn.10077700
mov esi, eax
test esi, esi
mov edx, dword [ebp - 0x2207c]
jne 0x10065381
cmp edi, edx
jae 0x10065381
lea eax, [ebp - 0x22080]
mov edx, edi
push eax
lea eax, [ebp - 0x1000c]
push eax
mov eax, dword [ebp + 0x18]
lea ecx, [ebp - 0x22020]
push eax
push dword [ebp - 0x22084]
call fcn.1005d0c0
mov esi, dword [ebp - 0x22080]
lea edi, [ebp - 0x10010]
mov eax, esi
add esp, 0x10
neg eax
add esi, 4
mov dword [ebp - 0x10010], eax
mov dword [ebp - 0x22080], esi
jmp 0x1006540a
lea eax, [ebp - 0x22080]
push eax
lea eax, [ebp - 0x22020]
push eax
mov eax, dword [ebp + 0x18]
lea ecx, [ebp - 0x10010]
push eax
push dword [ebp - 0x22084]
call fcn.1005d0c0
mov esi, dword [ebp - 0x22080]
lea eax, [ebp - 0x22020]
push esi
push eax
lea eax, [ebp - 0x1000c]
mov dword [ebp - 0x10010], esi
push eax
call fcn.100865f0
add esp, 0x1c
lea edi, [ebp - 0x10010]
add esi, 4
mov dword [ebp - 0x22080], esi
jmp 0x1006540a
mov edx, dword [ebp - 0x2207c]
lea eax, [ebp - 0x22080]
push eax
lea eax, [ebp - 0x22020]
push eax
push dword [ebp + 0x18]
lea ecx, [ebp - 0x10010]
push edi
call fcn.1005d0c0
mov esi, dword [ebp - 0x22080]
lea edi, [ebp - 0x22020]
add esp, 0x10
mov ecx, dword [ebp - 0x22094]
mov edx, edi
push esi
call fcn.100762d0
add esp, 4
lea eax, [ebp - 0x2207c]
push 0
push eax
push esi
push edi
push dword [ebp - 0x2208c]
call dword [sym.imp.KERNEL32.DLL_WriteFile]
test eax, eax
je 0x10065479
mov eax, dword [ebp - 0x2207c]
test eax, eax
je 0x10065479
add dword [ebx], eax
lea eax, [ebp - 0x2207c]
push 0
adc dword [ebx + 4], 0
push eax
push 0x10000
lea eax, [ebp - 0x10010]
push eax
push dword [ebp - 0x22088]
call dword [sym.imp.KERNEL32.DLL_ReadFile]
mov edi, dword [ebp - 0x22084]
mov esi, eax
test esi, esi
jne 0x10065260
jmp 0x1006547b
xor esi, esi
push dword [ebp - 0x22088]
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
mov edx, dword [ebp - 0x22090]
lea ecx, [ebp - 0x22078]
call fcn.10076390
mov eax, esi
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1007aa10
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
xor eax, eax
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.1007aa10
mov esp, ebp
pop ebp
ret