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

Disassembly:
push rdi
sub rsp, 0x30
mov qword [rsp + 0x20], 0xfffffffffffffffe
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0x58], rsi
mov rsi, rdx
cmp qword [rcx], 0
jne 0x140111de8
mov eax, 0x80070006
jmp 0x140111e83
mov rdx, rcx
lea rcx, [rsp + 0x40]
call fcn.1401133d8
mov rbx, qword [rsp + 0x40]
test rbx, rbx
je 0x140111e93
mov rcx, rbx
call 0x140111ea4
mov edi, eax
test eax, eax
jns 0x140111e43
or ecx, 0xffffffff
lock xadd dword [rbx + 8], ecx
cmp ecx, 1
jne 0x140111e3f
mov rbx, qword [rsp + 0x40]
mov rax, qword [rbx]
xor edx, edx
mov rcx, rbx
mov rax, qword [rax + 0x48]
call qword [case.0x140007d11.0]
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
nop
mov eax, edi
jmp 0x140111e83
mov rcx, qword [rsi]
mov qword [rsp + 0x50], rcx
mov qword [rsi], rbx
test rcx, rcx
je 0x140111e81
or eax, 0xffffffff
lock xadd dword [rcx + 8], eax
cmp eax, 1
jne 0x140111e81
mov rbx, qword [rsp + 0x50]
mov rax, qword [rbx]
xor edx, edx
mov rcx, rbx
mov rax, qword [rax + 0x48]
call qword [case.0x140007d11.0]
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
nop
xor eax, eax
mov rbx, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x58]
add rsp, 0x30
pop rdi
ret
xor edx, edx
mov ecx, 0x152139a
call fcn.140007884
nop
jmp 0x140111ea2
nop
nop
mov rax, rsp
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x150
mov qword [rsp + 0x60], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov rax, qword [0x1401d3050]
xor rax, rsp
mov qword [rsp + 0x140], rax
mov rbx, rcx
mov r12, qword [rcx + 0x58]
xor edi, edi
test r12, r12
jne 0x140111ef2
mov eax, 0x80070006
jmp 0x14011264d
mov r14, rdi
mov qword [rsp + 0x38], rdi
cmp r12, 0xffffffffffffffff
jne 0x140111f10
mov esi, 0x80070006
mov r12d, 1
jmp 0x140111fcd
lea rdx, [rsp + 0x40]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov r15d, eax
test eax, eax
jne 0x140111f29
mov esi, edi
jmp 0x140111f05
mov eax, dword [rsp + 0x40]
neg eax
sbb esi, esi
and esi, 0x80004005
cmp dword [rsp + 0x40], edi
jne 0x140111f05
lea ecx, [r15 + 1]
add rcx, rcx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
test rax, rax
cmovne r14, rax
mov qword [rsp + 0x38], r14
jne 0x140111f69
mov r15d, 0x8007000e
mov esi, r15d
mov r12d, 1
jmp 0x140111fd3
test r14, r14
je 0x140111f58
mov word [r14 + r15*2], di
mov dword [rsp + 0x30], edi
mov qword [rsp + 0x20], rdi
lea r9, [rsp + 0x30]
mov r8d, r15d
mov rdx, r14
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x140111fad
call qword [sym.imp.KERNEL32.dll_GetLastError]
movzx esi, ax
or esi, 0x80070000
test eax, eax
cmovle esi, eax
jmp 0x140111f05
mov eax, dword [rsp + 0x30]
cmp r15d, eax
jne 0x140111f94
not al
mov r12d, 1
and al, r12b
neg al
sbb esi, esi
not esi
and esi, 0x8007139f
mov r15d, 0x8007000e
test esi, esi
jns 0x140111fed
test r14, r14
je 0x140111fe6
mov rcx, r14
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
nop
mov eax, esi
jmp 0x14011264d
test r14, r14
jne 0x140111ff7
jmp 0x14011264b
or r8, 0xffffffffffffffff
inc r8
cmp word [r14 + r8*2], di
jne 0x140111ffb
mov rdx, r14
lea rcx, [rsp + 0x30]
call fcn.14002a940
mov rsi, qword [rsp + 0x30]
test rsi, rsi
jne 0x14011201e
jmp 0x140112060
mov qword [rsp + 0x48], rbx
mov byte [rsp + 0x50], r12b
mov rax, qword [rsi]
mov rcx, rsi
mov rax, qword [rax + 0x10]
call qword [case.0x140007d11.0]
cmp eax, r12d
je 0x140112071
mov rcx, rbx
call fcn.14011267c
mov rax, qword [rsi]
mov rcx, rsi
mov rax, qword [rax + 8]
call qword [case.0x140007d11.0]
mov r15d, edi
nop dword [rax + rax]
mov rcx, r14
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov eax, r15d
jmp 0x14011264d
mov r13d, 0x1000
mov rax, qword [rsi]
mov rcx, rsi
mov rax, qword [rax + 0x10]
call qword [case.0x140007d11.0]
cmp eax, 2
jne 0x14011262c
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x58], rdi
mov rax, qword [rsi]
lea r8, [rsp + 0x58]
lea rdx, [rsp + 0x40]
mov rcx, rsi
mov rax, qword [rax + 0x18]
call qword [case.0x140007d11.0]
test al, al
jne 0x1401120f6
test r12b, r12b
je 0x1401120c6
mov rcx, rbx
call fcn.14011267c
nop
mov qword [rsp + 0x30], rdi
mov rax, qword [rsi]
mov rcx, rsi
mov rax, qword [rax + 8]
call qword [case.0x140007d11.0]
test r14, r14
je 0x1401120ef
mov qword [rsp + 0x38], rdi
mov rcx, r14
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
nop
xor eax, eax
jmp 0x14011264d
mov qword [rsp + 0xc8], rdi
mov qword [rsp + 0xd0], 7
mov word [rsp + 0xb8], di
mov rdx, qword [rsp + 0x40]
or r15, 0xffffffffffffffff
mov r8, r15
inc r8
cmp word [rdx + r8*2], di
jne 0x14011211e
lea rcx, [rsp + 0xb8]
call fcn.14001c6b0
movups xmm0, xmmword [rsp + 0xb8]
movups xmmword [rsp + 0x68], xmm0
movups xmmword [rsp + 0x98], xmm0
movups xmm0, xmmword [rsp + 0xc8]
movups xmmword [rsp + 0x78], xmm0
movups xmmword [rsp + 0xa8], xmm0
mov qword [rsp + 0xc8], rdi
mov qword [rsp + 0xd0], 7
mov word [rsp + 0xb8], di
mov rax, qword [rsi]
mov rcx, rsi
mov rax, qword [rax + 0x10]
call qword [case.0x140007d11.0]
cmp eax, 3
je 0x140112217
mov rax, qword [rsp + 0xb0]
cmp rax, 8
jb 0x1401121d9
lea rax, [rax*2 + 2]
mov rcx, qword [rsp + 0x98]
mov rdx, rcx
cmp rax, r13
jb 0x1401121d2
mov rcx, qword [rcx - 8]
sub rdx, rcx
lea rax, [rdx - 8]
cmp rax, 0x1f
jbe 0x1401121d2
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
nop
test r12b, r12b
je 0x1401121e7
mov rcx, rbx
call fcn.14011267c
nop
mov qword [rsp + 0x30], rdi
mov rax, qword [rsi]
mov rcx, rsi
mov rax, qword [rax + 8]
call qword [case.0x140007d11.0]
test r14, r14
je 0x140112210
mov qword [rsp + 0x38], rdi
mov rcx, r14
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
nop
xor eax, eax
jmp 0x14011264d
mov rax, qword [rsi]
lea r8, [rsp + 0x58]
lea rdx, [rsp + 0x40]
mov rcx, rsi
mov rax, qword [rax + 0x18]
call qword [case.0x140007d11.0]
test al, al
jne 0x1401122bc
mov rax, qword [rsp + 0xb0]
cmp rax, 8
jb 0x14011227e
lea rax, [rax*2 + 2]
mov rcx, qword [rsp + 0x98]
mov rdx, rcx
cmp rax, r13
jb 0x140112277
mov rcx, qword [rcx - 8]
sub rdx, rcx
lea rax, [rdx - 8]
cmp rax, 0x1f
jbe 0x140112277
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
nop
test r12b, r12b
je 0x14011228c
mov rcx, rbx
call fcn.14011267c
nop
mov qword [rsp + 0x30], rdi
mov rax, qword [rsi]
mov rcx, rsi
mov rax, qword [rax + 8]
call qword [case.0x140007d11.0]
test r14, r14
je 0x1401122b5
mov qword [rsp + 0x38], rdi
mov rcx, r14
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
nop
xor eax, eax
jmp 0x14011264d
mov qword [rsp + 0x110], rdi
mov r13d, 7
mov qword [rsp + 0x118], r13
mov word [rsp + 0x100], di
mov rdx, qword [rsp + 0x40]
mov r8, r15
inc r8
cmp word [rdx + r8*2], di
jne 0x1401122e2
lea rcx, [rsp + 0x100]
call fcn.14001c6b0
movups xmm2, xmmword [rsp + 0x100]
movups xmmword [rsp + 0xd8], xmm2
movups xmm1, xmmword [rsp + 0x110]
movups xmmword [rsp + 0xe8], xmm1
lea rax, [rsp + 0x98]
movups xmm4, xmmword [rsp + 0x68]
movq r15, xmm4
movups xmm3, xmmword [rsp + 0x78]
movdqa xmm0, xmm3
psrldq xmm0, 8
movq rcx, xmm0
mov qword [rsp + 0xb0], rcx
cmp rcx, 8
cmovae rax, r15
movq r10, xmm3
cmp r10, 0xc
jne 0x14011239b
mov r9, r10
lea r11, str.AsyncStorage
mov r8, r11
movzx ecx, word [rax]
movzx edx, word [str.AsyncStorage]
cmp cx, dx
jb 0x14011239b
sub rax, r11
cmp cx, dx
ja 0x14011239b
cmp r9, r12
je 0x140112465
sub r9, r12
add r8, 2
movzx ecx, word [rax + r8]
movzx edx, word [r8]
cmp cx, dx
jae 0x14011237b
movq r15, xmm1
add r15, r10
lea rcx, [rbx + 0x10]
movaps xmmword [rsp + 0x100], xmm4
movaps xmmword [rsp + 0x110], xmm3
mov qword [rsp + 0xa8], rdi
mov qword [rsp + 0xb0], r13
mov word [rsp + 0x98], di
movaps xmmword [rsp + 0x120], xmm2
movaps xmmword [rsp + 0x130], xmm1
mov qword [rsp + 0xe8], rdi
mov qword [rsp + 0xf0], r13
mov word [rsp + 0xd8], di
lea r8, [rsp + 0x100]
lea rdx, [rsp + 0x88]
call fcn.14011333c
lea rcx, [rsp + 0x100]
call fcn.14001ce94
lea rax, [r15 + r15]
add qword [rbx + 0x50], rax
mov r15, qword [rsp + 0x98]
cmp r13, 8
jb 0x140112477
lea rax, [r13*2 + 2]
mov rcx, qword [rsp + 0xd8]
mov rdx, rcx
mov r13d, 0x1000
cmp rax, r13
jb 0x14011246f
mov rcx, qword [rcx - 8]
sub rdx, rcx
lea rax, [rdx - 8]
cmp rax, 0x1f
jbe 0x14011246f
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
mov r13, qword [rsp + 0xf0]
jmp 0x140112429
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
jmp 0x14011247d
mov r13d, 0x1000
mov rax, qword [rsp + 0xb0]
cmp rax, 8
jb 0x1401124ca
lea rax, [rax*2 + 2]
mov rcx, r15
cmp rax, r13
jb 0x1401124c0
mov r15, qword [r15 - 8]
sub rcx, r15
lea rax, [rcx - 8]
cmp rax, 0x1f
jbe 0x1401124c0
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
nop dword [rax]
nop word [rax + rax]
mov rcx, r15
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
nop
jmp 0x140112077
mov rax, qword [rsi]
mov rcx, rsi
mov rax, qword [rax + 8]
call qword [case.0x140007d11.0]
test r14, r14
je 0x14011264b
mov rcx, r14
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
nop
xor eax, eax
mov rcx, qword [rsp + 0x140]
xor rcx, rsp
call fcn.140118d00
lea r11, [rsp + 0x150]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret