Function at 0x14004e648
Capabilities:
Read file on windows

Disassembly:
push r15
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x458
movaps xmmword [rsp + 0x440], xmm6
mov rdi, r8
mov rbx, rdx
mov rsi, rcx
lea rcx, [rdx + 0x10]
mov rdx, r8
call fcn.14004ee0c
add rbx, 0x18
cmp rbx, rax
je 0x14004e695
mov rdx, qword [rax + 0x38]
mov byte [rsi + 0xe8], 1
mov rcx, rsi
call fcn.14004f49a
jmp 0x14004eadd
lea rbx, [rsp + 0x168]
mov rcx, rbx
mov rdx, rdi
call fcn.1400329d0
lea r14, [rsp + 0x350]
mov rcx, r14
mov r8, rbx
call fcn.14004ee6e
mov rcx, qword [rbx]
mov dl, byte [rbx + 0x17]
call fcn.14003ae60
cmp byte [r14 + 0xe8], 0
je 0x14004e816
lea rbx, [rsp + 0x350]
mov rcx, rbx
call fcn.14004f31a
cmp byte [rbx], 0
je 0x14004e84d
lea rbx, [rsp + 0xa0]
xorps xmm6, xmm6
movaps xmmword [rbx - 0x20], xmm6
movaps xmmword [rbx - 0x10], xmm6
mov rcx, rbx
mov rdx, rdi
call fcn.1400329d0
lea rdi, [rsp + 0x350]
mov rcx, rdi
call fcn.14004f31a
mov al, byte [rdi]
mov byte [rbx + 0x18], al
mov al, 1
mov byte [rbx + 0x19], al
xor ebp, ebp
mov byte [rbx + 0x1c], bpl
mov byte [rbx + 0x20], bpl
lea r8, [rsp + 0x38]
mov byte [r8 + 0x10], al
lea rax, [0x14022c148]
mov qword [r8], rax
mov qword [r8 + 8], 0xa8
lea rbx, [rsp + 0x180]
lea r14, [rsp + 0x80]
mov rcx, rbx
mov rdx, r14
call fcn.14004f335
mov rax, qword [rbx + 0x10]
lea rdi, [rsp + 0x270]
mov qword [rdi + 0x10], rax
movaps xmm0, xmmword [rbx]
movaps xmmword [rdi], xmm0
movaps xmmword [rbx], xmm6
and qword [rbx + 0x10], 0
mov r15b, byte [rbx + 0x18]
mov byte [rdi + 0x18], r15b
movaps xmm0, xmmword [rbx + 0x20]
movaps xmmword [rdi + 0x20], xmm0
movaps xmm0, xmmword [rbx + 0x30]
and qword [rbx + 0x30], 0
movaps xmmword [rdi + 0x30], xmm0
movaps xmmword [rbx + 0x20], xmm6
mov al, byte [rbx + 0x40]
mov byte [rdi + 0x40], al
mov rcx, rbx
call fcn.14004f3b6
mov rcx, r14
call fcn.14004f3b6
mov byte [rsi + 0xe8], bpl
mov rax, qword [rdi + 0x10]
mov qword [rsi + 0x10], rax
movaps xmm0, xmmword [rdi]
and qword [rdi + 0x10], 0
movups xmmword [rsi], xmm0
movaps xmmword [rdi], xmm6
mov byte [rsi + 0x18], r15b
mov rax, qword [rdi + 0x30]
mov qword [rsi + 0x30], rax
movaps xmm0, xmmword [rdi + 0x20]
movups xmmword [rsi + 0x20], xmm0
movaps xmmword [rdi + 0x20], xmm6
and qword [rdi + 0x30], 0
mov rax, qword [rdi + 0x38]
mov qword [rsi + 0x38], rax
mov al, byte [rdi + 0x40]
mov byte [rsi + 0x40], al
mov byte [rsi + 0xe0], bpl
mov rcx, rdi
call fcn.14004f3b6
jmp 0x14004ead0
lea rdi, [rsp + 0x180]
lea rdx, [rsp + 0x350]
mov rcx, rdi
call fcn.14004f28e
mov byte [rsi + 0xe8], 0
mov rcx, rsi
mov rdx, rdi
call fcn.14004f28e
mov rcx, rdi
call fcn.14004f2e2
jmp 0x14004ead0
lea rbx, [rsp + 0x50]
mov rcx, rbx
mov rdx, rdi
call fcn.140032da4
cmp byte [rbx + 0x17], 0
jns 0x14004e868
mov rbx, qword [rsp + 0x50]
lea rdx, [0x14022bf50]
mov rcx, rbx
call qword [sym.imp.msvcrt.dll__wfopen]
test rax, rax
je 0x14004e9ad
mov rbx, rax
mov rcx, rax
xor edx, edx
mov r8d, 2
call sub.msvcrt.dll_fseek
test eax, eax
je 0x14004eaf8
mov rcx, rbx
call sub.msvcrt.dll_fclose
lea rbx, [rsp + 0xa0]
xorps xmm6, xmm6
movaps xmmword [rbx - 0x20], xmm6
movaps xmmword [rbx - 0x10], xmm6
mov bpl, 1
lea rdx, [rsp + 0x38]
mov byte [rdx + 0x10], bpl
lea rax, [0x14022c298]
mov qword [rdx], rax
mov qword [rdx + 8], 0x30
mov rcx, rbx
call fcn.140039a7c
xor eax, eax
mov byte [rbx + 0x20], al
mov byte [rbx + 0x38], al
mov rcx, qword [rdi + 0x10]
mov qword [rbx + 0x50], rcx
movups xmm0, xmmword [rdi]
movaps xmmword [rbx + 0x40], xmm0
and qword [rdi + 0x10], 0
movups xmmword [rdi], xmm6
mov byte [rbx + 0x58], bpl
mov byte [rbx + 0x60], al
mov byte [rbx + 0x68], al
mov byte [rbx + 0x70], al
mov byte [rbx + 0x78], al
mov byte [rbx + 0x80], al
mov byte [rbx + 0x88], al
mov byte [rbx + 0x90], al
mov byte [rbx + 0xa8], al
mov byte [rbx + 0xb0], al
mov byte [rbx + 0xb4], al
mov byte [rbx + 0xb8], al
mov byte [rbx + 0xbc], al
lea r8, [rsp + 0x68]
mov byte [r8 + 0x10], bpl
lea rax, [0x14022c2c8]
mov qword [r8], rax
mov qword [r8 + 8], 0xa8
lea rdi, [rsp + 0x180]
lea rbx, [rsp + 0x80]
mov rcx, rdi
mov rdx, rbx
call fcn.14004e454
lea r14, [rsp + 0x270]
mov rcx, r14
mov rdx, rdi
call fcn.14004e49c
mov rcx, rdi
call fcn.14004e5ca
mov rcx, rbx
call fcn.14004e5ca
mov rcx, rsi
mov rdx, r14
call fcn.14004f3da
mov rcx, r14
call fcn.14004e5ca
jmp 0x14004eac2
call qword [sym.imp.msvcrt.dll__errno]
mov ebp, dword [rax]
lea rbx, [rsp + 0xa0]
xorps xmm6, xmm6
movaps xmmword [rbx - 0x20], xmm6
movaps xmmword [rbx - 0x10], xmm6
mov rcx, rbx
mov rdx, rdi
call fcn.1400329d0
and word [rbx + 0x18], 0
mov dword [rbx + 0x1c], ebp
mov al, 1
mov byte [rbx + 0x20], al
lea r8, [rsp + 0x38]
mov byte [r8 + 0x10], al
lea rax, [0x14022c1f0]
mov qword [r8], rax
mov qword [r8 + 8], 0xa8
lea rbx, [rsp + 0x180]
lea r14, [rsp + 0x80]
mov rcx, rbx
mov rdx, r14
call fcn.14004f335
mov rax, qword [rbx + 0x10]
lea rdi, [rsp + 0x270]
mov qword [rdi + 0x10], rax
movaps xmm0, xmmword [rbx]
movaps xmmword [rdi], xmm0
movaps xmmword [rbx], xmm6
and qword [rbx + 0x10], 0
mov bpl, byte [rbx + 0x18]
mov byte [rdi + 0x18], bpl
movaps xmm0, xmmword [rbx + 0x20]
movaps xmmword [rdi + 0x20], xmm0
movaps xmm0, xmmword [rbx + 0x30]
and qword [rbx + 0x30], 0
movaps xmmword [rdi + 0x30], xmm0
movaps xmmword [rbx + 0x20], xmm6
mov al, byte [rbx + 0x40]
mov byte [rdi + 0x40], al
mov rcx, rbx
call fcn.14004f3b6
mov rcx, r14
call fcn.14004f3b6
xor eax, eax
mov byte [rsi + 0xe8], al
mov rcx, qword [rdi + 0x10]
mov qword [rsi + 0x10], rcx
movaps xmm0, xmmword [rdi]
and qword [rdi + 0x10], 0
movups xmmword [rsi], xmm0
movaps xmmword [rdi], xmm6
mov byte [rsi + 0x18], bpl
mov rcx, qword [rdi + 0x30]
mov qword [rsi + 0x30], rcx
movaps xmm0, xmmword [rdi + 0x20]
movups xmmword [rsi + 0x20], xmm0
movaps xmmword [rdi + 0x20], xmm6
and qword [rdi + 0x30], 0
mov rcx, qword [rdi + 0x38]
mov qword [rsi + 0x38], rcx
mov cl, byte [rdi + 0x40]
mov byte [rsi + 0x40], cl
mov byte [rsi + 0xe0], al
mov rcx, rdi
call fcn.14004f3b6
mov rcx, qword [rsp + 0x50]
mov dl, byte [rsp + 0x67]
call fcn.14003ae60
lea rcx, [rsp + 0x350]
call fcn.14004f3e6
mov rax, rsi
movaps xmm6, xmmword [rsp + 0x440]
add rsp, 0x458
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
pop r15
ret
mov rcx, rbx
call sub.msvcrt.dll_ftell
cmp eax, 0xffffffff
je 0x14004ebd5
mov ebp, eax
mov rcx, rbx
xor edx, edx
xor r8d, r8d
call sub.msvcrt.dll_fseek
test eax, eax
je 0x14004ec8a
mov rcx, rbx
call sub.msvcrt.dll_fclose
lea rbx, [rsp + 0xa0]
xorps xmm6, xmm6
movaps xmmword [rbx - 0x20], xmm6
movaps xmmword [rbx - 0x10], xmm6
mov bpl, 1
lea rdx, [rsp + 0x38]
mov byte [rdx + 0x10], bpl
lea rax, [0x14022c440]
mov qword [rdx], rax
mov qword [rdx + 8], 0x30
mov rcx, rbx
call fcn.140039a7c
xor eax, eax
mov byte [rbx + 0x20], al
mov byte [rbx + 0x38], al
mov rcx, qword [rdi + 0x10]
mov qword [rbx + 0x50], rcx
movups xmm0, xmmword [rdi]
movaps xmmword [rbx + 0x40], xmm0
and qword [rdi + 0x10], 0
movups xmmword [rdi], xmm6
mov byte [rbx + 0x58], bpl
mov byte [rbx + 0x60], al
mov byte [rbx + 0x68], al
mov byte [rbx + 0x70], al
mov byte [rbx + 0x78], al
mov byte [rbx + 0x80], al
mov byte [rbx + 0x88], al
mov byte [rbx + 0x90], al
mov byte [rbx + 0xa8], al
mov byte [rbx + 0xb0], al
mov byte [rbx + 0xb4], al
mov byte [rbx + 0xb8], al
mov byte [rbx + 0xbc], al
lea r8, [rsp + 0x68]
mov byte [r8 + 0x10], bpl
lea rax, [0x14022c470]
jmp 0x14004e94c
mov rcx, rbx
call sub.msvcrt.dll_fclose
lea rbx, [rsp + 0xa0]
xorps xmm6, xmm6
movaps xmmword [rbx - 0x20], xmm6
movaps xmmword [rbx - 0x10], xmm6
mov bpl, 1
lea rdx, [rsp + 0x38]
mov byte [rdx + 0x10], bpl
lea rax, [0x14022c370]
mov qword [rdx], rax
mov qword [rdx + 8], 0x28
mov rcx, rbx
call fcn.140039a7c
xor eax, eax
mov byte [rbx + 0x20], al
mov byte [rbx + 0x38], al
mov rcx, qword [rdi + 0x10]
mov qword [rbx + 0x50], rcx
movups xmm0, xmmword [rdi]
movaps xmmword [rbx + 0x40], xmm0
and qword [rdi + 0x10], 0
movups xmmword [rdi], xmm6
mov byte [rbx + 0x58], bpl
mov byte [rbx + 0x60], al
mov byte [rbx + 0x68], al
mov byte [rbx + 0x70], al
mov byte [rbx + 0x78], al
mov byte [rbx + 0x80], al
mov byte [rbx + 0x88], al
mov byte [rbx + 0x90], al
mov byte [rbx + 0xa8], al
mov byte [rbx + 0xb0], al
mov byte [rbx + 0xb4], al
mov byte [rbx + 0xb8], al
mov byte [rbx + 0xbc], al
lea r8, [rsp + 0x68]
mov byte [r8 + 0x10], bpl
lea rax, [0x14022c398]
jmp 0x14004e94c
xorps xmm6, xmm6
lea r15, [rsp + 0x20]
movaps xmmword [r15], xmm6
and qword [r15 + 0x10], 0
movsxd r14, ebp
mov rcx, r15
mov rdx, r14
call fcn.140015208
mov rcx, qword [r15]
mov r8, qword [r15 + 8]
sub r8, rcx
mov edx, 1
mov r9, rbx
call sub.msvcrt.dll_fread
mov r15, rax
mov rcx, rbx
call sub.msvcrt.dll_fclose
cmp r15, r14
jne 0x14004ecf8
mov byte [rsi + 0xe8], 1
movaps xmm0, xmmword [rsp + 0x20]
movups xmmword [rsi], xmm0
mov rax, qword [rsp + 0x30]
mov qword [rsi + 0x10], rax
movaps xmmword [rsp + 0x20], xmm6
and qword [rsp + 0x30], 0
jmp 0x14004edfd
lea rbx, [rsp + 0xa0]
movaps xmmword [rbx - 0x20], xmm6
movaps xmmword [rbx - 0x10], xmm6
mov bpl, 1
lea rdx, [rsp + 0x38]
mov byte [rdx + 0x10], bpl
lea rax, [0x14022c518]
mov qword [rdx], rax
mov qword [rdx + 8], 0x28
mov rcx, rbx
call fcn.140039a7c
xor eax, eax
mov byte [rbx + 0x20], al
mov byte [rbx + 0x38], al
mov rcx, qword [rdi + 0x10]
mov qword [rbx + 0x50], rcx
movups xmm0, xmmword [rdi]
movaps xmmword [rbx + 0x40], xmm0
and qword [rdi + 0x10], 0
movups xmmword [rdi], xmm6
mov byte [rbx + 0x58], bpl
mov qword [rbx + 0x60], r14
mov byte [rbx + 0x68], bpl
mov byte [rbx + 0x70], al
mov byte [rbx + 0x78], al
mov qword [rbx + 0x80], r15
mov byte [rbx + 0x88], bpl
mov byte [rbx + 0x90], al
mov byte [rbx + 0xa8], al
mov byte [rbx + 0xb0], al
mov byte [rbx + 0xb4], al
mov byte [rbx + 0xb8], al
mov byte [rbx + 0xbc], al
lea r8, [rsp + 0x68]
mov byte [r8 + 0x10], bpl
lea rax, [0x14022c540]
mov qword [r8], rax
mov qword [r8 + 8], 0xa8
lea rdi, [rsp + 0x180]
lea rbx, [rsp + 0x80]
mov rcx, rdi
mov rdx, rbx
call fcn.14004e454
lea r14, [rsp + 0x270]
mov rcx, r14
mov rdx, rdi
call fcn.14004e49c
mov rcx, rdi
call fcn.14004e5ca
mov rcx, rbx
call fcn.14004e5ca
mov rcx, rsi
mov rdx, r14
call fcn.14004f3da
mov rcx, r14
call fcn.14004e5ca
lea rcx, [rsp + 0x20]
call fcn.14002653e
jmp 0x14004eac2