Function at 0x140045ce0
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rbp
push rsi
push rdi
push r12
push r14
push r15
mov eax, 0xd0
call fcn.1400c4950
sub rsp, rax
mov rax, qword [0x140276168]
xor rax, rsp
mov qword [rsp + 0xc0], rax
mov r15, rdx
mov rsi, rcx
movsxd rdx, dword [rcx + 0xc]
mov r9, qword [rcx]
mov r8d, 1
mov rcx, r15
call fcn.1400e155c
mov rcx, rax
cmp rax, 1
sete r12b
mov r8d, dword [rsi + 0xc]
mov eax, r8d
cdq
idiv dword [rsi + 0x1c]
mov dword [rsi + 0x20], eax
cmp rcx, 1
jne 0x140045f4c
add dword [rsi + 0x18], r8d
lea r8, [rsi + 0x48]
cmp qword [r8 + 0x18], 8
jb 0x140045d61
mov r8, qword [r8]
lea r14, [rsi + 0x28]
mov dword [rsp + 0x28], 0xffffffff
mov dword [rsp + 0x20], eax
mov r9d, 0x18
lea rdx, str.read
mov rcx, r14
call fcn.14004e5d0
xor edi, edi
mov ebp, dword [rsi + 0x20]
xor edx, edx
mov rbx, r15
mov ecx, dword [rsi + 0x1c]
test ebp, ebp
je 0x140045de0
cmp ecx, 1
jne 0x140045f90
mov eax, ecx
mov ecx, eax
cmp byte [rbx], 0
jne 0x140045dd3
test rdx, rdx
je 0x140045dc9
cmp rbx, rdx
je 0x140045dc9
mov r8, rbx
sub r8, rdx
imul eax, edi
cdqe
mov rcx, rdx
sub rcx, rax
call fcn.1400c7640
movsxd rcx, dword [rsi + 0x1c]
lea rdx, [rbx + rcx]
inc edi
movsxd rax, ecx
add rbx, rax
sub ebp, 1
mov eax, ecx
jne 0x140045da2
mov r8d, ecx
test rdx, rdx
je 0x140045e05
cmp rbx, rdx
je 0x140045e05
sub rbx, rdx
imul r8d, edi
movsxd rax, r8d
mov rcx, rdx
sub rcx, rax
mov r8, rbx
call fcn.1400c7640
test edi, edi
je 0x140045e30
mov dword [rsp + 0x28], 0xffffffff
mov dword [rsp + 0x20], edi
mov r9d, 1
xor r8d, r8d
lea rdx, str.nulls_removed
mov rcx, r14
call fcn.14004e5d0
sub dword [rsi + 0x20], edi
cmp dword [rsi + 0x1c], 1
jle 0x140045f4c
test byte [rsi + 8], 0x80
je 0x140045f4c
movsxd rcx, dword [rsi + 0x20]
test rcx, rcx
je 0x140045e66
nop dword [rax]
dec rcx
movzx eax, word [r15 + rcx*2]
rol ax, 8
mov word [r15 + rcx*2], ax
test rcx, rcx
jne 0x140045e50
cmp dword [r14 + 0x10], 0x3e8
jge 0x140045f4c
mov rax, r14
cmp qword [r14 + 0x18], 8
jb 0x140045e81
mov rax, qword [r14]
mov qword [rsp + 0x30], rax
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x40]
call fcn.140033ec0
nop
mov r9d, 2
lea r8, [0x140231b70]
lea rdx, [0x1401fa158]
lea rcx, [rsp + 0x40]
call fcn.14004de20
lea rax, [rsp + 0x40]
cmp r14, rax
je 0x140045edd
lea rdx, [rsp + 0x40]
cmp qword [rsp + 0x58], 8
cmovae rdx, qword [rsp + 0x40]
mov r8, qword [rsp + 0x50]
mov rcx, r14
call fcn.1400175d0
nop
cmp qword [rsp + 0xa8], 0
je 0x140045ef2
lea rcx, [rsp + 0x40]
call fcn.140044c40
mov rbx, qword [rsp + 0xb0]
test rbx, rbx
je 0x140045f15
mov rcx, rbx
call fcn.14004d1f0
nop
mov edx, 8
mov rcx, rbx
call fcn.1400c3d50
mov rbx, qword [rsp + 0xb8]
test rbx, rbx
je 0x140045f37
mov rcx, rbx
call fcn.14004d170
mov edx, 0x10
mov rcx, rbx
call fcn.1400c3d50
lea rcx, [rsp + 0x60]
call fcn.1400350c0
lea rcx, [rsp + 0x40]
call fcn.1400350c0
nop
test r12b, r12b
jne 0x140045f59
mov rcx, rsi
call fcn.140045320
movzx eax, r12b
mov rcx, qword [rsp + 0xc0]
xor rcx, rsp
call fcn.1400c3d30
lea r11, [rsp + 0xd0]
mov rbx, qword [r11 + 0x40]
mov rbp, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret
mov r8d, ecx
cmp word [rbx], 0
jne 0x140045fc4
test rdx, rdx
je 0x140045fba
cmp rbx, rdx
je 0x140045fba
mov r8, rbx
sub r8, rdx
imul ecx, edi
movsxd rax, ecx
mov rcx, rdx
sub rcx, rax
call fcn.1400c7640
movsxd r8, dword [rsi + 0x1c]
lea rdx, [rbx + r8]
inc edi
movsxd rax, r8d
add rbx, rax
sub ebp, 1
mov ecx, r8d
jne 0x140045f90
jmp 0x140045de3