Function at 0x45d8f0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x512f4d
mov eax, dword fs:[0]
push eax
sub esp, 0x33c
mov eax, dword [0x55c640]
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
mov ebx, edx
mov esi, ecx
push 0xc0
lea eax, [ebp - 0x2e0]
mov dword [ebp - 4], 0
push 0
push eax
mov dword [ebp - 0x348], esi
mov dword [ebp - 0x344], 0
call fcn.00489f10
add esp, 8
lea ecx, [ebp - 0x2e0]
call fcn.0044f4e0
push ecx
push 8
push str._error_log.txt
lea ecx, [ebp - 0x2c8]
mov dword [ebp - 4], 1
call fcn.00452910
test eax, eax
lea ecx, [ebp - 0x2e0]
mov eax, dword [ebp - 0x2e0]
mov eax, dword [eax + 4]
jne 0x45d99a
add ecx, eax
mov eax, dword [ecx + 0xc]
or eax, 2
cmp dword [ecx + 0x38], 0
jne 0x45d9a9
or eax, 4
jmp 0x45d9a9
add ecx, eax
mov edx, 4
xor eax, eax
cmp dword [ecx + 0x38], eax
cmove eax, edx
push 0
push eax
call fcn.00407930
mov edx, str._zmd5file_zmd5file_file
lea ecx, [ebp - 0x2d0]
call fcn.00456c60
push eax
call fcn.00456f10
add esp, 4
lea eax, [ebp - 0x340]
push eax
call dword [sym.imp.LIBEAY32.dll_Ordinal_341]
add esp, 4
lea ecx, [ebp - 0x2d0]
mov edx, str._zmd5file_zmd5file_file2
call fcn.00456c60
push eax
call fcn.00456f10
add esp, 4
lea eax, [ebp - 0x220]
push ebx
push 0x200
push 1
push eax
call fcn.00485180
add esp, 0x10
test eax, eax
je 0x45da43
mov edi, dword [sym.imp.LIBEAY32.dll_Ordinal_342]
push eax
lea eax, [ebp - 0x220]
push eax
lea eax, [ebp - 0x340]
push eax
call edi
add esp, 0xc
lea eax, [ebp - 0x220]
push ebx
push 0x200
push 1
push eax
call fcn.00485180
add esp, 0x10
test eax, eax
jne 0x45da14
lea eax, [ebp - 0x340]
push eax
lea eax, [ebp - 0x20]
push eax
call dword [sym.imp.LIBEAY32.dll_Ordinal_340]
mov edx, str._zmd5file_zmd5file_file4
lea ecx, [ebp - 0x2d0]
call fcn.00456c60
push eax
call fcn.00456f10
mov dword [esi + 0x14], 0xf
add esp, 0xc
mov dword [esi + 0x10], 0
mov byte [esi], 0
mov dword [ebp - 0x344], 1
xor ebx, ebx
lea ebx, [ebx]
mov al, byte [ebp + ebx - 0x20]
shr al, 4
movzx ecx, al
cmp al, 0xa
jae 0x45daa3
add ecx, 0x30
jmp 0x45daa6
add ecx, 0x57
mov edx, dword [esi + 0x14]
cmp edx, 0x10
jb 0x45dab2
mov edi, dword [esi]
jmp 0x45dab4
mov edi, esi
mov eax, dword [esi + 0x10]
add eax, edi
cmp edx, 0x10
jb 0x45dac2
mov edx, dword [esi]
jmp 0x45dac4
mov edx, esi
test eax, eax
je 0x45daca
sub eax, edx
push ecx
push 1
push eax
mov ecx, esi
call fcn.004541e0
mov al, byte [ebp + ebx - 0x20]
and al, 0xf
movzx ecx, al
cmp al, 0xa
jae 0x45dae7
add ecx, 0x30
jmp 0x45daea
add ecx, 0x57
mov edx, dword [esi + 0x14]
cmp edx, 0x10
jb 0x45daf6
mov edi, dword [esi]
jmp 0x45daf8
mov edi, esi
mov eax, dword [esi + 0x10]
add eax, edi
cmp edx, 0x10
jb 0x45db06
mov edx, dword [esi]
jmp 0x45db08
mov edx, esi
test eax, eax
je 0x45db0e
sub eax, edx
push ecx
push 1
push eax
mov ecx, esi
call fcn.004541e0
inc ebx
cmp ebx, 0x10
jb 0x45da90
mov edx, str._zmd5file_zmd5file_file5
lea ecx, [ebp - 0x2d0]
call fcn.00456c60
push eax
call fcn.00456f10
add esp, 4
mov byte [ebp - 0x220], 0
lea ecx, [ebp - 0x268]
mov byte [ebp - 0x20], 0
mov byte [ebp - 4], 0
call fcn.0044f600
lea eax, [ebp - 0x268]
mov dword [ebp - method.std::ios_base.virtual_0], vtable.std::ios_base.0
push eax
call fcn.0046ca3b
add esp, 4
mov eax, esi
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.00484516
mov esp, ebp
pop ebp
ret