Function at 0x3bd3a3150
Capabilities:
Read file on windows

Disassembly:
push r14
push r13
push r12
push rsi
push rbx
sub rsp, 0x20
mov r13, rcx
mov rcx, rdx
mov rbx, rdx
call fcn.3bd3a7c30
mov r9, r13
mov r8, rbx
mov edx, 1
lea rcx, [rax + 0x10]
mov r12, rax
call sub.msvcrt.dll_fread
mov rcx, r13
mov r14, rax
cmp rbx, rax
je 0x3bd3a2f88
call sub.msvcrt.dll_ferror
mov rcx, r13
test eax, eax
jne 0x3bd3a314a
call sub.msvcrt.dll_fgetc
mov rdx, r13
mov esi, eax
mov ecx, eax
call sub.msvcrt.dll_ungetc
test esi, esi
jns 0x3bd3a2fa1
cmp rbx, r14
jle 0x3bd3a30ea
mov rdx, r14
mov rcx, r12
add rsp, 0x20
pop rbx
pop rsi
pop r12
pop r13
pop r14
jmp fcn.3bd3a7ca0
call sub.msvcrt.dll_fgetc
mov rdx, r13
mov ebx, eax
mov ecx, eax
call sub.msvcrt.dll_ungetc
test ebx, ebx
js 0x3bd3a30ea
mov rcx, r13
call fcn.3bd3a2b60
mov rbx, rax
test rax, rax
je 0x3bd3a3100
mov rdx, qword [rax]
mov rcx, r12
call fcn.3bd3a7460
mov rcx, qword [rbx]
mov r12, rax
mov rax, qword [rax]
lea r9, [rcx + 1]
lea rdx, [r12 + rax + 0x10]
test r9, r9
jle 0x3bd3a30e3
lea r8, [rbx + 0x11]
mov rax, rdx
sub rax, r8
cmp rax, 0xe
jbe 0x3bd3a3120
cmp rcx, 6
jbe 0x3bd3a3120
mov r10, r9
cmp rcx, 0xe
jbe 0x3bd3a3140
mov r8, r9
xor eax, eax
and r8, 0xfffffffffffffff0
nop
movdqu xmm0, xmmword [rbx + rax + 0x10]
movups xmmword [rdx + rax], xmm0
add rax, 0x10
cmp rax, r8
jne 0x3bd3a3010
mov r8, r9
and r8, 0xfffffffffffffff0
mov rax, r8
cmp r9, r8
je 0x3bd3a30dc
mov r10, r9
mov r9, rcx
sub r9, r8
sub r10, r8
cmp r9, 6
jbe 0x3bd3a3060
mov r9, qword [rbx + r8 + 0x10]
mov qword [rdx + r8], r9
mov r8, r10
and r8, 0xfffffffffffffff8
add rax, r8
cmp r10, r8
je 0x3bd3a30dc
movzx r8d, byte [rbx + rax + 0x10]
mov byte [rdx + rax], r8b
lea r8, [rax + 1]
cmp rcx, rax
jle 0x3bd3a30dc
movzx r9d, byte [rbx + rax + 0x11]
mov byte [rdx + rax + 1], r9b
lea r9, [rax + 2]
cmp rcx, r8
jle 0x3bd3a30dc
movzx r8d, byte [rbx + rax + 0x12]
mov byte [rdx + rax + 2], r8b
lea r8, [rax + 3]
cmp rcx, r9
jle 0x3bd3a30dc
movzx r9d, byte [rbx + rax + 0x13]
mov byte [rdx + rax + 3], r9b
lea r9, [rax + 4]
cmp rcx, r8
jle 0x3bd3a30dc
movzx r8d, byte [rbx + rax + 0x14]
mov byte [rdx + rax + 4], r8b
lea r8, [rax + 5]
cmp rcx, r9
jle 0x3bd3a30dc
movzx r9d, byte [rbx + rax + 0x15]
mov byte [rdx + rax + 5], r9b
cmp rcx, r8
jle 0x3bd3a30dc
movzx ecx, byte [rbx + rax + 0x16]
mov byte [rdx + rax + 6], cl
mov rax, qword [r12]
mov rcx, qword [rbx]
add rax, rcx
mov qword [r12], rax
mov rax, r12
add rsp, 0x20
pop rbx
pop rsi
pop r12
pop r13
pop r14
ret
xor edx, edx
mov rcx, r12
add rsp, 0x20
pop rbx
pop rsi
pop r12
pop r13
pop r14
jmp fcn.3bd3a7460
xor eax, eax
nop word [rax + rax]
movzx r9d, byte [rbx + rax + 0x10]
mov r8, rax
mov byte [rdx + rax], r9b
add rax, 1
cmp rcx, r8
jne 0x3bd3a3128
jmp 0x3bd3a30dc
xor r8d, r8d
xor eax, eax
jmp 0x3bd3a3048
call fcn.3bd3a2680
nop
push r14
push r13
push r12
push rbx
sub rsp, 0x28
mov r12, rcx
xor ecx, ecx
call qword [fcn.3bd3bcaa0]
cmp r12, rax
je 0x3bd3a31a8
mov r13, qword [0x3bd3bf340]
mov rcx, r12
call r13
xor edx, edx
mov r8d, 2
mov rcx, r12
mov r14, rax
mov rbx, qword [0x3bd3bf348]
call rbx
mov rcx, r12
call r13
xor r8d, r8d
mov rdx, r14
mov rcx, r12
mov r13, rax
call rbx
test r13, r13
jg 0x3bd3a31c0
mov rcx, r12
add rsp, 0x28
pop rbx
pop r12
pop r13
pop r14
jmp fcn.3bd3a2b60
mov rdx, r13
mov rcx, r12
add rsp, 0x28
pop rbx
pop r12
pop r13
pop r14
jmp 0x3bd3a2f00