Function at 0x140023670
Capabilities:
Get file size
Read file on windows

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xe0
mov ebx, r8d
mov rdi, rdx
mov rsi, rcx
xor r14b, r14b
mov rcx, rdx
cmp qword [rdx + 0x18], 0x10
jb 0x1400236aa
mov rcx, qword [rdx]
xor r12d, r12d
mov qword [rsp + 0x30], r12
mov dword [rsp + 0x28], r12d
mov dword [rsp + 0x20], 3
xor r9d, r9d
mov edx, 0x80000000
lea r8d, [r12 + 1]
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov r13, rax
cmp rax, 0xffffffffffffffff
je 0x1400238d4
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov r15d, eax
cmp dword [rsi + 4], eax
sete r14b
jne 0x1400238ca
cmp ebx, 1
jne 0x1400238ca
mov dword [rsp + 0x138], r12d
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x40], xmm0
mov esi, r12d
mov qword [rsp + 0x50], r12
mov ebx, r12d
test eax, eax
je 0x140023788
cmp r15, 0x1000
jb 0x140023755
lea rcx, [r15 + 0x27]
cmp rcx, r15
jbe 0x140023944
call fcn.140133e2c
test rax, rax
je 0x140023938
lea rbx, [rax + 0x27]
and rbx, 0xffffffffffffffe0
mov qword [rbx - 8], rax
jmp 0x140023760
mov rcx, r15
call fcn.140133e2c
mov rbx, rax
mov r12, rbx
mov qword [rsp + 0x40], rbx
lea rsi, [rbx + r15]
mov qword [rsp + 0x50], rsi
mov r8, r15
xor edx, edx
mov rcx, rbx
call fcn.140137f50
mov rbp, rsi
mov qword [rsp + 0x48], rsi
jmp 0x140023792
mov rbp, qword [rsp + 0x48]
mov r12, qword [rsp + 0x40]
mov qword [rsp + 0x20], 0
lea r9, [rsp + 0x138]
mov r8d, r15d
mov rdx, r12
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_ReadFile]
cmp dword [rsp + 0x138], r15d
sete r14b
jne 0x140023893
lea rcx, [rsp + 0x80]
call fcn.1400205f0
nop
sub rbp, rbx
mov r8d, ebp
mov rdx, r12
lea rcx, [rsp + 0x80]
call fcn.140020670
lea rdx, [rsp + 0x58]
lea rcx, [rsp + 0x80]
call fcn.1400209d0
nop
lea rcx, [rsp + 0x80]
call fcn.140020630
mov rdx, qword [rsp + 0x120]
add rdx, 0x108
mov rax, 0xffffffffffffffff
nop
inc rax
cmp byte [rdx + rax], 0
jne 0x140023820
lea rcx, [rsp + 0x58]
mov rbp, qword [rsp + 0x58]
mov r15, qword [rsp + 0x70]
cmp r15, 0x10
cmovae rcx, rbp
mov r8, qword [rsp + 0x68]
cmp r8, rax
jne 0x140023858
call fcn.1401383d0
test eax, eax
jne 0x140023858
mov r14b, 1
jmp 0x14002385b
xor r14b, r14b
cmp r15, 0x10
jb 0x140023893
lea rdx, [r15 + 1]
mov rax, rbp
cmp rdx, 0x1000
jb 0x14002388a
add rdx, 0x27
mov rbp, qword [rbp - 8]
sub rax, rbp
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14002394a
mov rcx, rbp
call fcn.140133e68
nop
test rbx, rbx
je 0x1400238c7
sub rsi, rbx
cmp rsi, 0x1000
jb 0x1400238bc
add rsi, 0x27
mov rcx, qword [rbx - 8]
sub rbx, rcx
lea rax, [rbx - 8]
cmp rax, 0x1f
ja 0x140023938
mov rbx, rcx
mov rdx, rsi
mov rcx, rbx
call fcn.140133e68
xor r12d, r12d
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
mov rdx, qword [rdi + 0x18]
cmp rdx, 0x10
jb 0x14002390a
inc rdx
mov rcx, qword [rdi]
cmp rdx, 0x1000
jb 0x140023905
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x14002393e
mov rcx, r8
call fcn.140133e68
mov qword [rdi + 0x10], r12
mov qword [rdi + 0x18], reloc.WS2_32.dll_ntohs
mov byte [rdi], 0
movzx eax, r14b
mov rbx, qword [rsp + 0x130]
add rsp, 0xe0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.1401462a8
nop
call fcn.1401462a8
nop
call fcn.14000f3e0
nop
call fcn.1401462a8
int3