Function at 0x140017ea0
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
mov r12, rcx
lea rcx, [rsp + 0xc0]
call fcn.140015660
mov rsi, qword [rsp + 0xc0]
mov rbp, qword [rsp + 0xc8]
test rbp, rbp
je 0x140018384
mov rax, qword [rsp + 0xd0]
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x48], rbp
cmp rax, 4
jb 0x140017f32
movabs rcx, 0x5c003f003f005c
lea rdx, [rcx + 0x1d0000]
cmp rdx, qword [rbp]
je 0x140018386
cmp rcx, qword [rbp]
je 0x140018386
cmp rax, 0xf8
jae 0x140017fbb
cmp word [rbp + 2], 0x3a
jne 0x140017f93
movzx eax, word [rbp + 4]
jmp 0x140017f60
cmp rax, 3
je 0x140017f50
cmp rax, 2
je 0x140017f93
cmp rax, 1
jne 0x140017fbb
cmp word [rbp], 0
jne 0x140017fbb
jmp 0x140018386
cmp word [rbp + 2], 0x3a
jne 0x140017f93
movzx eax, word [rbp + 4]
test ax, ax
je 0x140017f81
cmp ax, 0x2f
je 0x140017f6e
movzx eax, ax
cmp eax, 0x5c
jne 0x140017f93
movzx eax, word [rbp]
cmp eax, 0x2f
je 0x140017f97
cmp eax, 0x5c
je 0x140017f97
jmp 0x140018386
movzx eax, word [rbp]
cmp eax, 0x2f
je 0x140017f93
cmp eax, 0x5c
jne 0x140018386
movzx eax, word [rbp]
cmp ax, 0x5c
je 0x140017fa5
movzx eax, ax
cmp eax, 0x2f
jne 0x140017fbb
movzx eax, word [rbp + 2]
cmp eax, 0x2f
je 0x140018386
cmp eax, 0x5c
je 0x140018386
mov qword [rsp + 0x58], rbp
mov qword [rsp + 0x60], rsi
mov qword [rsp + 0xa0], r12
mov qword [rsp + 0x68], 0
mov qword [rsp + 0x70], 2
mov qword [rsp + 0x78], 0
mov r15d, 0x200
mov eax, 2
mov qword [rsp + 0x80], rax
xor ebx, ebx
xor r12d, r12d
xor ebp, ebp
cmp r15, 0x201
jae 0x140018040
jmp 0x14001801f
jae 0x1400180ff
cmp r15, 0x201
jae 0x140018040
lea rdi, [rsp + 0xc0]
mov r14d, 0x200
mov rsi, r15
jmp 0x140018094
sub r15, rbp
sub r12, rbp
cmp r12, r15
jae 0x14001806d
lea rcx, [rsp + 0x68]
mov rdx, rbp
mov r8, r15
call fcn.140015b30
mov rbx, qword [rsp + 0x68]
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0x80], rax
mov eax, 0xffffffff
cmp rbx, rax
mov ebp, 0xffffffff
cmovb rbp, rbx
mov qword [rsp + 0x78], rbp
mov r12, rbx
mov rdi, qword [rsp + 0x80]
mov r14, rbp
mov rsi, rbp
xor ecx, ecx
call sub.KERNEL32.dll_SetLastError
mov rcx, qword [rsp + 0x58]
mov edx, esi
mov r8, rdi
xor r9d, r9d
call sub.KERNEL32.dll_GetFullPathNameW
mov r13d, eax
test eax, eax
jne 0x1400180c1
call sub.KERNEL32.dll_GetLastError
test eax, eax
jne 0x140018143
mov r15d, r13d
cmp rsi, r15
jne 0x140018010
call sub.KERNEL32.dll_GetLastError
cmp eax, 0x7a
jne 0x14001867c
add rsi, rsi
mov eax, 0xffffffff
cmp rsi, rax
cmovae rsi, rax
mov r15, rsi
cmp r15, 0x201
jb 0x14001801f
jmp 0x140018040
cmp r14, r15
jb 0x140018696
mov qword [rsp + 0x50], 0
cmp r13d, 2
jbe 0x140018157
movzx eax, word [rdi + 2]
cmp eax, 0x3a
mov rsi, qword [rsp + 0x60]
mov rbx, qword [rsp + 0x58]
jne 0x140018165
cmp word [rdi + 4], 0x5c
jne 0x140018165
mov r13d, 4
lea r14, [0x14007ec48]
jmp 0x1400181e7
call sub.KERNEL32.dll_GetLastError
mov esi, eax
shl rsi, 0x20
or rsi, 2
jmp 0x14001833c
mov rsi, qword [rsp + 0x60]
mov rbx, qword [rsp + 0x58]
je 0x1400181b6
jmp 0x1400181dd
cmp r13d, 4
jb 0x1400181b6
lea r14, [0x14007cd10]
cmp word [rdi], 0x5c
jne 0x1400181e4
cmp eax, 0x3f
je 0x140018192
cmp eax, 0x5c
jne 0x1400181c0
movzx eax, word [rdi + 4]
cmp eax, 0x2e
je 0x1400181a2
cmp eax, 0x3f
je 0x140018199
jmp 0x1400181b6
cmp word [rdi + 4], 0x3f
jne 0x1400181b6
cmp word [rdi + 6], 0x5c
jne 0x1400181b6
jmp 0x1400181e4
cmp word [rdi + 6], 0x5c
jne 0x1400181b6
add rdi, 8
add r15, 0xfffffffffffffffc
jmp 0x140018131
cmp word [rdi], 0x5c
jne 0x1400181dd
movzx eax, word [rdi + 2]
cmp ax, 0x5c
jne 0x1400181dd
add rdi, 4
add r15, 0xfffffffffffffffe
mov r13d, 8
lea r14, [0x14007ec50]
jmp 0x1400181e7
lea r14, [0x14007cd10]
xor r13d, r13d
lea rbp, [r15 + r13]
inc rbp
cmp rbp, rsi
jbe 0x140018279
mov rdx, rbp
add rdx, rbp
test rsi, rsi
je 0x140018224
lea rax, [rsi + rsi]
mov qword [rsp + 0x88], rbx
mov qword [rsp + 0x90], rax
mov qword [rsp + 0x98], 2
jmp 0x140018230
mov qword [rsp + 0x98], 0
lea rcx, [rsp + 0xa8]
lea r9, [rsp + 0x88]
mov r8d, 2
call fcn.140015aa0
cmp qword [rsp + 0xa8], 0
mov rcx, qword [rsp + 0xb0]
je 0x1400182a6
mov rdx, qword [rsp + 0xb8]
movabs rax, 0x8000000000000001
cmp rdx, rax
jne 0x1400186aa
cmp r13, rsi
jbe 0x14001829e
lea rcx, [rsp + 0x40]
xor edx, edx
mov r8, r13
call fcn.140015b30
mov r12, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x48]
jmp 0x1400182b6
xor r12d, r12d
mov rbp, rsi
jmp 0x1400182b6
mov qword [rsp + 0x48], rcx
mov qword [rsp + 0x40], rbp
xor r12d, r12d
mov rbx, rcx
mov r8, r13
add r8, r13
lea rcx, [rbx + r12*2]
mov rdx, r14
call sub.msvcrt.dll_memcpy
add r12, r13
mov qword [rsp + 0x50], r12
mov rax, rbp
sub rax, r12
cmp rax, r15
jae 0x1400182fa
lea rcx, [rsp + 0x40]
mov rdx, r12
mov r8, r15
call fcn.140015b30
mov r12, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x48]
lea r8, [r15 + r15]
lea rcx, [rbx + r12*2]
mov rdx, rdi
call sub.msvcrt.dll_memcpy
add r12, r15
mov qword [rsp + 0x50], r12
cmp r12, rbp
jne 0x14001832e
lea rcx, [rsp + 0x40]
mov rdx, rbp
call fcn.1400159e0
mov rbx, qword [rsp + 0x48]
mov r12, qword [rsp + 0x50]
mov word [rbx + r12*2], 0
xor esi, esi
mov rbx, qword [rsp + 0x68]
test rbx, rbx
mov r12, qword [rsp + 0xa0]
je 0x140018358
mov rcx, qword [rsp + 0x70]
mov edx, 2
call fcn.14000aa90
test rsi, rsi
je 0x140018558
cmp qword [rsp + 0x40], 0
je 0x140018384
mov rcx, qword [rsp + 0x48]
mov edx, 2
call fcn.14000aa90
xor ebp, ebp
test rbp, rbp
jne 0x14001838f
jmp 0x1400184e7
xor ebp, ebp
test rbp, rbp
je 0x1400184e7
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 3
mov rcx, rbp
mov edx, 0x80000000
mov r8d, 7
xor r9d, r9d
call sub.KERNEL32.dll_CreateFileW
mov rdi, rax
mov rbx, rax
cmp rax, 0xffffffffffffffff
jne 0x1400183d9
call sub.KERNEL32.dll_GetLastError
mov ebx, eax
shl rbx, 0x20
or rbx, 2
test rsi, rsi
je 0x1400183eb
mov edx, 2
mov rcx, rbp
call fcn.14000aa90
cmp rdi, 0xffffffffffffffff
je 0x1400184e4
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, rbx
call sub.KERNEL32.dll_GetFileInformationByHandle
test eax, eax
je 0x140018530
test byte [rsp + 0xc1], 4
je 0x14001846c
mov qword [rsp + 0x88], 0
lea r8, [rsp + 0x88]
mov rcx, rbx
mov edx, 9
mov r9d, 8
call sub.KERNEL32.dll_GetFileInformationByHandleEx
test eax, eax
je 0x140018530
mov r15d, dword [rsp + 0xe0]
mov r14d, dword [rsp + 0xe4]
test rbx, rbx
je 0x140018570
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, rbx
mov r8, rax
call sub.KERNEL32.dll_DuplicateHandle
test eax, eax
je 0x1400185c2
mov rdi, qword [rsp + 0xc0]
xor eax, eax
test rax, rax
jne 0x140018579
jmp 0x1400185db
mov rsi, rbx
mov eax, esi
and eax, 3
cmp eax, 1
jne 0x140018523
lea rdi, [rsi - 1]
mov rcx, qword [rsi - 1]
mov rax, qword [rsi + 7]
call qword [rax]
mov rax, qword [rsi + 7]
cmp qword [rax + 8], 0
je 0x140018516
mov rdx, qword [rax + 0x10]
mov rcx, qword [rdi]
call fcn.14000aa90
mov edx, 8
mov rcx, rdi
call fcn.14000aa90
mov qword [r12], 0
jmp 0x140018667
call sub.KERNEL32.dll_GetLastError
mov qword [r12], 0
mov rcx, rbx
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 rsi, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
test rbp, rbp
jne 0x14001838f
jmp 0x1400184e7
xor eax, eax
xor edi, edi
test rax, rax
je 0x1400185db
mov eax, edi
and eax, 3
cmp eax, 1
jne 0x1400185b5
lea rsi, [rdi - 1]
mov rcx, qword [rdi - 1]
mov rax, qword [rdi + 7]
call qword [rax]
mov rax, qword [rdi + 7]
cmp qword [rax + 8], 0
je 0x1400185a8
mov rdx, qword [rax + 0x10]
mov rcx, qword [rsi]
call fcn.14000aa90
mov edx, 8
mov rcx, rsi
call fcn.14000aa90
mov qword [r12], 0
jmp 0x14001865f
call sub.KERNEL32.dll_GetLastError
mov edi, eax
shl rdi, 0x20
or rdi, 2
mov eax, 1
test rax, rax
jne 0x140018579
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
mov rcx, rdi
xor edx, edx
mov r8d, 2
xor r9d, r9d
call sub.KERNEL32.dll_CreateFileMappingA
test rax, rax
je 0x14001864f
mov rsi, rax
shl r15, 0x20
or r15, r14
mov qword [rsp + 0x20], r15
mov rcx, rax
mov edx, 4
xor r8d, r8d
xor r9d, r9d
call sub.KERNEL32.dll_MapViewOfFile
mov r14, rax
mov rcx, rsi
call sub.KERNEL32.dll_CloseHandle
test r14, r14
je 0x14001864f
mov qword [r12 + 8], rdi
mov qword [r12 + 0x10], r14
mov qword [r12 + 0x18], r15
mov qword [r12], 1
jmp 0x14001865f
mov qword [r12], 0
mov rcx, rdi
call sub.KERNEL32.dll_CloseHandle
mov rcx, rbx
call sub.KERNEL32.dll_CloseHandle
nop
add rsp, 0x4c8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rcx, [0x14007d23b]
lea r8, str.library_std_src_syswindowsmod.rs
mov edx, 0x28
call fcn.140004ac0
jmp 0x1400186bb
lea r8, str.library_std_src_syswindowsmod.rs
mov rcx, r15
mov rdx, r14
call fcn.140004630
jmp 0x1400186bb
test rdx, rdx
jne 0x1400186b6
call fcn.140002ef0
jmp 0x1400186bb
call fcn.140002f40
ud2