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

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0xe0]
sub rsp, 0x1e0
mov rax, qword [0x140214ba0]
xor rax, rsp
mov qword [rbp + 0xd0], rax
movzx ebx, byte [rsp + 0x40]
lea r13, [0x1401ece40]
xor esi, esi
mov qword [rbp + 8], rcx
mov r15, rdx
mov rdi, rcx
lea r14, [rsi - 1]
nop dword [rax]
mov r12d, dword [r13]
mov rdx, r15
mov rcx, rdi
call fcn.140074800
test eax, eax
jns 0x140074fc9
test r12d, r12d
je 0x140074d6c
mov r8d, 0x1c
mov qword [rbp + 0x18], rsi
lea rdx, str.Attempted_to_open_the_file:
mov qword [rbp + 0x28], rsi
lea rcx, [rbp + 0x18]
mov qword [rbp + 0x30], 7
call fcn.1400260f0
mov r8, r14
nop dword [rax]
inc r8
cmp word [r15 + r8*2], 0
jne 0x1400749a0
mov rdx, r15
lea rcx, [rbp + 0x18]
call fcn.1400237f0
lea r9, [rbp + 0x9a]
mov r8d, r12d
add r9, 0xfffffffffffffffe
mov eax, 0xcccccccd
mul r8d
shr edx, 3
movzx eax, dx
shl ax, 2
lea ecx, [rax + rdx]
add cx, cx
sub r8w, cx
add r8w, 0x30
mov word [r9], r8w
mov r8d, edx
test edx, edx
jne 0x1400749c1
lea rax, [rbp + 0x9a]
mov qword [rbp - 0x38], rsi
mov qword [rbp - 0x28], rsi
mov qword [rbp - 0x20], 7
cmp r9, rax
je 0x140074a26
lea r8, [rbp + 0x9a]
mov rdx, r9
sub r8, r9
lea rcx, [rbp - 0x38]
sar r8, 1
call fcn.1400260f0
lea rdi, [rbp + 0xca]
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
nop word [rax + rax]
add rdi, 0xfffffffffffffffe
mov eax, 0xcccccccd
mul ecx
shr edx, 3
movzx eax, dx
shl ax, 2
lea r8d, [rax + rdx]
add r8w, r8w
sub cx, r8w
add cx, 0x30
mov word [rdi], cx
mov ecx, edx
test edx, edx
jne 0x140074a40
lea rax, [rbp + 0xca]
mov qword [rsp + 0x68], rsi
mov qword [rsp + 0x78], rsi
mov qword [rbp - 0x80], 7
cmp rdi, rax
je 0x140074aa6
lea r8, [rbp + 0xca]
mov rdx, rdi
sub r8, rdi
lea rcx, [rsp + 0x68]
sar r8, 1
call fcn.1400260f0
mov r9d, 8
lea r8, str.._Error
lea rcx, [rsp + 0x68]
call fcn.14005c2c0
mov r8d, 0xb
lea rdx, str.._Sleeping
lea rcx, [rbp - 0x78]
movups xmm0, xmmword [rax]
movups xmmword [rbp - 0x78], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp - 0x68], xmm1
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], 7
mov word [rax], si
call fcn.1400237f0
lea r9, [rbp - 0x38]
movzx edx, bl
lea r8, [rbp - 0x18]
lea rcx, [rbp - 0x58]
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
mov qword [rax + 0x10], rsi
movups xmmword [rbp - 0x18], xmm0
mov qword [rax + 0x18], 7
movups xmmword [rbp - 8], xmm1
mov word [rax], si
call fcn.140058310
cmp qword [rbp - 0x40], 8
lea rdx, [rbp - 0x58]
mov r8, qword [rbp - 0x48]
lea rcx, [rbp + 0x18]
cmovae rdx, qword [rbp - 0x58]
call fcn.1400237f0
mov rdx, qword [rbp - 0x40]
cmp rdx, 8
jb 0x140074b7e
mov rcx, qword [rbp - 0x58]
lea rdx, [rdx*2 + 2]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140074b79
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140075178
call fcn.14014f900
mov rdx, qword [rbp]
cmp rdx, 8
jb 0x140074bbe
mov rcx, qword [rbp - 0x18]
lea rdx, [rdx*2 + 2]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140074bb9
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140075178
call fcn.14014f900
mov rdx, qword [rbp - 0x60]
cmp rdx, 8
jb 0x140074bfe
mov rcx, qword [rbp - 0x78]
lea rdx, [rdx*2 + 2]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140074bf9
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140075178
call fcn.14014f900
mov rdx, qword [rbp - 0x80]
mov qword [rbp - 0x68], rsi
mov qword [rbp - 0x60], 7
mov word [rbp - 0x78], si
cmp rdx, 8
jb 0x140074c4f
mov rcx, qword [rsp + 0x68]
lea rdx, [rdx*2 + 2]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140074c4a
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140075178
call fcn.14014f900
mov rdx, qword [rbp - 0x20]
mov qword [rsp + 0x78], rsi
mov qword [rbp - 0x80], 7
mov word [rsp + 0x68], si
cmp rdx, 8
jb 0x140074ca1
mov rcx, qword [rbp - 0x38]
lea rdx, [rdx*2 + 2]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140074c9c
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140075178
call fcn.14014f900
lea rcx, [0x140226720]
call sub.KERNEL32.dll_AcquireSRWLockShared
mov rsi, qword [0x140226708]
test rsi, rsi
je 0x140074cc4
lock inc dword [rsi + 8]
mov rsi, qword [0x140226708]
mov rdi, qword [0x140226700]
lea rcx, [0x140226720]
call sub.KERNEL32.dll_ReleaseSRWLockShared
cmp qword [rbp + 0x30], 8
lea rdx, [rbp + 0x18]
mov rax, qword [rdi]
mov rcx, rdi
cmovae rdx, qword [rbp + 0x18]
call qword [rax]
test rsi, rsi
je 0x140074d1d
mov eax, r14d
lock xadd dword [rsi + 8], eax
cmp eax, 1
jne 0x140074d1d
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax]
mov eax, r14d
lock xadd dword [rsi + 0xc], eax
cmp eax, 1
jne 0x140074d1d
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + VariantCopy]
mov ecx, r12d
call qword [sym.imp.KERNEL32.dll_Sleep]
mov rdx, qword [rbp + 0x30]
cmp rdx, 8
jb 0x140074d66
mov rcx, qword [rbp + 0x18]
lea rdx, [rdx*2 + 2]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140074d61
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14007517e
call fcn.14014f900
mov rdi, qword [rbp + 8]
xor esi, esi
add r13, 4
lea rax, [0x1401ece50]
cmp r13, rax
jne 0x140074950
lea rbx, [rbp + 0x6d]
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r9d, eax
nop dword [rax]
dec rbx
mov eax, 0xcccccccd
mul r9d
shr edx, 3
movzx ecx, dl
shl cl, 2
lea r8d, [rcx + rdx]
add r8b, r8b
sub r9b, r8b
add r9b, 0x30
mov byte [rbx], r9b
mov r9d, edx
test edx, edx
jne 0x140074d90
lea rax, [rbp + 0x6d]
mov qword [rsp + 0x58], rsi
mov rdx, rsi
mov ecx, 0xf
mov qword [rsp + 0x48], rdx
mov r8, rsi
mov qword [rsp + 0x60], rcx
cmp rbx, rax
je 0x140074e02
lea r8, [rbp + 0x6d]
mov rdx, rbx
sub r8, rbx
lea rcx, [rsp + 0x48]
call fcn.140020ae0
mov rcx, qword [rsp + 0x60]
mov r8, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x48]
mov rax, rcx
lea rsi, str.Failed_to_open_the_file:
sub rax, r8
mov r15d, 0x19
cmp rax, r15
jb 0x140074e93
lea rax, [r8 + 0x19]
cmp rcx, 0x10
lea rbx, [rsp + 0x48]
mov qword [rsp + 0x58], rax
cmovae rbx, rdx
lea rax, [0x1401ecc59]
cmp rax, rbx
jbe 0x140074e56
lea rax, [rbx + r8]
cmp rsi, rax
ja 0x140074e56
cmp rbx, rsi
ja 0x140074e4e
xor edi, edi
jmp 0x140074e59
mov rdi, rbx
sub rdi, rsi
jmp 0x140074e59
mov rdi, r15
inc r8
lea rcx, [rbx + 0x19]
mov rdx, rbx
call fcn.140152550
mov r8, rdi
mov rdx, rsi
mov rcx, rbx
call fcn.140152550
sub r15, rdi
lea rdx, [rsi + 0x19]
add rdx, rdi
lea rcx, [rbx + rdi]
mov r8, r15
call fcn.140152550
lea rax, [rsp + 0x48]
jmp 0x140074eaa
mov qword [rsp + 0x28], r15
lea rcx, [rsp + 0x48]
mov rdx, r15
mov qword [rsp + 0x20], rsi
call fcn.14006e2c0
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0x38], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0x48], xmm1
mov qword [rax + 0x10], 0
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
mov rdx, qword [rsp + 0x60]
cmp rdx, 0x10
jb 0x140074f09
mov rcx, qword [rsp + 0x48]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x140074f04
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140075184
call fcn.14014f900
lea rcx, [0x140226720]
call sub.KERNEL32.dll_AcquireSRWLockShared
mov rdi, qword [0x140226708]
test rdi, rdi
je 0x140074f2c
lock inc dword [rdi + 8]
mov rdi, qword [0x140226708]
mov rbx, qword [0x140226700]
lea rcx, [0x140226720]
call sub.KERNEL32.dll_ReleaseSRWLockShared
cmp qword [rbp + 0x50], 0x10
lea rdx, [rbp + 0x38]
mov rax, qword [rbx]
mov rcx, rbx
cmovae rdx, qword [rbp + 0x38]
call qword [rax + VariantCopy]
test rdi, rdi
je 0x140074f85
mov eax, r14d
lock xadd dword [rdi + 8], eax
cmp eax, 1
jne 0x140074f85
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax]
lock xadd dword [rdi + 0xc], r14d
cmp r14d, 1
jne 0x140074f85
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + VariantCopy]
mov rdx, qword [rbp + 0x50]
cmp rdx, 0x10
jb 0x140075146
mov rcx, qword [rbp + 0x38]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x140074fbf
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140075172
call fcn.14014f900
jmp 0x140075146
mov rcx, qword [rdi]
lea rdx, [rbp + 0x14]
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [rbp + 0x10], eax
cmp eax, 0xffffffff
jne 0x140075029
call fcn.1400429e0
test eax, eax
jns 0x140075029
lea rcx, [0x140226720]
call sub.KERNEL32.dll_AcquireSRWLockShared
mov rdi, qword [0x140226708]
test rdi, rdi
je 0x14007500a
lock inc dword [rdi + 8]
mov rdi, qword [0x140226708]
mov rbx, qword [0x140226700]
lea rcx, [0x140226720]
call sub.KERNEL32.dll_ReleaseSRWLockShared
lea rdx, str.Failed_to_get_size
jmp 0x14007510e
mov rcx, qword [rbp + 0x10]
mov qword [rdi + 0x18], rcx
test rcx, rcx
jne 0x14007503b
mov rcx, rsi
jmp 0x14007504d
xor edx, edx
mov rax, r14
div rcx
cmp rax, 1
jb 0x1400750d1
call fcn.1401568a0
mov qword [rdi + 0x10], rax
test rax, rax
je 0x1400750d1
mov ebx, dword [rdi + 0x18]
lea r9, [rbp + 8]
mov rcx, qword [rdi]
mov r8d, ebx
mov rdx, rax
mov dword [rbp + 8], esi
mov qword [rsp + 0x20], rsi
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x14007508d
call fcn.1400429e0
test eax, eax
js 0x140075092
mov al, 1
jmp 0x140075148
cmp dword [rbp + 8], ebx
je 0x140075086
lea rcx, [0x140226720]
call sub.KERNEL32.dll_AcquireSRWLockShared
mov rdi, qword [0x140226708]
test rdi, rdi
je 0x1400750b5
lock inc dword [rdi + 8]
mov rdi, qword [0x140226708]
mov rbx, qword [0x140226700]
lea rcx, [0x140226720]
call sub.KERNEL32.dll_ReleaseSRWLockShared
lea rdx, str.Failed_to_read_file_to_memory
jmp 0x14007510e
lea rcx, [0x140226720]
call sub.KERNEL32.dll_AcquireSRWLockShared
mov rdi, qword [0x140226708]
test rdi, rdi
je 0x1400750f4
lock inc dword [rdi + 8]
mov rdi, qword [0x140226708]
mov rbx, qword [0x140226700]
lea rcx, [0x140226720]
call sub.KERNEL32.dll_ReleaseSRWLockShared
lea rdx, str.Failed_to_allocate_memory
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + VariantCopy]
test rdi, rdi
je 0x140075146
mov eax, r14d
lock xadd dword [rdi + 8], eax
cmp eax, 1
jne 0x140075146
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax]
lock xadd dword [rdi + 0xc], r14d
cmp r14d, 1
jne 0x140075146
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + VariantCopy]
xor al, al
mov rcx, qword [rbp + 0xd0]
xor rcx, rsp
call fcn.14014f8e0
mov rbx, qword [rsp + 0x230]
add rsp, 0x1e0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.140156b00
int3
call fcn.140156b00
int3
call fcn.140156b00
int3
call fcn.140156b00
int3