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

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0xe0]
sub rsp, 0x1e0
mov r14, rdx
xor edi, edi
mov dword [rsp + 0x60], edi
lea r15, [0x14017d330]
mov qword [rbp - 0x30], r15
mov rcx, r15
call fcn.1400d8994
test eax, eax
jne 0x14000f62b
mov eax, dword [0x14017d37c]
cmp eax, 0x7fffffff
je 0x14000f636
lea rcx, [0x14017d310]
cmp qword [0x14017d328], 7
cmova rcx, qword [0x14017d310]
mov qword [rsp + 0x30], rdi
mov dword [rsp + 0x28], edi
mov dword [rsp + 0x20], 3
xor r9d, r9d
mov r13d, 1
mov r8d, r13d
mov edx, 0x80000000
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rsi, rax
mov qword [rsp + 0x68], rax
cmp rax, 0xffffffffffffffff
je 0x14000f5fa
mov dword [rbp + 0x120], edi
lea r9, [rbp - 0x28]
lea r8, [rbp - 0x20]
lea rdx, [rsp + 0x70]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileTime]
test eax, eax
je 0x14000f5f0
lea rdx, [0x14017d380]
lea rcx, [rsp + 0x70]
call qword [sym.imp.KERNEL32.dll_CompareFileTime]
test eax, eax
sete bl
lea rdx, [rbp + 0x120]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov r8d, eax
mov dword [rbp + 0x138], eax
cmp eax, 0xffffffff
je 0x14000f5f0
mov edx, dword [0x14017d388]
mov ecx, edi
movzx eax, bl
cmp r8d, edx
cmovae ecx, eax
test cl, cl
jne 0x14000f08d
mov dword [0x14017d388], 3
mov eax, dword [rsp + 0x74]
mov dword [0x14017d384], eax
mov eax, dword [rsp + 0x70]
mov dword [0x14017d380], eax
lea edx, [rdi + 3]
cmp dword [rbp + 0x120], 0
jne 0x14000f5f0
cmp r8d, edx
jb 0x14000f5f0
mov r12d, r8d
sub r12d, edx
test r12d, r12d
jle 0x14000f574
xor r9d, r9d
xor r8d, r8d
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
movsxd rbx, r12d
inc rbx
xorps xmm0, xmm0
movups xmmword [rsp + 0x40], xmm0
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x58], rdi
movabs rsi, 0x7fffffffffffffff
cmp rbx, rsi
ja 0x14000f649
mov qword [rsp + 0x58], InitCommonControls
cmp rbx, 0xf
ja 0x14000f119
mov qword [rsp + 0x50], rbx
mov r8, rbx
xor edx, edx
lea rcx, [rsp + 0x40]
call fcn.14012ce40
mov byte [rsp + rbx + 0x40], 0
jmp 0x14000f1b7
mov rax, rbx
or rax, 0xf
cmp rax, rsi
jbe 0x14000f152
movabs rax, 0x8000000000000000
add rax, 0x27
mov rcx, rax
call fcn.1400ff088
test rax, rax
je 0x14000f61f
lea r15, [rax + 0x27]
and r15, 0xffffffffffffffe0
mov qword [r15 - 8], rax
jmp 0x14000f18f
mov rsi, rax
mov ecx, 0x16
cmp rax, rcx
cmovb rsi, rcx
lea rcx, [rsi + 1]
cmp rcx, 0x1000
jb 0x14000f17d
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x14000f625
jmp 0x14000f133
test rcx, rcx
je 0x14000f18c
call fcn.1400ff088
mov r15, rax
jmp 0x14000f18f
mov r15, rdi
mov qword [rsp + 0x40], r15
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x58], rsi
mov r8, rbx
xor edx, edx
mov rcx, r15
call fcn.14012ce40
mov byte [r15 + rbx], 0
lea r15, [0x14017d330]
mov dword [rbp + 0x130], edi
lea rdx, [rsp + 0x40]
cmp qword [rsp + 0x58], 0xf
cmova rdx, qword [rsp + 0x40]
mov qword [rsp + 0x20], rdi
lea r9, [rbp + 0x130]
mov r8d, r12d
mov rsi, qword [rsp + 0x68]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x14000f598
cmp dword [rbp + 0x130], r12d
jne 0x14000f598
lea r8, [rsp + 0x40]
cmp qword [rsp + 0x58], 0xf
cmova r8, qword [rsp + 0x40]
mov dword [rsp + 0x28], edi
mov qword [rsp + 0x20], rdi
mov r9d, dword [rsp + 0x50]
xor edx, edx
mov ecx, 0xfde9
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
movsxd rbx, eax
xorps xmm0, xmm0
movups xmmword [rbp - 0x70], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x60], xmm1
mov r8, rbx
xor edx, edx
lea rcx, [rbp - 0x70]
call fcn.1400438d0
mov dword [rsp + 0x60], r13d
lea rcx, [rbp - 0x70]
cmp qword [rbp - 0x58], 7
cmova rcx, qword [rbp - 0x70]
lea r8, [rsp + 0x40]
cmp qword [rsp + 0x58], 0xf
cmova r8, qword [rsp + 0x40]
mov dword [rsp + 0x28], ebx
mov qword [rsp + 0x20], rcx
mov r9d, dword [rsp + 0x50]
xor edx, edx
mov ecx, 0xfde9
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea rdx, [rbp - 0x70]
lea rcx, [rbp - 0x10]
call fcn.14003c8b0
nop
and r13d, 0xfffffffe
mov dword [rsp + 0x60], r13d
mov rdx, qword [rbp - 0x58]
cmp rdx, 7
jbe 0x14000f2e2
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000f2dd
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000f64f
call fcn.1400ff054
movdqa xmm0, xmmword [0x1401533b0]
movdqu xmmword [rbp - 0x60], xmm0
mov word [rbp - 0x70], di
mov r15d, edi
xorps xmm0, xmm0
movups xmmword [rbp - 0x50], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x40], xmm1
movdqa xmm0, xmmword [0x1401533b0]
movdqu xmmword [rbp - 0x40], xmm0
mov word [rbp - 0x50], di
mov rax, qword [rbp - 0x10]
movsxd rcx, dword [rax + 4]
lea rax, [rbp - 0x10]
add rcx, rax
mov dl, 0xa
call fcn.1400416e0
movzx r8d, ax
lea rdx, [rbp - 0x50]
lea rcx, [rbp - 0x10]
call fcn.1400464f0
mov rcx, qword [rax]
movsxd rdx, dword [rcx + 4]
test byte [rdx + rax + 0x10], 6
jne 0x14000f4b6
nop
mov rax, qword [rbp - 0x10]
movsxd rcx, dword [rax + 4]
mov eax, dword [rbp + rcx]
test al, 6
jne 0x14000f4b1
test al, 1
jne 0x14000f4b1
cmp dword [0x14017d388], 3
ja 0x14000f37e
test r15d, r15d
jle 0x14000f475
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x78], xmm0
mov qword [rbp - 0x78], rdi
lea r8, [rsp + 0x78]
lea rdx, [rbp - 0x50]
call fcn.140008ba0
mov rdx, qword [r14 + 8]
lea r8, [rsp + 0x78]
cmp rdx, qword [r14 + 0x10]
je 0x14000f3b4
call fcn.140049760
add qword [r14 + 8], 0x18
jmp 0x14000f3bd
mov rcx, r14
call fcn.140046740
nop
mov rbx, qword [rsp + 0x78]
test rbx, rbx
je 0x14000f475
mov rsi, qword [rbp - 0x80]
cmp rbx, rsi
je 0x14000f430
mov rdx, qword [rbx + 0x18]
cmp rdx, 7
jbe 0x14000f413
mov rcx, qword [rbx]
lea rdx, [rdx*2 + 2]
cmp rdx, 0x1000
jb 0x14000f40e
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x14000f65b
mov rcx, r8
call fcn.1400ff054
mov qword [rbx + 0x10], rdi
mov qword [rbx + 0x18], 7
mov word [rbx], di
add rbx, 0x20
cmp rbx, rsi
jne 0x14000f3d4
mov rbx, qword [rsp + 0x78]
mov rdx, qword [rbp - 0x78]
sub rdx, rbx
and rdx, 0xffffffffffffffe0
mov rax, rbx
cmp rdx, 0x1000
jb 0x14000f460
add rdx, 0x27
mov rbx, qword [rbx - 8]
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000f65b
mov rcx, rbx
call fcn.1400ff054
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x78], xmm0
mov qword [rbp - 0x78], rdi
inc r15d
mov rax, qword [rbp - 0x10]
movsxd rcx, dword [rax + 4]
lea rax, [rbp - 0x10]
add rcx, rax
mov dl, 0xa
call fcn.1400416e0
movzx r8d, ax
lea rdx, [rbp - 0x50]
lea rcx, [rbp - 0x10]
call fcn.1400464f0
mov rcx, qword [rax]
movsxd rdx, dword [rcx + 4]
test byte [rdx + rax + 0x10], 6
je 0x14000f350
mov rsi, qword [rsp + 0x68]
mov rdx, qword [rbp - 0x38]
cmp rdx, 7
jbe 0x14000f4f6
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000f4f1
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000f655
call fcn.1400ff054
movdqa xmm0, xmmword [0x1401533b0]
movdqu xmmword [rbp - 0x40], xmm0
mov word [rbp - 0x50], di
mov eax, dword [rbp + 0x138]
mov dword [0x14017d388], eax
lea rcx, [rbp - 0x10]
call fcn.14000f670
nop
mov rdx, qword [rsp + 0x58]
cmp rdx, 0xf
jbe 0x14000f55a
inc rdx
mov rcx, qword [rsp + 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000f555
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000f61f
call fcn.1400ff054
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x58], InitCommonControls
mov byte [rsp + 0x40], 0
lea r15, [0x14017d330]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rdi, qword [r14 + 8]
sub rdi, qword [r14]
sar rdi, 3
movabs rcx, 0xaaaaaaaaaaaaaaab
imul rdi, rcx
jmp 0x14000f5fa
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
mov rdx, qword [rsp + 0x58]
cmp rdx, 0xf
jbe 0x14000f5db
inc rdx
mov rcx, qword [rsp + 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000f5d6
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000f61f
call fcn.1400ff054
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x58], InitCommonControls
mov byte [rsp + 0x40], 0
jmp 0x14000f5fa
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
mov rcx, r15
call fcn.1400d899c
mov eax, edi
mov rbx, qword [rsp + 0x228]
add rsp, 0x1e0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.14010b448
nop
call fcn.140006440
nop
mov ecx, 5
call fcn.1400d7b54
int3
dec eax
mov dword [0x14017d37c], eax
mov ecx, 6
call fcn.1400d7b54
nop
call fcn.140006710
nop
call fcn.14010b448
int3
call fcn.14010b448
nop
call fcn.14010b448
int3