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

Disassembly:
mov rax, rsp
mov qword [rax + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x5f]
sub rsp, 0xa0
mov qword [rbp + 0x1f], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov r14, rdx
mov rsi, rcx
xor r13d, r13d
mov dword [rbp - 0x39], r13d
lea rcx, [0x14019b9a8]
mov rax, qword [0x14019b9a8]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsi], rax
lea r8d, [r13 + 1]
mov dword [rbp - 0x39], r8d
mov r9d, dword [0x1401a3d80]
mov ecx, r9d
imul ecx, r9d
imul ecx, r9d
mov eax, 0x38e38e39
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*8]
add eax, eax
sub ecx, eax
cmp ecx, 0xd
jne 0x140024396
movsd xmm3, qword [0x140138420]
xorps xmm2, xmm2
movd xmm4, r9d
cvtdq2pd xmm4, xmm4
addsd xmm2, xmm3
movaps xmm0, xmm2
mulsd xmm0, xmm2
comisd xmm0, xmm4
jbe 0x14002437e
subsd xmm2, xmm3
divsd xmm3, qword [0x140138448]
movaps xmm1, xmm2
mulsd xmm1, xmm2
movaps xmm0, xmm4
subsd xmm0, xmm1
comisd xmm0, xmmword [0x140138418]
ja 0x140024361
mov rax, qword [r14]
mov ebx, 2
lea r12d, [rbx + 1]
cmp dword [rax - 0x10], r13d
je 0x140024416
movzx eax, word [rax]
cmp ax, word [0x140131658]
jne 0x1400243b9
mov eax, r13d
jmp 0x1400243be
sbb eax, eax
or eax, r8d
test eax, eax
je 0x140024416
lea rcx, [rbp + 0x17]
call fcn.14002319c
nop
mov r8d, r12d
mov dword [rbp - 0x39], r12d
mov rcx, qword [rax]
mov eax, r13d
test rcx, rcx
setne al
test eax, eax
jne 0x1400243ee
mov ecx, 0x80004005
call fcn.14000187c
int3
mov rax, qword [r14]
sub rcx, rax
movzx edx, word [rax]
cmp dx, word [rax + rcx]
jne 0x14002440a
add rax, rbx
test dx, dx
jne 0x1400243f4
mov eax, r13d
jmp 0x14002440f
sbb eax, eax
or eax, 1
test eax, eax
mov dil, r13b
jne 0x140024419
mov dil, 1
or r15, 0xffffffffffffffff
test bl, r8b
je 0x14002444a
and r8d, 0xfffffffd
mov dword [rbp - 0x39], r8d
mov rdx, qword [rbp + 0x17]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
add eax, r15d
test eax, eax
jg 0x14002444a
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
test dil, dil
je 0x14002448e
lea rcx, [rbp + 0xf]
call fcn.14002319c
nop
mov rdx, rax
mov rcx, rsi
call fcn.1400021c4
nop
mov rdx, qword [rbp + 0xf]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
add eax, r15d
test eax, eax
jg 0x140024799
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x140024799
mov qword [rsp + 0x30], r13
mov dword [rsp + 0x28], r13d
mov dword [rsp + 0x20], r12d
xor r9d, r9d
xor r8d, r8d
mov edx, 0x80000000
mov rcx, qword [r14]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov r12, rax
cmp rax, r15
jne 0x1400244d5
lea rcx, [rbp - 0x11]
call fcn.14002319c
nop
mov rdx, rax
mov rcx, rsi
call fcn.1400021c4
nop
mov rdx, qword [rbp - 0x11]
jmp 0x140024469
xor eax, eax
mov qword [rbp + 0x7f], rax
lea rdx, [rbp + 0x7f]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_GetFileSizeEx]
test eax, eax
jne 0x14002452b
lea rcx, [rbp + 7]
call fcn.14002319c
nop
mov rdx, rax
mov rcx, rsi
call fcn.1400021c4
nop
mov rdx, qword [rbp + 7]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
add eax, r15d
test eax, eax
jg 0x140024790
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x140024790
cmp dword [rbp + 0x83], r13d
je 0x140024550
lea rcx, [rbp - 9]
call fcn.14002319c
nop
mov rdx, rax
mov rcx, rsi
call fcn.1400021c4
nop
mov rdx, qword [rbp - 9]
jmp 0x140024506
cmp dword [rbp + 0x7f], r13d
je 0x140024790
mov qword [rbp - 0x31], r13
mov qword [rbp - 0x29], r13
mov qword [rbp - 0x21], r13
mov edx, dword [rbp + 0x7f]
lea rcx, [rbp - 0x31]
call fcn.14002491c
mov dword [rbp + 0x77], r13d
mov qword [rsp + 0x20], r13
lea r9, [rbp + 0x77]
mov r8d, dword [rbp + 0x7f]
mov rdi, qword [rbp - 0x31]
mov rdx, rdi
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x1400245a8
test rdi, rdi
je 0x140024790
mov rcx, rdi
jmp 0x14002477f
mov r14b, r13b
mov r15b, r13b
mov al, byte [rdi]
cmp al, 0xff
jne 0x1400245bf
cmp byte [rdi + 1], 0xfe
jne 0x1400245bf
mov r14b, 1
jmp 0x1400245f2
cmp al, 0xfe
jne 0x1400245d1
cmp byte [rdi + 1], 0xff
jne 0x1400245d1
mov r14b, 1
mov r15b, r14b
jmp 0x1400245f2
cmp al, 0xef
jne 0x140024694
cmp byte [rdi + 1], 0xbb
jne 0x140024694
cmp byte [rdi + 2], 0xbf
jne 0x140024694
mov ebx, 3
movsxd rdx, ebx
add rdx, rdi
mov rbx, qword [rbp - 0x29]
cmp rdx, rbx
jne 0x140024606
mov rbx, rdi
jmp 0x14002461c
cmp rdi, rdx
je 0x140024620
sub rbx, rdx
mov r8, rbx
mov rcx, rdi
call fcn.1400bb100
add rbx, rdi
mov qword [rbp - 0x29], rbx
test r15b, r15b
je 0x140024698
mov ecx, dword [0x1401a3d80]
imul ecx, ecx
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
shl eax, 3
sub ecx, eax
cmp ecx, 0xb
jne 0x140024675
mov qword [rsp + 0x30], r13
mov dword [rsp + 0x28], r13d
mov dword [rsp + 0x20], r13d
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateFileW]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
mov rcx, rdi
cmp rdi, rbx
je 0x140024698
mov r8b, byte [rcx + 1]
mov dl, byte [rcx]
mov byte [rcx + 1], dl
mov byte [rcx], r8b
add rcx, 2
cmp rcx, rbx
jne 0x14002467d
jmp 0x140024698
mov rbx, qword [rbp - 0x29]
sub rbx, rdi
cmp byte [rdi + rbx - 1], r13b
je 0x1400246d4
lea rdx, [rbx + 1]
lea rcx, [rbp - 0x31]
call fcn.14002491c
mov rdi, qword [rbp - 0x31]
mov byte [rdi + rbx], r13b
test r14b, r14b
je 0x14002471f
lea rdx, [rbx + 2]
lea rcx, [rbp - 0x31]
call fcn.14002491c
mov rdx, qword [rbp - 0x31]
mov byte [rdx + rbx + 1], r13b
jmp 0x1400246ef
test r14b, r14b
je 0x14002471f
lea rdx, [rbx + 2]
lea rcx, [rbp - 0x31]
call fcn.14002491c
mov rdx, qword [rbp - 0x31]
mov word [rdx + rbx], r13w
lea rcx, [rbp - 1]
call fcn.1400020f8
nop
mov rdx, rax
mov rcx, rsi
call fcn.1400021c4
nop
mov rdx, qword [rbp - 1]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x140024776
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x140024776
lea rcx, [0x14019b9a8]
mov rax, qword [0x14019b9a8]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x19], rax
mov rdx, rdi
lea rcx, [rbp - 0x19]
call fcn.140002f54
nop
lea rdx, [rbp - 0x19]
mov rcx, rsi
call fcn.1400021c4
nop
mov rdx, qword [rbp - 0x19]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14002476a
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rdx, rsi
mov rcx, rsi
call fcn.140022724
nop
mov rcx, qword [rbp - 0x31]
test rcx, rcx
je 0x140024790
call fcn.1400bb0b4
mov qword [rbp - 0x21], r13
mov qword [rbp - 0x29], r13
mov qword [rbp - 0x31], r13
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rax, rsi
mov rbx, qword [rsp + 0xe8]
add rsp, 0xa0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret