Function at 0x1400448b0
Capabilities:
Read file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xe8
mov rdi, r8
mov rbx, rdx
mov r14, rcx
mov dword [rsp + 0x58], 0
mov word [rsp + 0x5c], 0
mov qword [rsp + 0x50], 7
mov qword [rsp + 0x38], 0
movaps xmm0, xmmword [0x1400986c0]
movups xmmword [rsp + 0x40], xmm0
lea rcx, [rsp + 0x78]
lea r9, [rsp + 0x38]
call fcn.1400893b8
cmp dword [rsp + 0x78], 1
jne 0x140044921
movups xmm0, xmmword [rsp + 0x80]
movups xmmword [rsp + 0x98], xmm0
jmp 0x14004494c
mov rsi, qword [rsp + 0x80]
lea rcx, [rsp + 0x90]
mov rdx, rsi
call fcn.140089238
mov rcx, rsi
call qword [sym.imp.kernel32.dll_CloseHandle]
cmp dword [rsp + 0x90], 1
jne 0x1400449a7
cmp byte [rsp + 0x98], 3
jne 0x1400449a3
mov rsi, qword [rsp + 0xa0]
mov rcx, qword [rsi]
mov rax, qword [rsi + 8]
call qword [rax]
mov rax, qword [rsi + 8]
cmp qword [rax + 8], 0
je 0x14004498e
mov r8, qword [rsi]
cmp qword [rax + 0x10], 0x11
jb 0x140044980
mov r8, qword [r8 - 8]
mov rcx, qword [0x140443578]
xor edx, edx
call sub.kernel32.dll_HeapFree
mov rcx, qword [0x140443578]
xor ebp, ebp
xor edx, edx
mov r8, rsi
call sub.kernel32.dll_HeapFree
jmp 0x1400449aa
xor ebp, ebp
jmp 0x1400449aa
mov bpl, 1
mov word [rsp + 0xb4], 0
xorps xmm0, xmm0
movaps xmmword [rsp + 0x90], xmm0
mov qword [rsp + 0xac], 0
mov word [rsp + 0xb0], 0x101
mov byte [rsp + 0xb4], 1
mov qword [rsp + 0xa4], 0x26
lea rcx, [rsp + 0x38]
lea rsi, [rsp + 0x90]
mov rdx, rbx
mov r8, rdi
mov r9, rsi
call fcn.1400893b8
cmp dword [rsp + 0x38], 1
jne 0x140044a21
movups xmm0, xmmword [rsp + 0x40]
movups xmmword [r14 + 8], xmm0
mov qword [r14], 1
jmp 0x140044d72
mov rdi, qword [rsp + 0x40]
mov qword [rsp + 0x68], rdi
mov edx, 0x10100
test bpl, bpl
je 0x140044b7e
mov dword [rsp + 0x30], ebp
mov qword [rsp + 0x60], r14
mov rax, qword [0x14043e3f8]
lea rcx, [rsp + 0x68]
mov qword [rsp + 0x90], rcx
mov qword [rsp + 0x98], rax
xorps xmm0, xmm0
movups xmmword [rsp + 0xa0], xmm0
mov qword [rsp + 0x78], rsi
mov qword [rsp + 0x80], 3
mov qword [rsp + 0x70], 0
mov ebp, 8
lea rbx, [rsp + 0x70]
mov r13d, 0xffffffff
lea r14, [rsp + 0x34]
mov r15, qword [sym.imp.kernel32.dll_ReadFile]
mov r12, qword [sym.imp.kernel32.dll_GetLastError]
jmp 0x140044ab9
test rbp, rbp
je 0x140044b85
mov dword [rsp + 0x34], 0
cmp rbp, r13
mov r8d, 0xffffffff
cmovb r8d, ebp
mov qword [rsp + 0x20], 0
mov rcx, rdi
mov rdx, rbx
mov r9, r14
call r15
test eax, eax
je 0x140044b10
mov eax, dword [rsp + 0x34]
test rax, rax
je 0x140044c50
sub rbp, rax
jb 0x140044e25
add rbx, rax
jmp 0x140044ab0
call r12
mov esi, eax
mov ecx, eax
call fcn.140084604
cmp al, 0xb
je 0x140044c47
mov rax, rsi
shl rax, 0x20
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x40], 0
mov ecx, esi
call fcn.140084604
cmp al, 0x23
je 0x140044ab0
movzx eax, byte [rsp + 0x47]
shl eax, 0x10
movzx ecx, word [rsp + 0x45]
or ecx, eax
shl rcx, 0x20
mov esi, dword [rsp + 0x41]
or rsi, rcx
mov rbx, qword [rsp + 0x39]
xor ebp, ebp
mov rcx, qword [0x140443578]
test rcx, rcx
jne 0x140044c8d
jmp 0x140044c75
xor esi, esi
jmp 0x140044d52
mov rdi, qword [rsp + 0x70]
lea rcx, [rsp + 0x78]
call fcn.140044e40
mov rbx, rax
mov sil, 1
test bl, 1
jne 0x140044c30
mov eax, ebx
and eax, 0xff00
xor rax, 0x200
je 0x140044df6
lea rcx, [rsp + 0x78]
call fcn.140044e40
mov r14, rax
test r14b, 1
jne 0x140044c30
mov eax, r14d
and eax, 0xff00
xor rax, 0x200
je 0x140044dfd
lea rcx, [rsp + 0x78]
call fcn.140044e40
mov rbp, rax
test bpl, 1
jne 0x140044c30
mov eax, ebp
and eax, 0xff00
xor rax, 0x200
je 0x140044e04
shr rbx, 8
and bl, 1
shr r14, 8
and r14b, 1
shr rbp, 8
and bpl, 1
xor esi, esi
cmp qword [rsp + 0xa0], 0
jne 0x140044cdd
jmp 0x140044cf8
mov rdi, rdx
cmp qword [rsp + 0xa0], 0
jne 0x140044cdd
jmp 0x140044cf8
mov qword [rsp + 0x38], 0
lea rbx, str.failed_to_fill_whole_buffer
mov rsi, rbx
shr rsi, 8
shl rbx, 0x38
or rbx, 0x25
mov bpl, 2
mov rcx, qword [0x140443578]
test rcx, rcx
jne 0x140044c8d
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x140044e29
mov rcx, rax
mov qword [0x140443578], rax
mov r8d, 0x20
xor edx, edx
call sub.kernel32.dll_HeapAlloc
test rax, rax
je 0x140044e29
mov rdi, rax
movzx eax, bpl
shld rsi, rbx, 8
shl rbx, 8
or rbx, rax
mov byte [rdi], 0
mov eax, dword [rsp + 0x38]
mov ecx, dword [rsp + 0x3b]
mov dword [rdi + 1], eax
mov dword [rdi + 4], ecx
mov qword [rdi + 0x10], rsi
mov qword [rdi + 8], rbx
mov sil, 1
cmp qword [rsp + 0xa0], 0
je 0x140044cf8
mov r8, qword [rsp + 0x98]
test r8, r8
je 0x140044cf8
mov rcx, qword [0x140443578]
xor edx, edx
call sub.kernel32.dll_HeapFree
test sil, sil
je 0x140044d2d
movzx eax, byte [rdi]
lea rcx, [rax - 1]
cmp rcx, 7
mov r14, qword [rsp + 0x60]
mov ebp, dword [rsp + 0x30]
jae 0x140044d86
mov rcx, qword [0x140443578]
xor esi, esi
xor edx, edx
mov r8, rdi
call sub.kernel32.dll_HeapFree
mov edx, 0x10100
jmp 0x140044d52
movzx eax, bpl
shl rax, 0x10
movzx ecx, r14b
shl rcx, 8
or rcx, rax
movzx edx, bl
or rdx, rcx
mov rsi, rdi
mov r14, qword [rsp + 0x60]
mov ebp, dword [rsp + 0x30]
xor bpl, 1
mov rax, qword [rsp + 0x68]
mov qword [r14 + 8], rax
mov qword [r14 + 0x10], rsi
mov qword [r14 + 0x18], rdx
mov byte [r14 + 0x20], bpl
mov qword [r14], 0
add rsp, 0xe8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
test rax, rax
jne 0x140044dcb
cmp byte [rdi + 8], 3
jne 0x140044d13
mov rsi, qword [rdi + 0x10]
mov rcx, qword [rsi]
mov rax, qword [rsi + 8]
call qword [rax]
mov rax, qword [rsi + 8]
cmp qword [rax + 8], 0
je 0x140044dc5
mov r8, qword [rsi]
cmp qword [rax + 0x10], 0x11
jb 0x140044db7
mov r8, qword [r8 - 8]
mov rcx, qword [0x140443578]
xor edx, edx
call sub.kernel32.dll_HeapFree
mov r8, qword [rdi + 0x10]
jmp 0x140044de3
cmp qword [rdi + 0x10], 0
je 0x140044d13
mov r8, qword [rdi + 8]
test r8, r8
je 0x140044d13
mov rcx, qword [0x140443578]
xor edx, edx
call sub.kernel32.dll_HeapFree
jmp 0x140044d13
mov ecx, 1
jmp 0x140044e09
mov ecx, 2
jmp 0x140044e09
mov ecx, 3
call fcn.140095c80
mov rdi, rax
cmp qword [rsp + 0xa0], 0
jne 0x140044cdd
jmp 0x140044cf8
ud2
mov ecx, 0x20
mov edx, 8
call fcn.1400949bf
ud2