Function at 0x416fc2
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x130
mov eax, dword [0x49f2a0]
xor eax, ebp
mov dword [ebp - 4], eax
cmp dword [ebp + 0x14], 0x10
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x12c], eax
jge 0x416ff3
push dword [ebp + 0x14]
push str.numberOfHashesToWrite___d_n
call fcn.00450f5c
pop ecx
pop ecx
cmp dword [0x482288], 0xffffffff
jne 0x417003
xor eax, eax
jmp 0x417216
inc dword [0x4a3d50]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00416cd3
mov esi, eax
and eax, edx
mov dword [ebp - 0x11c], esi
mov dword [ebp - 0x118], edx
cmp eax, 0xffffffff
jne 0x417031
xor eax, eax
jmp 0x417215
mov ecx, dword [0x4a41f4]
mov eax, dword [ecx + 8]
imul eax, dword [ecx + 4]
test eax, eax
jne 0x417051
push 0x100
push 0x1000
call fcn.0041e959
test byte [0x4cdde0], 4
push ebx
push edi
je 0x41717e
xor eax, eax
xor ebx, ebx
mov byte [ebp - 0x14], bl
lea edi, [ebp - 0x13]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
push ebx
push dword [ebp - 0x118]
stosd dword es:[edi], eax
stosw word es:[edi], ax
push esi
push dword [0x482288]
stosb byte es:[edi], al
call fcn.0044df99
cmp eax, esi
jne 0x41708f
cmp edx, dword [ebp - 0x118]
je 0x4170b9
push dword [ebp - 0x118]
push esi
push str.cant_seek_to__I64lu_n
call dword [sym.imp.___total_physical_size__lu_MB_GetLastError]
push eax
push 0x349
push str.HashFileUtils
call fcn.0044dc85
add esp, 0x18
jmp 0x4171d6
movzx esi, word [0x4a3fa8]
mov edi, dword [ebp + 0x14]
imul esi, edi
push esi
lea eax, [ebp - 0x114]
push ebx
push eax
call fcn.00450230
add esp, 0xc
push ebx
lea eax, [ebp - 0x130]
push eax
push esi
lea eax, [ebp - 0x114]
push eax
push dword [0x482288]
call dword [sym.imp.___total_physical_size__lu_MB_ReadFile]
test eax, eax
jne 0x417115
push str.error_reading_hash_file_n
call dword [sym.imp.___total_physical_size__lu_MB_GetLastError]
push eax
push 0x34f
push str.HashFileUtils
call fcn.0044dc85
add esp, 0x10
mov dword [ebp - 0x124], ebx
cmp edi, ebx
jle 0x41717e
movzx edx, word [0x4a3fa8]
lea eax, [ebp - 0x114]
mov dword [ebp - 0x128], edi
mov ecx, edx
lea edi, [ebp - 0x14]
mov esi, eax
xor ebx, ebx
repe cmpsb byte [esi], byte es:[edi]
je 0x417149
mov dword [ebp - 0x124], 1
add eax, 0x10
dec dword [ebp - 0x128]
jne 0x417132
cmp dword [ebp - 0x124], ebx
je 0x41717e
push dword [ebp - 0x118]
push dword [ebp - 0x11c]
push dword [ebp + 0xc]
push dword [ebp + 8]
push dword [ebp + 0x14]
push str.writing__d_hash_values_at_wrong_offset:_byteoffset___I64d___hash_offset___I64d_n
call fcn.00450f5c
add esp, 0x18
mov ecx, dword [0x4a41f4]
lea eax, [ebp - 0x120]
push eax
movzx eax, word [0x4a3fa8]
imul eax, dword [ebp + 0x14]
push dword [ebp - 0x118]
push dword [ebp - 0x11c]
push eax
push dword [ebp - 0x12c]
push dword [0x482288]
call fcn.0041ee2e
test eax, eax
jne 0x4171db
push str.cant_write_to_hash_buffer_n
call dword [sym.imp.___total_physical_size__lu_MB_GetLastError]
push eax
push 0x377
push str.HashFileUtils
call fcn.0044dc85
add esp, 0x10
or eax, 0xffffffff
jmp 0x417213
mov ecx, dword [ebp - 0x120]
add ecx, dword [ebp - 0x11c]
push 0
pop eax
adc eax, dword [ebp - 0x118]
cmp dword [0x482294], eax
jg 0x41720d
jl 0x417202
cmp dword [0x482290], ecx
ja 0x41720d
mov dword [0x482290], ecx
mov dword [0x482294], eax
mov eax, dword [ebp - 0x120]
pop edi
pop ebx
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00450b32
leave
ret 0x10