Function at 0x41bdca
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x78
mov dword [ebp - 0xc], 0
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x14], 0
mov byte [ebp - 0x15], 0
cmp dword [ebp + 8], 0
jne 0x41be0d
mov dword [esp + 8], 0x24f
mov dword [esp + 4], str.src_patcher_patcher.c
mov dword [esp], str.file
mov eax, dword [0x41f504]
call eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
cmp eax, 0xffffffff
jne 0x41be36
mov dword [esp + 8], 0x250
mov dword [esp + 4], str.src_patcher_patcher.c
mov dword [esp], str.file__size___MIN_SIZE_MAX__DWORD_MAX_
mov eax, dword [0x41f504]
call eax
cmp dword [ebp - 0xc], 0
je 0x41be5a
mov dword [esp + 8], 0x251
mov dword [esp + 4], str.src_patcher_patcher.c
mov dword [esp], str._absPath
mov eax, dword [0x41f504]
call eax
cmp dword [ebp - 0x10], 0
je 0x41be7e
mov dword [esp + 8], 0x252
mov dword [esp + 4], str.src_patcher_patcher.c
mov dword [esp], str._nameInFsCase
mov eax, dword [0x41f504]
call eax
cmp dword [ebp - 0x14], 0
je 0x41bea2
mov dword [esp + 8], 0x253
mov dword [esp + 4], str.src_patcher_patcher.c
mov dword [esp], str._data
mov eax, dword [0x41f504]
call eax
movzx eax, byte [ebp - 0x15]
xor eax, 1
test al, al
jne 0x41becb
mov dword [esp + 8], 0x254
mov dword [esp + 4], str.src_patcher_patcher.c
mov dword [esp], str._alreadyPatched
mov eax, dword [0x41f504]
call eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
mov dword [esp], eax
call fcn.0041ba74
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
je 0x41c265
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], pe_nt_image_headers32
mov dword [esp + 0x10], 3
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0xc0000000
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_CreateFileW]
call eax
sub esp, 0x1c
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0xffffffff
jne 0x41bf52
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
mov dword [esp + 8], eax
mov dword [esp + 4], str.Patching_failed._Couldnt_open_the_file__s._Make_sure_the_file_is_not_being_used_by_another_application_and_the_patcher_is_located_in_the_games_main_directory_containing_HITMAN.EXE.
mov dword [esp], 0x10
call fcn.0041b298
jmp 0x41c230
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call fcn.0041b6ec
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0
jne 0x41bf86
mov eax, dword [ebp - 0xc]
mov dword [esp + 8], eax
mov dword [esp + 4], str.Patching_failed._Couldnt_extract_the_file_name_from_the_absolute_path__s._This_is_likely_due_to_a_bug_in_the_patcher._Please_report_it.
mov dword [esp], 0x10
call fcn.0041b298
jmp 0x41c252
mov eax, dword [ebp - 0x20]
mov dword [esp], eax
call sub.msvcrt.dll_wcslen
add eax, 1
add eax, eax
lea edx, [eax + 0xc]
mov eax, 0x10
sub eax, 1
add eax, edx
mov ecx, 0x10
mov edx, 0
div ecx
imul eax, eax, 0x10
call fcn.0041e540
sub esp, eax
lea eax, [esp + 0x1c]
add eax, 0xf
shr eax, 4
shl eax, 4
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x20]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
call sub.msvcrt.dll_wcscpy
mov eax, dword [ebp - 0x10]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sub.msvcrt.dll_wcscpy
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sub.msvcrt.dll_wcslen
add eax, 1
add eax, eax
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call fcn.0041b56f
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x41c023
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], 0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
add eax, 1
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call fcn.0041b511
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
je 0x41c243
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
lea edx, [eax + 1]
mov dword [esp + 0x10], 0
lea eax, [ebp - 0x28]
mov dword [esp + 0xc], eax
mov dword [esp + 8], edx
mov eax, dword [ebp - 0x14]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_ReadFile]
call eax
sub esp, 0x14
test eax, eax
jne 0x41c0a8
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
mov dword [esp + 8], eax
mov dword [esp + 4], str.Patching_failed._Couldnt_read_the_contents_of_the_file__s.
mov dword [esp], 0x10
call fcn.0041b298
jmp 0x41c220
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0xc]
mov eax, dword [ebp - 0x28]
cmp edx, eax
je 0x41c0e9
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xc]
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
mov dword [esp + 4], str.Patching_failed._The_file__s_has_an_unexpected_file_size_of__lu_bytes__but_it_should_be_exactly__lu_bytes._This_could_be_caused_by_a_failed_prior_patching_attempt__the_application_of_another_patch_or_an_supported_game_version.
mov dword [esp], 0x10
call fcn.0041b298
jmp 0x41c220
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
lea edx, [ebp - 0x49]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x14]
mov dword [esp], eax
call fcn.0041b604
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x14]
mov dword [esp + 4], eax
lea eax, [ebp - 0x49]
mov dword [esp], eax
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x41c16f
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x18]
mov dword [esp + 4], eax
lea eax, [ebp - 0x49]
mov dword [esp], eax
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x41c16b
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x14]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
mov dword [esp + 0x10], edx
lea edx, [ebp - 0x49]
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
mov dword [esp + 4], str.Patching_failed._The_MD5_checksum_of_file__s_is_n_n_S_n_nbut_it_should_be_n_n_S_n_nThis_could_be_caused_by_a_failed_prior_patching_attempt__the_application_of_another_patch_or_an_unsupported_game_version.
mov dword [esp], 0x10
call fcn.0041b298
jmp 0x41c220
mov byte [ebp - 0x15], 1
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x1c]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_SetFilePointer]
call eax
sub esp, 0x10
cmp eax, 0xffffffff
jne 0x41c1bc
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
mov dword [esp + 8], eax
mov dword [esp + 4], str.Patching_failed._Couldnt_prepare_the_file__s_for_writing_after_having_read_and_verified_its_contents._Try_running_the_patcher_again.
mov dword [esp], 0x10
call fcn.0041b298
jmp 0x41c220
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x14]
mov dword [eax + 0x6c], edx
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x10]
mov dword [eax + 0x5c], edx
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x1c]
mov dword [eax + 0x64], edx
mov eax, dword [ebp + 8]
mov byte [eax + 0x60], 0
mov eax, dword [ebp + 8]
movzx edx, byte [ebp - 0x15]
mov byte [eax + 0x68], dl
mov eax, dword [ebp + 8]
mov byte [eax + 0x69], 1
mov eax, dword [ebp + 8]
movzx eax, byte [eax + 0x68]
test al, al
je 0x41c20f
movzx eax, byte [0x41f4d8]
movzx eax, al
test eax, eax
je 0x41c20f
mov eax, 1
jmp 0x41c214
mov eax, 0
mov byte [0x41f4d8], al
mov eax, 1
jmp 0x41c26e
mov eax, dword [ebp - 0x1c]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_CloseHandle]
call eax
sub esp, 4
cmp dword [ebp - 0x14], 0
je 0x41c246
mov eax, dword [ebp - 0x14]
mov dword [esp], eax
call sub.msvcrt.dll_free
jmp 0x41c247
nop
jmp 0x41c247
nop
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
call sub.msvcrt.dll_free
cmp dword [ebp - 0xc], 0
je 0x41c268
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sub.msvcrt.dll_free
jmp 0x41c269
nop
jmp 0x41c269
nop
mov eax, 0
leave
ret