Function at 0x140005340
Capabilities:
Read file on windows

Disassembly:
push rbp
push rsi
push r14
sub rsp, 0x30
mov rbp, r8
mov r14, rdx
mov rsi, rcx
test r8, r8
jg 0x140005362
xor eax, eax
add rsp, 0x30
pop r14
pop rsi
pop rbp
ret
cmp qword [rcx + 0x68], 0
je case.default.0x140005371
add rsp, 0x30
pop r14
pop rsi
pop rbp
jmp qword [sym.imp.MSVCP140.dll_protected_virtual:_long_long___int64____cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::xsgetn_char____ptr64__long_long___int64_____ptr64]
mov rax, qword [rcx + 0x38]
mov qword [rsp + 0x28], rbx
mov rbx, rbp
mov rdx, qword [rax]
test rdx, rdx
je 0x140005394
mov rax, qword [rcx + 0x50]
mov ecx, dword [rax]
jmp 0x140005396
xor ecx, ecx
movsxd rax, ecx
test ecx, ecx
je 0x1400053d2
mov qword [rsp + 0x20], rdi
cmp rax, rbp
mov rdi, rbp
mov rcx, r14
cmovb rdi, rax
mov r8, rdi
call sub.VCRUNTIME140.dll_memcpy
mov rax, qword [rsi + 0x50]
add r14, rdi
sub rbx, rdi
sub dword [rax], edi
mov rcx, qword [rsi + 0x38]
movsxd rax, edi
mov rdi, qword [rsp + 0x20]
add qword [rcx], rax
cmp qword [rsi + 0x80], 0
je 0x14000546e
mov r8, qword [rsi + 0x18]
lea rax, [rsi + 0x70]
cmp qword [r8], rax
jne 0x14000540d
mov rcx, qword [rsi + 0x88]
mov rdx, qword [rsi + 0x90]
mov qword [r8], rcx
sub edx, ecx
mov rax, qword [rsi + 0x38]
mov qword [rax], rcx
mov rax, qword [rsi + 0x50]
mov dword [rax], edx
cmp rbx, 0xfff
jbe 0x14000544e
nop word [rax + rax]
mov r9, qword [rsi + 0x80]
mov edx, 1
mov r8d, 0xfff
mov rcx, r14
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
add r14, rax
sub rbx, rax
cmp rax, 0xfff
jne 0x14000546e
cmp rbx, rax
ja 0x140005420
test rbx, rbx
je 0x14000546e
mov r9, qword [rsi + 0x80]
mov r8, rbx
mov edx, 1
mov rcx, r14
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
sub rbx, rax
sub rbp, rbx
mov rbx, qword [rsp + 0x28]
mov rax, rbp
add rsp, 0x30
pop r14
pop rsi
pop rbp
ret
mov rdx, r9
shl r9, 0x10
mov eax, 0xd
sar r9, 0x38
shr rdx, 0x30
sub eax, r9d
and dh, 0x10
cmovne r14d, eax
mov esi, r14d
je 0x140036da8
lea rbp, [rsp + 0x80]
mov r12d, 0xd
movabs r13, 0xffffffffffff
jmp 0x1400369c8
cmp dword [rbx], r14d
jne 0x1400369bb
mov rdx, qword [rbx + 8]
mov r8, rsi
mov rcx, rbp
and rdx, r13
call 0x14051b9e0
test eax, eax
je 0x1400369f0
add rbx, 0x20
cmp rbx, rdi
je 0x140036f80
test byte [rbx + 0xf], 0x10
je 0x1400369a0
movsx edx, byte [rbx + 0xd]
mov eax, r12d
sub eax, edx
mov rdx, rbx
cmp r14d, eax
jne 0x1400369bb
mov r8, rsi
mov rcx, rbp
call 0x14051b9e0
test eax, eax
jne 0x1400369bb
nop
cmp rbx, rdi
je 0x140036f80
lea rax, [rbx + 0x10]
mov rcx, qword [rsp + 0xf0]
movabs r12, 0xffffffffffff
mov qword [rsp + 0x30], rax
mov rax, qword [rbx + 0x18]
mov qword [rsp + 0x40], rax
mov r13, rax
mov eax, dword [rbx + 0x10]
and r13, r12
mov dword [rsp + 0x38], eax
shl rax, 5
mov rsi, r13
mov qword [rsp + 0x50], rax
lea rdi, [r13 + rax]
call 0x14051ba88
mov dword [rsp + 0x74], 0
movabs r10, 0x405000000000000
or r10, qword [rsp + 0xf0]
mov qword [rsp + 0x78], r10
mov r15, r10
mov dword [rsp + 0x70], eax
cmp r13, rdi
je 0x140036fcf
mov rcx, r10
mov rdx, r10
mov r11d, 0xd
shl rcx, 0x10
shr rdx, 0x30
sar rcx, 0x38
sub r11d, ecx
and dx, 0x1000
mov rcx, qword [rsp + 0xf0]
mov ebp, r11d
setne r9b
cmove ebp, eax
and rcx, r12
mov ebx, ebp
mov qword [rsp + 0x20], rbx
test dx, dx
jne 0x140036d00
mov word [rsp + 0x60], dx
mov rdx, rdi
mov r14d, 0xd
mov edi, ebp
mov dword [rsp + 0x58], r11d
mov rbx, rcx
mov rbp, rdx
mov byte [rsp + 0x66], r9b
mov qword [rsp + 0x48], r13
mov qword [rsp + 0x68], rax
jmp 0x140036b0e
cmp edi, dword [rsi]
jne 0x140036b01
mov rdx, qword [rsi + 8]
and rdx, r12
cmp rbx, rdx
je 0x140036b29
mov r8, qword [rsp + 0x20]
mov rcx, rbx
call 0x14051b9e0
test eax, eax
je 0x140036b29
add rsi, 0x20
cmp rsi, rbp
je 0x140037118
test byte [rsi + 0xf], 0x10
je 0x140036ae0
movsx edx, byte [rsi + 0xd]
mov eax, r14d
sub eax, edx
cmp edi, eax
jne 0x140036b01
mov rdx, rsi
cmp rbx, rdx
jne 0x140036af0
mov rcx, rbx
mov r11d, dword [rsp + 0x58]
mov rbx, rsi
movzx edx, word [rsp + 0x60]
movzx r9d, byte [rsp + 0x66]
mov rsi, qword [rsp + 0x48]
mov rdi, rbp
mov rax, qword [rsp + 0x68]
cmp rbx, rdi
je 0x140036fe0
test r9b, r9b
mov r12d, eax
mov dword [rsp + 0x84], 0
cmovne r12d, r11d
mov qword [rsp + 0x88], r15
mov dword [rsp + 0x80], eax
mov ebp, r12d
test dx, dx
je 0x140036e20
lea rbx, [rsp + 0x80]
mov r13d, 0xd
movabs r14, 0xffffffffffff
jmp 0x140036bc8
cmp dword [rsi], r12d
jne 0x140036bbf
mov rdx, qword [rsi + 8]
and rdx, r14
mov r8, rbp
mov rcx, rbx
call 0x14051b9e0
test eax, eax
je 0x140036cb0
add rsi, 0x20
cmp rsi, rdi
je 0x140036bf0
test byte [rsi + 0xf], 0x10
je 0x140036ba0
movsx edx, byte [rsi + 0xd]
mov eax, r13d
sub eax, edx
mov rdx, rsi
cmp r12d, eax
je 0x140036bac
add rsi, 0x20
cmp rsi, rdi
jne 0x140036bc8
nop dword [rax + rax]
mov qword [0x1406f7ea0], 0
lea rsi, [0x1406f7ea0]
mov qword [0x1406f7ea8], 0
jmp 0x140036cbd
cmp rsi, rdi
je 0x140036bf0
add rsi, 0x10
movzx eax, byte [rsp + 0x2c]
mov qword [rsi], 0
mov qword [rsp + 0x88], 0
add eax, 9
mov word [rsp + 0x8e], ax
mov rax, qword [rsp + 0x88]
mov qword [rsi + 8], rax
mov ebx, ebp
mov qword [rsp + 0x58], rcx
mov rbp, qword [rsp + 0x20]
lea r14, [rsp + 0x70]
mov dword [rsp + 0x60], r11d
mov word [rsp + 0x66], dx
mov byte [rsp + 0x68], r9b
mov qword [rsp + 0x48], r13
mov qword [rsp + 0x20], rax
jmp 0x140036d57
cmp dword [rsi], ebx
jne 0x140036d4a
mov rdx, qword [rsi + 8]
mov r8, rbp
mov rcx, r14
and rdx, r12
call 0x14051b9e0
test eax, eax
je 0x140036d7e
add rsi, 0x20
cmp rsi, rdi
je 0x140037140
test byte [rsi + 0xf], 0x10
je 0x140036d30
movsx edx, byte [rsi + 0xd]
mov eax, 0xd
sub eax, edx
mov rdx, rsi
cmp ebx, eax
jne 0x140036d4a
mov r8, rbp
mov rcx, r14
call 0x14051b9e0
test eax, eax
jne 0x140036d4a
mov rbx, rsi
mov rcx, qword [rsp + 0x58]
mov r11d, dword [rsp + 0x60]
movzx edx, word [rsp + 0x66]
movzx r9d, byte [rsp + 0x68]
mov rsi, qword [rsp + 0x48]
mov rax, qword [rsp + 0x20]
jmp 0x140036b4c
mov r13, qword [rsp + 0xe8]
mov r12d, 0xd
movabs rbp, 0xffffffffffff
and r13, rbp
jmp 0x140036dfd
cmp r14d, dword [rbx]
jne 0x140036df0
mov rdx, qword [rbx + 8]
and rdx, rbp
cmp r13, rdx
je 0x1400369f0
mov r8, rsi
mov rcx, r13
call 0x14051b9e0
test eax, eax
je 0x1400369f0
add rbx, 0x20
cmp rdi, rbx
je 0x140036f80
test byte [rbx + 0xf], 0x10
je 0x140036dc8
movsx edx, byte [rbx + 0xd]
mov eax, r12d
sub eax, edx
cmp r14d, eax
jne 0x140036df0
mov rdx, rbx
jmp 0x140036dd4
lea rax, [rsp + 0x70]
test r9b, r9b
mov r13d, 0xd
movabs r14, 0xffffffffffff
cmove rax, rcx
mov rbx, rax
jmp 0x140036e7d
cmp r12d, dword [rsi]
jne 0x140036e70
mov rdx, qword [rsi + 8]
and rdx, r14
cmp rbx, rdx
je 0x140036cb0
mov r8, rbp
mov rcx, rbx
call 0x14051b9e0
test eax, eax
je 0x140036cb0
add rsi, 0x20
cmp rsi, rdi
je 0x140036bf0
test byte [rsi + 0xf], 0x10
je 0x140036e48
movsx edx, byte [rsi + 0xd]
mov eax, r13d
sub eax, edx
cmp r12d, eax
jne 0x140036e70
mov rdx, rsi
jmp 0x140036e54
mov rax, qword [rsp + 0xe0]
mov rcx, qword [rsp + 0xe0]
mov qword [rdi + 8], r9
movabs rbx, 0xffffffffffff
mov qword [rsp + 0x80], 0
movdqu xmm1, xmmword [rsp + 0x80]
mov dword [rdi], r10d
mov dword [rdi + 4], 0
movups xmmword [rdi + 0x10], xmm1
mov eax, dword [rax]
and rbx, qword [rcx + 8]
mov qword [rsp + 0x30], r9
mov dword [rsp + 0x20], eax
add eax, 1
mov dword [rcx], eax
mov rcx, qword [rsp + 0xe8]
shl rax, 5
lea rdi, [rbx + rax]
call 0x14051ba88
mov r9, qword [rsp + 0x30]
mov dword [rsp + 0x84], 0
mov dword [rsp + 0x80], eax
mov r14d, eax
mov qword [rsp + 0x88], r9
cmp rbx, rdi
jne 0x14003695b
nop dword [rax + rax]
lea rax, [0x1406f7ea0]
xor edi, edi
xor esi, esi
xor r13d, r13d
mov qword [0x1406f7ea0], 0
movabs r10, 0x405000000000000
or r10, qword [rsp + 0xf0]
mov qword [0x1406f7ea8], 0
mov r15, r10
mov dword [rsp + 0x38], 0
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x50], 0
nop dword [rax + rax]
mov rax, qword [rsp + 0xe0]
mov rcx, qword [rsp + 0xf0]
mov rbx, qword [rax + 0x10]
call 0x14051ba88
mov qword [rsp + 0x88], 0
mov rbp, rax
movzx eax, byte [rsp + 0x2c]
add eax, 9
mov word [rsp + 0x8e], ax
mov rax, qword [rsp + 0x30]
mov eax, dword [rax + 4]
cmp dword [rsp + 0x38], eax
jb 0x1400370e0
test eax, eax
jne 0x140037220
mov edi, 0x200
test r13, r13
je 0x14003726f
xor r9d, r9d
mov r12d, 0x10
mov rax, qword [rbx + 0x10]
mov rax, qword [rax]
mov rdx, qword [rax + 8]
mov r11, qword [rax]
lea rcx, [rdx + 0x18]
mov r8, rcx
sub r8, r9
add r8, rax
cmp rsi, r8
je 0x14003729b
add rdx, rdi
mov r14, rdi
cmp r11, rdx
jb 0x140037355
mov qword [rax + 8], rdx
lea r13, [rax + rcx]
test r9, r9
jne case.0x140005291.0
mov rsi, qword [rsp + 0x48]
mov rdi, rbp
jmp 0x140036fe0
mov rsi, qword [rsp + 0x48]
jmp 0x140036fe0
mov rax, qword [r15 + 0x10]
mov rax, qword [rax]
mov r8, qword [rax + 8]
mov r14, qword [rax]
lea rcx, [r8 + 0x18]
mov rdx, rcx
sub rdx, r13
add rdx, rax
cmp r12, rdx
je 0x1400372c9
add r8, rsi
mov rdi, rsi
cmp r14, r8
jb 0x140037425
mov qword [rax + 8], r8
lea r12, [rax + rcx]
test r13, r13
jne 0x14003730a
mov rax, qword [rsp + 0xe0]
mov rax, qword [rax + 8]
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0xe0]
mov eax, dword [rax]
shl rax, 5
mov qword [rsp + 0x50], rax
mov rcx, qword [rsp + 0xe0]
mov rdi, qword [rsp + 0x50]
movabs rax, 0xffff000000000000
movabs rdx, 0xffffffffffff
and rax, qword [rsp + 0x48]
or rax, r12
mov dword [rcx + 4], ebp
mov qword [rcx + 8], rax
and rax, rdx
add rdi, rax
jmp 0x140036ee3
lea r12d, [rax + 1]
shr r12d, 1
add r12d, eax
cmp eax, r12d
jae 0x1400370e0
mov edi, r12d
shl rdi, 5
test r13, r13
je 0x140037275
shl rax, 5
mov r9, rax
cmp rax, rdi
jb 0x140037049
jmp 0x1400370a6
jge 0x1400372ad
xor ebp, ebp
jmp 0x14003717d
mov r12d, 0x10
mov rax, qword [rbx + 0x10]
mov rax, qword [rax]
mov rdx, qword [rax + 8]
lea rcx, [rdi + rdx]
cmp qword [rax], rcx
jb 0x1400373b8
mov qword [rax + 8], rcx
lea r13, [rax + rdx + 0x18]
jmp 0x1400370a6
mov r8, rdx
sub r8, r9
add r8, rdi
cmp r11, r8
jb 0x14003706d
mov qword [rax + 8], r8
jmp 0x1400370a6
mov rdx, r8
sub rdx, r13
add rdx, rsi
cmp r14, rdx
jb 0x1400371a1
mov qword [rax + 8], rdx
jmp 0x1400371e5
mov r8, r13
mov rdx, rbx
mov rcx, r12
mov qword [rsp + 0x30], r10
mov qword [rsp + 0x20], r9
call 0x14051b9e8
mov r10, qword [rsp + 0x30]
mov r9, qword [rsp + 0x20]
mov rax, qword [rsp + 0xe0]
mov rax, qword [rax + 8]
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0xe0]
mov eax, dword [rax]
shl rax, 5
mov qword [rsp + 0x50], rax
jmp 0x1400371e5
mov rdi, qword [rbx]
cmp r14, rdi
cmovae rdi, r14
cmp qword [rbx + 8], 0
je 0x1400374b1
mov r13, rdi
add r13, 0x18
je 0x14003708d
mov rcx, r13
mov qword [rsp + 0x20], r9
call 0x14051b9d0
mov r9, qword [rsp + 0x20]
test rax, rax
je 0x140037490
mov rdx, qword [rbx + 0x10]
mov qword [rax], rdi
mov qword [rax + 8], 0
mov rcx, qword [rdx]
mov qword [rax + 0x10], rcx
mov ecx, 0x18
mov qword [rdx], rax
mov rdx, r14
jmp 0x14003707c
mov rsi, qword [rbx]
cmp rdi, rsi
cmovae rsi, rdi
cmp qword [rbx + 8], 0
je 0x140037563
mov r13, rsi
add r13, 0x18
je 0x14003708d
mov rcx, r13
call 0x14051b9d0
test rax, rax
je 0x140037490
xor edx, edx
mov qword [rax], rsi
mov qword [rax + 8], rdx
mov rdx, qword [rbx + 0x10]
mov rcx, qword [rdx]
mov qword [rax + 0x10], rcx
mov rcx, qword [rsp + 0x30]
mov qword [rdx], rax
mov edx, dword [rcx]
mov rsi, qword [rcx + 8]
mov rcx, rdi
shl rdx, 5
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x50], rdx
xor edx, edx
jmp 0x14003728d
mov rsi, qword [r15]
cmp rdi, rsi
cmovae rsi, rdi
cmp qword [r15 + 8], 0
je 0x1400375d9
mov r12, rsi
add r12, 0x18
je 0x1400371c1
mov rcx, r12
mov qword [rsp + 0x30], r10
mov qword [rsp + 0x20], r9
call 0x14051b9d0
mov r9, qword [rsp + 0x20]
mov r10, qword [rsp + 0x30]
test rax, rax
je 0x1400375ad
mov rdx, qword [r15 + 0x10]
xor ecx, ecx
mov qword [rax], rsi
mov r8, rdi
mov qword [rax + 8], rcx
mov rcx, qword [rdx]
mov qword [rax + 0x10], rcx
mov ecx, 0x18
mov qword [rdx], rax
jmp 0x1400371b0
mov rax, qword [rsp + 0x30]
xor r13d, r13d
mov rcx, qword [rax + 8]
mov eax, dword [rax]
shl rax, 5
mov qword [rsp + 0x40], rcx
mov qword [rsp + 0x50], rax
jmp 0x1400370a6
mov ecx, 1
mov qword [rsp + 0x20], r9
call 0x1406e2160
mov rdx, qword [rbx + 0x10]
mov r9, qword [rsp + 0x20]
mov qword [rbx + 8], rax
mov qword [rdx + 8], rax
jmp 0x14003736a
mov ecx, 1
call 0x1406e2160
mov rdx, qword [rbx + 0x10]
mov qword [rbx + 8], rax
mov qword [rdx + 8], rax
jmp 0x1400373cd
mov rax, qword [rsp + 0xe0]
xor r12d, r12d
mov rax, qword [rax + 8]
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0xe0]
mov eax, dword [rax]
shl rax, 5
mov qword [rsp + 0x50], rax
jmp 0x1400371e5
mov ecx, 1
mov qword [rsp + 0x30], r10
mov qword [rsp + 0x20], r9
call 0x1406e2160
mov rdx, qword [r15 + 0x10]
mov r10, qword [rsp + 0x30]
mov qword [r15 + 8], rax
mov r9, qword [rsp + 0x20]
mov qword [rdx + 8], rax
jmp 0x14003743a