Function at 0x140031a40
Capabilities:
Read file via mapping

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x4c8
push rcx
nop
pop rdi
lea rcx, [rsp + 0xc0]
call fcn.14004aa10
mov rbx, qword [rsp + 0xc0]
mov r14, qword [rsp + 0xc8]
or rbx, rbx
je 0x140032088
mov rax, qword [rsp + 0xd0]
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x40], r14
mov qword [rsp + 0x48], rax
cmp rax, 4
jae 0x140031ac2
cmp rax, 3
je 0x140031afa
cmp rax, 2
je 0x140031b3b
cmp rax, 1
jne 0x140031b62
cmp word [rbx], 0
jne 0x140031b62
jmp 0x140031f3b
movabs rcx, 0x5c003f003f005c
lea rdx, [rcx + 0x1d0000]
cmp rdx, qword [rbx]
je 0x140031f3b
cmp rcx, qword [rbx]
je 0x140031f3b
cmp rax, 0xf8
jae 0x140031b62
cmp word [rbx + 2], 0x3a
jne 0x140031b3b
movzx eax, word [rbx + 4]
jmp 0x140031b0a
cmp word [rbx + 2], 0x3a
jne 0x140031b3b
movzx eax, word [rbx + 4]
test ax, ax
je 0x140031b2a
cmp ax, 0x2f
je 0x140031b18
movzx eax, ax
cmp eax, 0x5c
jne 0x140031b3b
movzx eax, word [rbx]
cmp eax, 0x2f
je 0x140031b3e
cmp eax, 0x5c
je 0x140031b3e
jmp 0x140031f3b
movzx eax, word [rbx]
cmp eax, 0x2f
je 0x140031b3b
cmp eax, 0x5c
jne 0x140031f3b
movzx eax, word [rbx]
cmp ax, 0x5c
je 0x140031b4c
movzx eax, ax
cmp eax, 0x2f
jne 0x140031b62
movzx eax, word [rbx + 2]
cmp eax, 0x2f
je 0x140031f3b
cmp eax, 0x5c
je 0x140031f3b
mov qword [rsp + 0xa0], r14
mov qword [rsp + 0x58], rbx
mov qword [rsp + 0x60], rdi
mov qword [rsp + 0x70], 2
xorps xmm0, xmm0
movups xmmword [rsp + 0x78], xmm0
mov ebp, 0x200
mov eax, 2
mov qword [rsp + 0x68], rax
sub eax, eax
mov qword [rsp + 0x50], rax
mov edi, 0xffffffff
xor r14d, r14d
sub esi, esi
cmp rbp, 0x201
jae 0x140031be0
jmp 0x140031bbf
jae 0x140031c96
cmp rbp, 0x201
jae 0x140031be0
mov ebx, 0x200
lea r12, [rsp + 0xc0]
mov r15, rbp
jmp 0x140031c33
sub rbp, rsi
sub r14, rsi
cmp r14, rbp
jae 0x140031c0f
lea rcx, [rsp + 0x70]
push rsi
nop
pop rdx
mov r8, rbp
call fcn.14003a9f0
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0x68], rax
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x50], rax
mov r14, qword [rsp + 0x50]
cmp r14, rdi
mov esi, 0xffffffff
cmovb rsi, r14
mov qword [rsp + 0x80], rsi
mov rbx, rsi
mov r12, qword [rsp + 0x68]
mov r15, rsi
sub ecx, ecx
call sub.kernel32.dll_SetLastError
mov rcx, qword [rsp + 0x58]
mov edx, r15d
mov r8, r12
xor r9d, r9d
call sub.kernel32.dll_GetFullPathNameW
mov r13d, eax
or eax, eax
jne 0x140031c5d
call sub.kernel32.dll_GetLastError
or eax, eax
jne 0x140031cdb
mov ebp, r13d
cmp r15, rbp
jne 0x140031bb0
call sub.kernel32.dll_GetLastError
cmp eax, 0x7a
jne 0x1400321a5
add r15, r15
cmp r15, rdi
cmovae r15, rdi
mov rbp, r15
cmp rbp, 0x201
jb 0x140031bbf
jmp 0x140031be0
cmp rbx, rbp
jb 0x1400321bf
mov qword [rsp + 0x48], 0
cmp r13d, 2
mov r14, qword [rsp + 0xa0]
jbe 0x140031d06
movzx eax, word [r12 + 2]
cmp eax, 0x3a
jne 0x140031d0f
cmp word [r12 + 4], 0x5c
jne 0x140031d0f
mov ebx, 4
lea r13, str.__UNC_
jmp 0x140031d8c
call sub.kernel32.dll_GetLastError
mov r14d, eax
shl r14, 0x20
or r14, 2
mov rdi, qword [rsp + 0x60]
mov rbx, qword [rsp + 0x58]
cmp qword [rsp + 0x50], 0
jne 0x140031efb
jmp 0x140031f0a
jne 0x140031d83
movzx ecx, word [r12]
jmp 0x140031d5b
movzx ecx, word [r12]
cmp r13d, 3
jbe 0x140031d5b
lea r13, str.combase.dll
cmp cx, 0x5c
jne 0x140031d8a
cmp eax, 0x3f
je 0x140031d8a
cmp eax, 0x5c
jne 0x140031d67
movzx eax, word [r12 + 4]
cmp eax, 0x3f
je 0x140032193
cmp eax, 0x2e
jne 0x140031d6d
cmp word [r12 + 6], 0x5c
jne 0x140031d6d
add rbp, 0xfffffffffffffffc
add r12, 8
jmp 0x140031cca
cmp cx, 0x5c
jne 0x140031d83
movzx eax, word [r12 + 2]
cmp ax, 0x5c
jne 0x140031d83
add rbp, 0xfffffffffffffffe
add r12, 4
mov ebx, 8
lea r13, [0x1400a16a0]
jmp 0x140031d8c
lea r13, str.combase.dll
sub ebx, ebx
lea rdi, [rbx + rbp]
inc rdi
cmp rdi, r14
jbe 0x140031e22
xor edx, edx
push rdi
nop
pop rax
shr rax, 0x3e
sete dl
lea r8, [rdi + rdi]
add rdx, rdx
test r14, r14
je 0x140031ddb
lea rax, [r14 + r14]
mov rcx, qword [rsp + 0x58]
mov qword [rsp + 0x88], rcx
mov qword [rsp + 0x90], 2
mov qword [rsp + 0x98], rax
jmp 0x140031de7
mov qword [rsp + 0x90], 0
lea rcx, [rsp + 0xa8]
lea r9, [rsp + 0x88]
call fcn.1400097f0
cmp qword [rsp + 0xa8], 0
mov rcx, qword [rsp + 0xb0]
je 0x140031e53
movabs rax, 0x8000000000000001
cmp rcx, rax
jne 0x1400321d3
cmp rbx, r14
jbe 0x140031e47
lea rcx, [rsp + 0x38]
xor edx, edx
mov r8, rbx
call fcn.14003a9f0
mov rsi, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x40]
jmp 0x140031e5f
xor esi, esi
mov rdi, r14
mov rcx, qword [rsp + 0x58]
jmp 0x140031e5f
mov qword [rsp + 0x38], rcx
mov qword [rsp + 0x40], rdi
xor esi, esi
lea r8, [rbx + rbx]
mov r14, rcx
lea rcx, [rcx + rsi*2]
mov rdx, r13
call sub.msvcrt.dll_memcpy
add rsi, rbx
mov qword [rsp + 0x48], rsi
sub rdi, rsi
cmp rdi, rbp
jae 0x140031ea3
lea rcx, [rsp + 0x38]
nop
push rsi
pop rdx
mov r8, rbp
call fcn.14003a9f0
mov rdi, qword [rsp + 0x60]
mov r14, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x48]
jmp 0x140031ea8
mov rdi, qword [rsp + 0x60]
lea r8, [rbp*2]
lea rcx, [r14 + rsi*2]
mov rdx, r12
call sub.msvcrt.dll_memcpy
add rsi, rbp
mov qword [rsp + 0x48], rsi
cmp rsi, qword [rsp + 0x40]
jne 0x140031edd
lea rcx, [rsp + 0x38]
nop
push rsi
pop rdx
call fcn.14003a870
mov rsi, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x38]
mov word [rbx + rsi*2], 0
inc rsi
mov qword [rsp + 0x48], rsi
xor r14d, r14d
cmp qword [rsp + 0x50], 0
je 0x140031f0a
mov edx, 2
mov rcx, qword [rsp + 0x68]
call fcn.140003720
or r14, r14
je 0x140031f2d
cmp qword [rsp + 0x40], 0
je 0x140032088
mov edx, 2
push rbx
nop
pop rcx
call fcn.140003720
jmp 0x140032088
mov r14, qword [rsp + 0x40]
or rbx, rbx
je 0x140032088
mov r15, r14
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 3
push rbx
pop rcx
nop
mov edx, 0x80000000
mov r8d, 7
xor r9d, r9d
call sub.kernel32.dll_CreateFileW
push rax
pop rsi
nop
mov r14, rax
cmp rax, 0xffffffffffffffff
jne 0x140031f89
call sub.kernel32.dll_GetLastError
mov r14d, eax
shl r14, 0x20
or r14, 2
or r15, r15
je 0x140031f9b
mov edx, 2
mov rcx, rbx
call fcn.140003720
cmp rsi, 0xffffffffffffffff
je 0x140032088
xorps xmm0, xmm0
movaps xmmword [rsp + 0xe0], xmm0
movaps xmmword [rsp + 0xd0], xmm0
movaps xmmword [rsp + 0xc0], xmm0
mov dword [rsp + 0xf0], 0
lea rdx, [rsp + 0xc0]
mov rcx, r14
call sub.kernel32.dll_GetFileInformationByHandle
or eax, eax
je 0x1400320ab
test byte [rsp + 0xc1], 4
je 0x14003201c
mov qword [rsp + 0x88], 0
lea r8, [rsp + 0x88]
mov rcx, r14
mov edx, 9
mov r9d, 8
call sub.kernel32.dll_GetFileInformationByHandleEx
test eax, eax
je 0x1400320ab
mov r15d, dword [rsp + 0xe0]
mov ebx, dword [rsp + 0xe4]
test r14, r14
je 0x1400320e2
mov qword [rsp + 0xc0], 0
call sub.kernel32.dll_GetCurrentProcess
mov dword [rsp + 0x30], 2
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
lea r9, [rsp + 0xc0]
mov rcx, rax
mov rdx, r14
mov r8, rax
call sub.kernel32.dll_DuplicateHandle
or eax, eax
je 0x14003216d
mov r12, rdi
mov rsi, qword [rsp + 0xc0]
jmp 0x1400320e7
mov rcx, r14
call fcn.140049fc0
mov qword [rdi], 0
add rsp, 0x4c8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
call sub.kernel32.dll_GetLastError
shl rax, 0x20
or rax, 2
push rax
pop rcx
nop
call fcn.140049fc0
mov qword [rdi], 0
mov rcx, r14
add rsp, 0x4c8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp sub.kernel32.dll_CloseHandle
mov r12, rdi
xor esi, esi
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
mov rcx, rsi
xor edx, edx
mov r8d, 2
xor r9d, r9d
call sub.kernel32.dll_CreateFileMappingA
test rax, rax
je 0x14003215b
mov rdi, rax
shl r15, 0x20
or r15, rbx
mov qword [rsp + 0x20], r15
push rax
pop rcx
nop
mov edx, 4
xor r8d, r8d
xor r9d, r9d
call sub.kernel32.dll_MapViewOfFile
push rax
nop
pop rbx
push rdi
nop
pop rcx
call sub.kernel32.dll_CloseHandle
or rbx, rbx
je 0x14003215b
mov qword [r12 + 8], rsi
mov qword [r12 + 0x10], rbx
mov qword [r12 + 0x18], r15
mov qword [r12], 1
jmp 0x140032186
mov qword [r12], 0
push rsi
pop rcx
nop
call sub.kernel32.dll_CloseHandle
jmp 0x140032186
call sub.kernel32.dll_GetLastError
shl rax, 0x20
lea rcx, [rax + 2]
call fcn.140049fc0
mov qword [rdi], 0
mov rcx, r14
call sub.kernel32.dll_CloseHandle
jmp 0x140032097
cmp word [r12 + 6], 0x5c
jne 0x140031d6d
jmp 0x140031d8a
lea rcx, str.internal_error:_entered_unreachable_codeN
lea r8, str.library_std_src_syswindowsmod.rsstrings_passed_to_WinAPI_cannot_contain_NULs
mov edx, 0x28
call fcn.140005aa0
jmp 0x1400321ec
lea r8, str.library_std_src_syswindowsmod.rsstrings_passed_to_WinAPI_cannot_contain_NULs
mov rcx, rbp
mov rdx, rbx
call fcn.1400065c0
jmp 0x1400321ec
or rcx, rcx
jne 0x1400321df
call fcn.1400030b0
jmp 0x1400321ec
mov rdx, qword [rsp + 0xb8]
call fcn.140003300
ud2