Function at 0x4131b0
Capabilities:
Read file via mapping

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x448
mov dword [ebp - 0x28], ecx
lea ecx, [ebp - 0x454]
push dword [ebp + 8]
call sym.std::sys::pal::windows::to_u16s::inner::h9c1ce760b5043b66
add esp, 4
mov esi, dword [ebp - 0x454]
mov eax, dword [ebp - 0x450]
mov edi, dword [ebp - 0x44c]
cmp esi, 0x80000000
jne 0x41322e
cmp al, 4
je 0x413342
cmp al, 3
jne 0x413553
mov esi, dword [edi + 4]
mov ebx, dword [edi]
mov eax, dword [esi]
test eax, eax
je 0x41320b
push ebx
call eax
add esp, 4
cmp dword [esi + 4], 0
je 0x413228
cmp dword [esi + 8], 9
jb 0x41321a
mov ebx, dword [ebx - 4]
push ebx
push 0
push dword [0x4ac0a0]
call sub.KERNEL32.dll_HeapFree
push edi
jmp 0x413546
cmp edi, 3
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x10], eax
jbe 0x41328e
mov edx, eax
mov ecx, 0x5c005c
mov edx, dword [edx + 4]
xor ecx, dword [eax]
mov eax, 0x5c003f
xor edx, eax
or edx, ecx
je 0x41330b
mov edx, dword [ebp - 0x10]
mov ecx, 0x3f005c
xor ecx, dword [edx]
xor eax, dword [edx + 4]
or eax, ecx
je 0x41330b
cmp edi, 0xf8
jae 0x4133f5
mov eax, dword [ebp - 0x10]
cmp word [eax + 2], 0x3a
jne 0x4132de
mov eax, dword [ebp - 0x10]
movzx eax, word [eax + 4]
jmp 0x4132b8
je 0x4132a1
cmp edi, 1
jne 0x4132d8
cmp word [eax], 0
jne 0x4133f5
jmp 0x41330b
cmp word [eax + 2], 0x3a
jne 0x4132de
mov eax, dword [ebp - 0x10]
movzx eax, word [eax + 4]
test ax, ax
je 0x4137c3
cmp ax, 0x2f
je 0x4132c6
movzx eax, ax
cmp eax, 0x5c
jne 0x4132de
mov eax, dword [ebp - 0x10]
movzx eax, word [eax]
cmp eax, 0x2f
je 0x4132e4
cmp eax, 0x5c
je 0x4132e4
jmp 0x41330b
jbe 0x4133f5
mov eax, dword [ebp - 0x10]
movzx eax, word [eax]
cmp ax, 0x5c
je 0x4132f6
movzx eax, ax
cmp eax, 0x2f
jne 0x4133f5
mov eax, dword [ebp - 0x10]
movzx eax, word [eax + 2]
cmp eax, 0x2f
je 0x41330b
cmp eax, 0x5c
jne 0x4133f5
mov eax, dword [ebp - 0x10]
push 0
push 0
push 3
push 0
push 7
push 0x80000000
mov ebx, eax
push eax
call sub.KERNEL32.dll_CreateFileW
cmp eax, 0xffffffff
je 0x413516
mov edi, eax
test esi, esi
je 0x413342
push ebx
push 0
push dword [0x4ac0a0]
call sub.KERNEL32.dll_HeapFree
xorps xmm0, xmm0
mov dword [ebp - 0x424], 0
movups xmmword [ebp - 0x434], xmm0
movups xmmword [ebp - 0x444], xmm0
movups xmmword [ebp - 0x454], xmm0
lea esi, [ebp - 0x454]
push esi
push edi
call sub.KERNEL32.dll_GetFileInformationByHandle
test eax, eax
je 0x4134d8
test byte [ebp - 0x453], 4
je 0x4133a6
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0
lea eax, [ebp - 0x48]
push 8
push eax
push 9
push edi
call sub.KERNEL32.dll_GetFileInformationByHandleEx
test eax, eax
je 0x41356b
cmp dword [ebp - 0x434], 0
jne 0x413570
mov eax, dword [ebp - 0x430]
test edi, edi
mov dword [ebp - 0x10], eax
je 0x4135fb
mov dword [ebp - 0x454], 0
call sub.KERNEL32.dll_GetCurrentProcess
push 2
push 0
push 0
push esi
push eax
push edi
push eax
call sub.KERNEL32.dll_DuplicateHandle
test eax, eax
je 0x413659
mov ebx, dword [ebp - 0x454]
jmp 0x4135fd
mov esi, 0x200
xor edi, edi
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x34], 2
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 2
cmp esi, 0x201
jae 0x413460
jmp 0x41343e
jbe 0x4134dd
cmp esi, 0x201
jae 0x413460
lea eax, [ebp - 0x454]
mov ebx, esi
mov dword [ebp - 0x24], 0x200
mov esi, eax
jmp 0x413486
sub esi, edi
je 0x41347b
mov edx, edi
lea ecx, [ebp - 0x38]
push esi
call sym.alloc::raw_vec::RawVec_LT_T_C_A_GT_::reserve::do_reserve_and_handle::h20e2001013f05adb
add esp, 4
mov edi, dword [ebp - 0x38]
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x2c], eax
mov esi, dword [ebp - 0x2c]
mov ebx, edi
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x24], edi
push 0
call sub.KERNEL32.dll_SetLastError
push 0
mov dword [ebp - 0x14], esi
push esi
push ebx
push dword [ebp - 0x10]
call sub.KERNEL32.dll_GetFullPathNameW
mov esi, eax
test eax, eax
jne 0x4134ab
call sub.KERNEL32.dll_GetLastError
test eax, eax
jne 0x413522
cmp esi, ebx
jne 0x413430
call sub.KERNEL32.dll_GetLastError
cmp eax, 0x7a
jne 0x4137f3
lea esi, [ebx + ebx]
test ebx, ebx
mov eax, 0xffffffff
cmovs esi, eax
cmp esi, 0x201
jb 0x41343e
jmp 0x413460
jmp 0x41356b
mov edx, dword [ebp - 0x24]
cmp esi, edx
ja 0x41380c
cmp esi, 2
mov dword [ebp - 0x18], 0
jbe 0x413561
mov ecx, dword [ebp - 0x14]
movzx eax, word [ecx + 2]
cmp eax, 0x3a
jne 0x41357e
cmp word [ecx + 4], 0x5c
jne 0x41357e
mov edx, 0x4a2c7c
mov ebx, 4
jmp 0x4135b7
call sub.KERNEL32.dll_GetLastError
test esi, esi
je 0x413553
push ebx
jmp 0x413546
call sub.KERNEL32.dll_GetLastError
cmp dword [ebp - 0x38], 0
je 0x41353d
push dword [ebp - 0x34]
push 0
push dword [0x4ac0a0]
call sub.KERNEL32.dll_HeapFree
cmp dword [ebp - 0x20], 0
je 0x413553
push dword [ebp - 0x1c]
push 0
push dword [0x4ac0a0]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [ebp - 0x28]
mov dword [eax], 0
jmp 0x41366d
jne 0x4135b0
mov eax, dword [ebp - 0x14]
movzx ecx, word [eax]
jmp 0x41358a
call sub.KERNEL32.dll_GetLastError
mov eax, dword [ebp - 0x28]
mov dword [eax], 0
jmp 0x413667
movzx ecx, word [ecx]
cmp esi, 3
jne 0x413678
cmp cx, 0x5c
jne 0x4135b0
mov eax, dword [ebp - 0x14]
movzx eax, word [eax + 2]
cmp ax, 0x5c
jne 0x4135b0
add dword [ebp - 0x14], 4
add esi, 0xfffffffe
mov edx, 0x4a2cc8
mov ebx, 8
jmp 0x4135b7
mov edx, 2
xor ebx, ebx
mov ecx, dword [ebp - 0x20]
lea edi, [esi + ebx + 1]
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x2c], edx
cmp ecx, edi
jae 0x4136f9
xor edx, edx
cmp edi, 0x40000000
mov ebx, edi
lea eax, [edi + edi]
setb dl
add edx, edx
test ecx, ecx
je 0x4136cc
mov edi, dword [ebp - 0x10]
add ecx, ecx
mov dword [ebp - 0x48], edi
mov dword [ebp - 0x40], ecx
mov ecx, 2
jmp 0x4136ce
xor ebx, ebx
push 0
push 0
push 0
push 2
push 0
push ebx
call sub.KERNEL32.dll_CreateFileMappingA
test eax, eax
je 0x413648
push dword [ebp - 0x10]
push 0
push 0
push 4
push eax
mov dword [ebp - 0x14], eax
call sub.KERNEL32.dll_MapViewOfFile
mov esi, eax
push dword [ebp - 0x14]
call sub.KERNEL32.dll_CloseHandle
test esi, esi
je 0x413648
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x10]
mov dword [eax + 4], ebx
mov dword [eax + 8], esi
mov dword [eax + 0xc], ecx
mov dword [eax], 1
jmp 0x413667
mov eax, dword [ebp - 0x28]
mov dword [eax], 0
push ebx
call sub.KERNEL32.dll_CloseHandle
jmp 0x413667
call sub.KERNEL32.dll_GetLastError
mov eax, dword [ebp - 0x28]
mov dword [eax], 0
push edi
call sub.KERNEL32.dll_CloseHandle
add esp, 0x448
pop esi
pop edi
pop ebx
pop ebp
ret
mov edx, 2
cmp cx, 0x5c
jne 0x4135b5
cmp eax, 0x3f
je 0x4135b5
cmp eax, 0x5c
jne 0x413597
mov eax, dword [ebp - 0x14]
movzx eax, word [eax + 4]
cmp eax, 0x3f
je 0x4137e0
cmp eax, 0x2e
jne 0x41359d
mov eax, dword [ebp - 0x14]
cmp word [eax + 6], 0x5c
jne 0x41359d
add dword [ebp - 0x14], 8
add esi, 0xfffffffc
jmp 0x413507
xor ecx, ecx
mov dword [ebp - 0x44], ecx
lea edi, [ebp - 0x48]
lea ecx, [ebp - 0x54]
push edi
push eax
call sym.alloc::raw_vec::finish_grow::h069884075bc4c63a
add esp, 8
cmp dword [ebp - 0x54], 0
jne 0x41381d
mov eax, dword [ebp - 0x50]
mov ecx, ebx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x20], ebx
mov ebx, dword [ebp - 0x3c]
xor edi, edi
cmp ecx, ebx
jae 0x413716
xor edx, edx
lea ecx, [ebp - 0x20]
push ebx
call sym.alloc::raw_vec::RawVec_LT_T_C_A_GT_::reserve::do_reserve_and_handle::h20e2001013f05adb
add esp, 4
mov ecx, dword [ebp - 0x20]
mov edi, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x3c]
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp - 0x1c]
lea eax, [ebx + ebx]
mov dword [ebp - 0x10], ecx
lea ecx, [ecx + edi*2]
push eax
push dword [ebp - 0x2c]
push ecx
call sym._memcpy
mov eax, dword [ebp - 0x24]
add esp, 0xc
add edi, ebx
sub eax, edi
mov dword [ebp - 0x18], edi
cmp eax, esi
jae 0x41375c
mov edx, edi
lea ecx, [ebp - 0x20]
push esi
call sym.alloc::raw_vec::RawVec_LT_T_C_A_GT_::reserve::do_reserve_and_handle::h20e2001013f05adb
add esp, 4
mov eax, dword [ebp - 0x20]
mov edi, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x1c]
mov dword [ebp - 0x24], eax
jmp 0x41375f
mov ebx, dword [ebp - 0x10]
lea eax, [esi + esi]
lea ecx, [ebx + edi*2]
push eax
push dword [ebp - 0x14]
push ecx
call sym._memcpy
add esp, 0xc
add edi, esi
mov eax, ebx
cmp edi, dword [ebp - 0x24]
mov dword [ebp - 0x18], edi
jne 0x413789
lea ecx, [ebp - 0x20]
call sym.alloc::raw_vec::RawVec_LT_T_C_A_GT_::grow_one::h6756b7192074e1c7
mov eax, dword [ebp - 0x1c]
mov word [eax + edi*2], 0
inc edi
cmp dword [ebp - 0x38], 0
mov dword [ebp - 0x18], edi
je 0x4137af
push dword [ebp - 0x34]
push 0
push dword [0x4ac0a0]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x18]
mov esi, dword [ebp - 0x20]
cmp esi, 0x80000000
je 0x4131ea
jmp 0x41330e
mov eax, dword [ebp - 0x10]
movzx eax, word [eax]
cmp eax, 0x2f
je 0x4132de
cmp eax, 0x5c
je 0x4132de
jmp 0x41330b
mov eax, dword [ebp - 0x14]
cmp word [eax + 6], 0x5c
jne 0x41359d
jmp 0x4135b5
mov edx, 0x28
mov ecx, str.internal_error:_entered_unreachable_codeT
push 0x4a2be8
call sym.core::panicking::panic::h2de0902fd6c3d9b1
add esp, 4
jmp 0x413828
mov ecx, esi
push 0x4a2bd8
call sym.core::slice::index::slice_end_index_len_fail::hb7bcdcb5c84f7e98
add esp, 4
jmp 0x413828
mov edx, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x50]
call sym.alloc::raw_vec::handle_error::hfb8b40974975e9a6
ud2