Function at 0x6a569210
Capabilities:
Read file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x38
mov edx, 0xfc1
xor ebx, ebx
movabs r13, 0x3fffffffffff0000
mov r12, rcx
mov rcx, qword [0x6a59e7c0]
call fcn.6a55f100
mov r8d, 0xfb1
xor edx, edx
lea rdi, [rax + 0x10]
mov qword [rax + 8], 1
mov rbp, rax
lea rsi, [rbp + 0x20]
mov rcx, rdi
call sub.msvcrt.dll_memset
mov rax, qword [0x6a59e7c0]
movdqa xmm0, xmmword [0x6a59df20]
movups xmmword [rbp + 0x10], xmm0
mov qword [rsp + 0x28], rax
nop dword [rax + rax]
mov r9, r12
mov r8d, 0xfa0
mov edx, 1
mov rcx, rsi
call sub.msvcrt.dll_fread
cmp rax, 0xfa0
je 0x6a5694c0
mov rcx, r12
mov r14, rax
call sub.msvcrt.dll_ferror
test eax, eax
jne 0x6a569a08
mov rdx, r14
mov rcx, rdi
call fcn.6a560ff0
test rax, rax
mov rsi, rax
je 0x6a5699c6
mov rdx, qword [rsi]
mov rcx, rbx
call fcn.6a561380
mov r8, qword [rsi]
lea r11, [rsi + 0x10]
mov rdx, qword [rax]
test r8, r8
lea rcx, [rax + rdx + 0x10]
js 0x6a5694a6
lea rdx, [rax + rdx + 0x20]
cmp r11, rdx
lea rdx, [rsi + 0x20]
setae r9b
cmp rcx, rdx
setae dl
or r9b, dl
je 0x6a5699e0
cmp r8, 0xe
jbe 0x6a5699e0
lea r10, [r8 + 1]
xor edx, edx
mov r9, r10
and r9, 0xfffffffffffffff0
nop
nop word cs:[rax + rax]
movdqu xmm3, xmmword [rsi + rdx + 0x10]
movups xmmword [rcx + rdx], xmm3
add rdx, 0x10
cmp rdx, r9
jne 0x6a569330
mov rdx, r10
and rdx, 0xfffffffffffffff0
cmp rdx, r10
je 0x6a5694a0
movzx r9d, byte [rsi + rdx + 0x10]
lea r10, [rdx + 1]
cmp rdx, r8
mov byte [rcx + rdx], r9b
jge 0x6a5694a0
movzx r9d, byte [r11 + rdx + 1]
cmp r10, r8
mov byte [rcx + rdx + 1], r9b
lea r9, [rdx + 2]
jge 0x6a5694a0
movzx r10d, byte [rsi + rdx + 0x12]
cmp r8, r9
mov byte [rcx + rdx + 2], r10b
lea r10, [rdx + 3]
jle 0x6a5694a0
movzx r9d, byte [rsi + rdx + 0x13]
cmp r8, r10
mov byte [rcx + rdx + 3], r9b
lea r9, [rdx + 4]
jle 0x6a5694a0
movzx r10d, byte [rsi + rdx + 0x14]
cmp r8, r9
mov byte [rcx + rdx + 4], r10b
lea r10, [rdx + 5]
jle 0x6a5694a0
movzx r9d, byte [rsi + rdx + 0x15]
cmp r8, r10
mov byte [rcx + rdx + 5], r9b
lea r9, [rdx + 6]
jle 0x6a5694a0
movzx r10d, byte [rsi + rdx + 0x16]
cmp r8, r9
mov byte [rcx + rdx + 6], r10b
lea r10, [rdx + 7]
jle 0x6a5694a0
movzx r9d, byte [rsi + rdx + 0x17]
cmp r8, r10
mov byte [rcx + rdx + 7], r9b
lea r9, [rdx + 8]
jle 0x6a5694a0
movzx r10d, byte [rsi + rdx + 0x18]
cmp r8, r9
mov byte [rcx + rdx + 8], r10b
lea r10, [rdx + 9]
jle 0x6a5694a0
movzx r9d, byte [rsi + rdx + 0x19]
cmp r8, r10
mov byte [rcx + rdx + 9], r9b
lea r9, [rdx + 0xa]
jle 0x6a5694a0
movzx r10d, byte [rsi + rdx + 0x1a]
lea r11, [rdx + 0xb]
cmp r8, r9
mov byte [rcx + rdx + 0xa], r10b
jle 0x6a5694a0
movzx r9d, byte [rsi + rdx + 0x1b]
lea r10, [rdx + 0xc]
cmp r8, r11
mov byte [rcx + rdx + 0xb], r9b
jle 0x6a5694a0
movzx r9d, byte [rsi + rdx + 0x1c]
cmp r8, r10
mov byte [rcx + rdx + 0xc], r9b
lea r9, [rdx + 0xd]
jle 0x6a5694a0
movzx r10d, byte [rsi + rdx + 0x1d]
cmp r8, r9
mov byte [rcx + rdx + 0xd], r10b
jle 0x6a5694a0
movzx r8d, byte [rsi + rdx + 0x1e]
mov byte [rcx + rdx + 0xe], r8b
nop dword [rax + rax]
nop word cs:[rax + rax]
mov rdx, qword [rax]
mov r8, qword [rsi]
add rdx, r8
mov qword [rax], rdx
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
cmp rbp, 0xfffffffffffffff0
je 0x6a569900
test rbx, rbx
mov rdx, qword [rdi]
je 0x6a569940
movabs rcx, 0x3fffffffffffffff
mov rax, qword [rbx]
mov r9, qword [rbx + 8]
lea r8, [rdx + rax]
and rcx, r9
cmp r8, rcx
jle 0x6a569727
test rcx, rcx
mov r14d, 4
je 0x6a569511
lea r14, [rcx + rcx]
test r9, r13
je 0x6a569511
add r14, rcx
sar r14, 1
cmp r14, r8
mov rcx, qword [0x6a59e7c0]
mov r15d, 7
cmovl r14, r8
cmp r14, 7
cmovge r15, r14
lea rdx, [r15 + 0x21]
call fcn.6a55f100
lea r9, [rbx + 0x10]
lea r10, [rax + 0x10]
mov qword [rax + 8], 1
mov qword [r10 + 8], r15
lea rcx, [rax + 0x20]
mov qword [rax + 0x10], 0
mov r8, qword [rbx]
test r8, r8
mov qword [rax + 0x10], r8
js 0x6a569710
lea r11, [rax + 0x30]
mov rdx, rcx
cmp r11, r9
lea r11, [rbx + 0x20]
setbe r15b
cmp rcx, r11
setae r11b
or r15b, r11b
je 0x6a5699a5
cmp r8, 0xe
jbe 0x6a5699a5
lea r11, [r8 + 1]
sub rbx, rax
mov r15, r11
and r15, 0xfffffffffffffff0
lea r15, [rax + r15 + 0x20]
nop
nop word cs:[rax + rax]
movdqu xmm2, xmmword [rdx + rbx - 0x10]
add rdx, 0x10
movups xmmword [rdx - 0x10], xmm2
cmp rdx, r15
jne 0x6a5695b0
mov rdx, r11
and rdx, 0xfffffffffffffff0
cmp r11, rdx
je 0x6a569710
movzx r11d, byte [r9 + rdx]
cmp r8, rdx
mov byte [rax + rdx + 0x20], r11b
lea rax, [rdx + 1]
jle 0x6a569710
movzx r11d, byte [r9 + rdx + 1]
cmp r8, rax
mov byte [rcx + rdx + 1], r11b
lea r11, [rdx + 2]
jle 0x6a569710
movzx eax, byte [r9 + rdx + 2]
cmp r8, r11
mov byte [rcx + rdx + 2], al
lea rax, [rdx + 3]
jle 0x6a569710
movzx r11d, byte [r9 + rdx + 3]
cmp r8, rax
mov byte [rcx + rdx + 3], r11b
lea r11, [rdx + 4]
jle 0x6a569710
movzx eax, byte [r9 + rdx + 4]
cmp r8, r11
mov byte [rcx + rdx + 4], al
lea rax, [rdx + 5]
jle 0x6a569710
movzx r11d, byte [r9 + rdx + 5]
cmp r8, rax
mov byte [rcx + rdx + 5], r11b
lea r11, [rdx + 6]
jle 0x6a569710
movzx eax, byte [r9 + rdx + 6]
cmp r8, r11
mov byte [rcx + rdx + 6], al
lea rax, [rdx + 7]
jle 0x6a569710
movzx r11d, byte [r9 + rdx + 7]
cmp r8, rax
mov byte [rcx + rdx + 7], r11b
lea r11, [rdx + 8]
jle 0x6a569710
movzx eax, byte [r9 + rdx + 8]
cmp r8, r11
mov byte [rcx + rdx + 8], al
lea rax, [rdx + 9]
jle 0x6a569710
movzx r11d, byte [r9 + rdx + 9]
cmp r8, rax
mov byte [rcx + rdx + 9], r11b
lea r11, [rdx + 0xa]
jle 0x6a569710
movzx eax, byte [r9 + rdx + 0xa]
cmp r8, r11
mov byte [rcx + rdx + 0xa], al
lea rax, [rdx + 0xb]
jle 0x6a569710
movzx r11d, byte [r9 + rdx + 0xb]
cmp r8, rax
mov byte [rcx + rdx + 0xb], r11b
lea r11, [rdx + 0xc]
jle 0x6a569710
movzx eax, byte [r9 + rdx + 0xc]
cmp r8, r11
mov byte [rcx + rdx + 0xc], al
lea rax, [rdx + 0xd]
jle 0x6a569710
movzx r11d, byte [r9 + rdx + 0xd]
cmp r8, rax
mov byte [rcx + rdx + 0xd], r11b
jle 0x6a569710
movzx eax, byte [r9 + rdx + 0xe]
mov byte [rcx + rdx + 0xe], al
nop word [rax + rax]
mov qword [r10 + 8], r14
mov rbx, r10
cmp rbp, 0xfffffffffffffff0
je 0x6a569280
mov rdx, qword [rdi]
mov rax, qword [rbx]
lea rcx, [rbx + rax + 0x10]
test rdx, rdx
js 0x6a5698e6
lea r8, [rbx + rax + 0x20]
lea rax, [rdi + 0x10]
cmp r8, rax
lea rax, [rdi + 0x20]
setbe r8b
cmp rcx, rax
setae al
or r8b, al
je 0x6a569980
cmp rdx, 0xe
jbe 0x6a569980
lea r10, [rdx + 1]
mov r9, rcx
mov rax, rsi
mov r8, r10
sub r9, rbp
and r8, 0xfffffffffffffff0
add r8, rsi
nop dword [rax]
movdqu xmm1, xmmword [rax]
movups xmmword [r9 + rax - 0x20], xmm1
add rax, 0x10
cmp rax, r8
jne 0x6a569780
mov rax, r10
and rax, 0xfffffffffffffff0
cmp r10, rax
je 0x6a5698e0
movzx r8d, byte [rsi + rax]
cmp rdx, rax
mov byte [rcx + rax], r8b
lea r8, [rax + 1]
jle 0x6a5698e0
movzx r9d, byte [rsi + rax + 1]
cmp rdx, r8
mov byte [rcx + rax + 1], r9b
lea r9, [rax + 2]
jle 0x6a5698e0
movzx r8d, byte [rsi + rax + 2]
cmp rdx, r9
mov byte [rcx + rax + 2], r8b
lea r8, [rax + 3]
jle 0x6a5698e0
movzx r9d, byte [rsi + rax + 3]
cmp rdx, r8
mov byte [rcx + rax + 3], r9b
lea r9, [rax + 4]
jle 0x6a5698e0
movzx r8d, byte [rsi + rax + 4]
cmp rdx, r9
mov byte [rcx + rax + 4], r8b
lea r8, [rax + 5]
jle 0x6a5698e0
movzx r9d, byte [rsi + rax + 5]
cmp rdx, r8
mov byte [rcx + rax + 5], r9b
lea r9, [rax + 6]
jle 0x6a5698e0
movzx r8d, byte [rsi + rax + 6]
cmp rdx, r9
mov byte [rcx + rax + 6], r8b
lea r8, [rax + 7]
jle 0x6a5698e0
movzx r9d, byte [rsi + rax + 7]
cmp rdx, r8
mov byte [rcx + rax + 7], r9b
lea r9, [rax + 8]
jle 0x6a5698e0
movzx r8d, byte [rsi + rax + 8]
cmp rdx, r9
mov byte [rcx + rax + 8], r8b
lea r8, [rax + 9]
jle 0x6a5698e0
movzx r9d, byte [rsi + rax + 9]
cmp rdx, r8
mov byte [rcx + rax + 9], r9b
lea r9, [rax + 0xa]
jle 0x6a5698e0
movzx r8d, byte [rsi + rax + 0xa]
cmp rdx, r9
mov byte [rcx + rax + 0xa], r8b
lea r8, [rax + 0xb]
jle 0x6a5698e0
movzx r9d, byte [rsi + rax + 0xb]
cmp rdx, r8
mov byte [rcx + rax + 0xb], r9b
lea r9, [rax + 0xc]
jle 0x6a5698e0
movzx r8d, byte [rsi + rax + 0xc]
cmp rdx, r9
mov byte [rcx + rax + 0xc], r8b
lea r8, [rax + 0xd]
jle 0x6a5698e0
movzx r9d, byte [rsi + rax + 0xd]
cmp rdx, r8
mov byte [rcx + rax + 0xd], r9b
jle 0x6a5698e0
movzx edx, byte [rsi + rax + 0xe]
mov byte [rcx + rax + 0xe], dl
nop
mov rax, qword [rbx]
mov rdx, qword [rdi]
add rdx, rax
mov qword [rbx], rdx
jmp 0x6a569280
test rbx, rbx
mov edx, 0x28
mov r14d, 7
je 0x6a569952
movabs rcx, 0x3fffffffffffffff
mov r9, qword [rbx + 8]
mov r8, qword [rbx]
and rcx, r9
cmp r8, rcx
jg 0x6a5694f7
jmp 0x6a569280
cmp rdx, 7
mov r14d, 7
cmovge r14, rdx
lea rdx, [r14 + 0x21]
mov rcx, qword [rsp + 0x28]
call fcn.6a55f100
lea rbx, [rax + 0x10]
mov qword [rax + 8], 1
mov qword [rbx + 8], r14
mov qword [rax + 0x10], 0
jmp 0x6a569717
lea r8, [rbp + rdx + 0x21]
mov rax, rsi
sub rcx, rbp
nop dword [rax + rax]
movzx edx, byte [rax]
mov byte [rcx + rax - 0x20], dl
add rax, 1
cmp rax, r8
jne 0x6a569990
jmp 0x6a5698e0
mov rdx, rcx
sub rbx, rax
lea rcx, [rax + r8 + 0x21]
movzx eax, byte [rbx + rdx - 0x10]
add rdx, 1
mov byte [rdx - 1], al
cmp rdx, rcx
jne 0x6a5699b0
jmp 0x6a569710
xor edx, edx
mov rcx, rbx
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp fcn.6a561380
add r8, 1
xor edx, edx
nop word cs:[rax + rax]
movzx r9d, byte [rsi + rdx + 0x10]
mov byte [rcx + rdx], r9b
add rdx, 1
cmp rdx, r8
jne 0x6a5699f0
jmp 0x6a5694a0
mov rcx, r12
call fcn.6a568a50
nop
nop dword [rax + rax]
nop word cs:[rax + rax]