Function at 0x140056530
Capabilities:
Read file via mapping

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x100
mov r12, qword [0x1400f6380]
mov rax, qword [r12]
xor rax, rsp
mov qword [rsp + 0xf8], rax
mov ebx, 0xc000000d
test r8d, r8d
jne 0x1400566a6
mov ebp, dword [rsp + 0x160]
cmp ebp, 0x4000
ja 0x1400566a6
mov r15, r9
mov rsi, rdx
mov rdi, rcx
test rcx, rcx
je 0x140056590
cmp word [rdi], 0
je 0x1400566a6
call fcn.1400614a0
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x10]
mov rcx, rax
call fcn.14006a090
mov ebx, 0xc0000022
test al, al
je 0x1400566a6
call fcn.1400615c0
test rax, rax
je 0x1400566a6
mov r14, rax
xorps xmm0, xmm0
movaps xmmword [rsp + 0x90], xmm0
mov dword [rsp + 0x20], ebp
mov qword [rsp + 0x28], 0
mov rcx, 0xffffffffffffffff
xor edx, edx
mov r8d, 0x8000004
xor r9d, r9d
call qword [sym.imp.KERNEL32.dll_CreateFileMappingW]
lea rcx, [rsp + 0x90]
mov rdx, rax
call fcn.14001f570
mov rcx, qword [rsp + 0x90]
lea rax, [rcx + 1]
cmp rax, 2
jb 0x14005663e
mov eax, ebp
mov qword [rsp + 0x20], rax
mov edx, 6
xor r8d, r8d
xor r9d, r9d
call qword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov qword [rsp + 0x98], rax
mov rcx, qword [rsp + 0x90]
mov ebx, 0xc000000d
add rcx, 1
cmp rcx, 2
jae 0x1400566d2
mov rcx, qword [rsp + 0x98]
test rcx, rcx
je 0x140056664
call qword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
mov rsi, qword [rsp + 0x90]
lea rax, [rsi + 1]
cmp rax, 2
jb 0x1400566a6
mov rdi, qword [rsp + 0x138]
call fcn.14001f300
lea rdx, [rsp + 0x90]
mov rcx, rsi
mov r8, rdi
mov r9, rax
call fcn.1400418f0
mov rcx, qword [rsp + 0x90]
call fcn.140041880
mov rax, qword [rsp + 0xf8]
xor rax, rsp
mov rcx, qword [r12]
cmp rcx, rax
jne 0x1400569b0
mov eax, ebx
add rsp, 0x100
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
cmp qword [rsp + 0x98], 0
je 0x140056651
xorps xmm0, xmm0
movaps xmmword [rsp + 0x70], xmm0
mov qword [rsp + 0x80], 0
mov qword [rsp + 0x68], 0
test rdi, rdi
je 0x14005672e
movzx eax, word [rdi]
test rax, rax
je 0x14005673c
mov rsi, qword [rdi + 8]
mov rdi, rax
shr rdi, 1
cmp ax, 0x15
ja 0x140056746
and al, 0xfe
mov byte [rsp + 0xa0], al
lea rax, [rsp + 0xa2]
jmp 0x140056771
mov qword [rsp + 0x68], rsi
mov bl, 1
xor edi, edi
jmp 0x1400568c5
mov ebx, 0xc000000d
jmp 0x140056651
lea ebx, [rdi + 8]
and ebx, 0xfffffff8
lea rcx, [rbx + rbx]
call fcn.1400c03b0
mov qword [rsp + 0xb0], rax
or rbx, 1
mov qword [rsp + 0xa0], rbx
mov qword [rsp + 0xa8], rdi
test di, di
je 0x140056887
lea rcx, [rsi + rdi*2]
lea r9, [rdi + rdi]
add r9, 0xfffffffffffffffe
cmp r9, 0x1e
jb 0x140056874
cmp rax, rcx
jae 0x1400567a2
lea rdx, [rax + rdi*2]
cmp rsi, rdx
jb 0x140056874
shr r9, 1
add r9, 1
mov r8, r9
and r8, 0xfffffffffffffff0
lea rdx, [r8 - 0x10]
mov rdi, rdx
shr rdi, 4
add rdi, 1
mov r10d, edi
and r10d, 3
cmp rdx, 0x30
jae 0x1400567d0
xor edx, edx
jmp 0x140056831
and rdi, 0xfffffffffffffffc
neg rdi
xor edx, edx
movups xmm0, xmmword [rsi + rdx*2]
movups xmm1, xmmword [rsi + rdx*2 + 0x10]
movups xmmword [rax + rdx*2], xmm0
movups xmmword [rax + rdx*2 + 0x10], xmm1
movups xmm0, xmmword [rsi + rdx*2 + 0x20]
movups xmm1, xmmword [rsi + rdx*2 + 0x30]
movups xmmword [rax + rdx*2 + 0x20], xmm0
movups xmmword [rax + rdx*2 + 0x30], xmm1
movups xmm0, xmmword [rsi + rdx*2 + 0x40]
movups xmm1, xmmword [rsi + rdx*2 + 0x50]
movups xmmword [rax + rdx*2 + 0x40], xmm0
movups xmmword [rax + rdx*2 + 0x50], xmm1
movups xmm0, xmmword [rsi + rdx*2 + 0x60]
movups xmm1, xmmword [rsi + rdx*2 + 0x70]
movups xmmword [rax + rdx*2 + 0x60], xmm0
movups xmmword [rax + rdx*2 + 0x70], xmm1
add rdx, 0x40
add rdi, 4
jne 0x1400567d9
test r10, r10
je 0x140056867
lea rdi, [rax + rdx*2]
add rdi, 0x10
lea rdx, [rsi + rdx*2]
add rdx, 0x10
shl r10, 5
xor ebx, ebx
movups xmm0, xmmword [rdx + rbx - 0x10]
movups xmm1, xmmword [rdx + rbx]
movups xmmword [rdi + rbx - 0x10], xmm0
movups xmmword [rdi + rbx], xmm1
add rbx, 0x20
cmp r10, rbx
jne 0x14005684c
lea rax, [rax + r8*2]
cmp r9, r8
je 0x140056887
lea rsi, [rsi + r8*2]
movzx edx, word [rsi]
mov word [rax], dx
add rsi, 2
add rax, 2
cmp rcx, rsi
jne 0x140056874
mov word [rax], 0
test byte [rsp + 0x70], 1
je 0x1400568a0
mov rcx, qword [rsp + 0x80]
call fcn.1400c0490
mov rdi, qword [rsp + 0xb0]
mov qword [rsp + 0x80], rdi
movups xmm0, xmmword [rsp + 0xa0]
movaps xmmword [rsp + 0x70], xmm0
test byte [rsp + 0x70], 1
sete bl
xorps xmm0, xmm0
movaps xmmword [rsp + 0xe0], xmm0
movaps xmmword [rsp + 0xd0], xmm0
movaps xmmword [rsp + 0xc0], xmm0
movaps xmmword [rsp + 0xb0], xmm0
movaps xmmword [rsp + 0xa0], xmm0
mov qword [rsp + 0xf0], 0
lea rsi, [rsp + 0x58]
mov rcx, rsi
mov rdx, r14
call fcn.1400654d0
lea rax, [rsp + 0x72]
test bl, bl
cmove rax, rdi
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0x48], rax
mov dword [rsp + 0x44], ebp
lea rax, [rsp + 0xa0]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x44]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x48]
mov qword [rsp + 0x20], rax
lea r8, [rsp + 0x50]
lea r9, [rsp + 0x68]
mov rcx, rsi
mov edx, 0x1b
call fcn.140058140
mov ebx, 0xc0000022
test eax, eax
jne 0x140056993
mov ebx, dword [rsp + 0xa8]
test ebx, ebx
jne 0x140056993
mov rdx, qword [rsp + 0x98]
mov r8d, ebp
mov rcx, r15
call sub.ntdll.dll_memcpy
mov ebx, dword [rsp + 0xa8]
test byte [rsp + 0x70], 1
je 0x140056651
mov rcx, qword [rsp + 0x80]
call fcn.1400c0490
jmp 0x140056651
call fcn.140072349
int3