Function at 0x140005f70
Capabilities:
Read file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x208
movaps xmmword [rsp + 0x190], xmm6
movaps xmmword [rsp + 0x1a0], xmm7
movaps xmmword [rsp + 0x1b0], xmm8
movaps xmmword [rsp + 0x1c0], xmm9
movaps xmmword [rsp + 0x1d0], xmm10
movaps xmmword [rsp + 0x1e0], xmm11
movaps xmmword [rsp + 0x1f0], xmm12
mov rbp, rcx
mov rcx, rdx
lea rdx, [0x1400a3379]
call sym.fopen
mov qword [rsp + 0x38], rax
test rax, rax
je 0x140006a75
mov rdi, qword [rsp + 0x38]
mov r8d, 2
xor edx, edx
mov rcx, rdi
call sym.fseek
mov rcx, rdi
call sym.ftell
mov rcx, rdi
movsxd rbx, eax
call sym.rewind
mov rcx, rbx
call sym.malloc
mov r8, rbx
mov r9, rdi
mov edx, 1
mov rsi, rax
mov rcx, rax
lea rbx, [rsp + 0xf0]
call sym.fread
movzx eax, byte [rsi]
movzx edx, byte [rsi + 2]
mov rcx, rsi
mov qword [rsp + 0xf0], 5
mov byte [rsp + 0x73], al
movzx eax, byte [rsi + 1]
shl rdx, 8
add rdx, rax
movzx eax, byte [rsi + 3]
shl rax, 0x10
add rax, rdx
movzx edx, byte [rsi + 4]
shl rdx, 0x18
add rax, rdx
mov rdx, rbx
mov qword [rsp + 0x28], rax
call sym.replay__parse_string
mov rdx, rbx
mov rcx, rsi
mov qword [rsp + 0x58], rax
call sym.replay__parse_string
mov rdx, rbx
mov rcx, rsi
mov qword [rsp + 0x60], rax
call sym.replay__parse_string
mov r8, qword [rsp + 0xf0]
xor r10d, r10d
mov qword [rsp + 0x68], rax
lea r9, [rsi + r8]
movzx eax, byte [rsi + r8 + 1]
movzx edx, byte [r9]
shl rax, 8
add rax, rdx
movzx edx, byte [rsi + r8 + 2]
mov qword [rsp + 0x90], rax
movzx eax, byte [rsi + r8 + 3]
shl rax, 8
add rax, rdx
movzx edx, byte [rsi + r8 + 4]
mov qword [rsp + 0x98], rax
movzx eax, byte [rsi + r8 + 5]
shl rax, 8
add rax, rdx
movzx edx, byte [rsi + r8 + 6]
mov qword [rsp + 0xa0], rax
movzx eax, byte [rsi + r8 + 7]
shl rax, 8
add rax, rdx
movzx edx, byte [rsi + r8 + 8]
mov qword [rsp + 0xa8], rax
movzx eax, byte [rsi + r8 + 9]
shl rax, 8
add rax, rdx
movzx edx, byte [rsi + r8 + 0xa]
mov qword [rsp + 0xb0], rax
movzx eax, byte [rsi + r8 + 0xb]
shl rax, 8
add rax, rdx
mov qword [rsp + 0xb8], rax
xor eax, eax
nop dword [rax]
movzx edx, byte [r9 + rax + 0xc]
lea ecx, [rax*8]
add rax, 1
shl rdx, cl
add r10, rdx
cmp rax, 4
jne 0x140006150
movzx eax, byte [rsi + r8 + 0x11]
movzx edx, byte [rsi + r8 + 0x10]
mov dword [rsp + 0x74], r10d
shl rax, 8
add rax, rdx
cmp byte [rsi + r8 + 0x12], 0
setne byte [rsp + 0x87]
xor r10d, r10d
mov qword [rsp + 0xc0], rax
xor eax, eax
movzx edx, byte [r9 + rax + 0x13]
lea ecx, [rax*8]
add rax, 1
shl rdx, cl
add r10, rdx
cmp rax, 4
jne 0x1400061a0
cmp byte [rsi + r8 + 0x17], 0xb
mov dword [rsp + 0x80], r10d
lea rdi, [r8 + 0x18]
je 0x1400067e8
mov qword [rsp + 0x40], 0
xor r12d, r12d
xor r15d, r15d
lea r13, [rsi + rdi]
mov rcx, r15
xor r14d, r14d
call sym.free
xor eax, eax
nop dword [rax]
movzx edx, byte [r13 + rax]
lea ecx, [rax*8]
add rax, 1
shl rdx, cl
add r14, rdx
cmp rax, 8
jne 0x1400061f8
xor ebx, ebx
xor eax, eax
nop dword [rax]
movzx edx, byte [r13 + rax + 8]
lea ecx, [rax*8]
add rax, 1
shl rdx, cl
add rbx, rdx
cmp rax, 4
jne 0x140006220
movsxd r13, ebx
add rdi, 0xc
mov rcx, r13
mov qword [rsp + 0x30], r13
lea r15, [rsi + rdi]
mov qword [rsp + 0x88], rdi
mov qword [rsp + 0xf0], rdi
call sym.malloc
mov r8, r13
mov rdx, r15
mov rcx, rax
mov qword [rsp + 0x78], rax
call sym.memcpy
test ebx, ebx
jg 0x140006468
mov dword [rsp + 0x54], 0xffffffff
xor edx, edx
mov qword [rsp + 0x48], 0
mov rcx, qword [rsp + 0x88]
mov rax, qword [rsp + 0x30]
xor ebx, ebx
add rcx, rax
cmp dword [rsp + 0x28], 0x13352b0
jg 0x140006430
cmp dword [rsp + 0x28], 0x13305af
jle 0x1400062e4
xor eax, eax
lea r10, [rsi + rcx]
nop dword [rax + rax]
movzx r8d, byte [r10 + rax]
lea ecx, [rax*8]
add rax, 1
shl r8, cl
add rbx, r8
cmp rax, 4
jne 0x1400062c8
mov rcx, rsi
mov qword [rsp + 0x88], rdx
call sym.free
mov rcx, qword [rsp + 0x38]
call sym.fclose
movzx eax, byte [rsp + 0x73]
mov qword [rbp + 0x38], r12
mov byte [rbp], al
mov eax, dword [rsp + 0x28]
mov dword [rbp + 4], eax
mov rax, qword [rsp + 0x58]
mov qword [rbp + 8], rax
mov rax, qword [rsp + 0x60]
mov qword [rbp + 0x10], rax
mov rax, qword [rsp + 0x68]
mov qword [rbp + 0x18], rax
movzx eax, word [rsp + 0x90]
mov word [rbp + 0x20], ax
movzx eax, word [rsp + 0x98]
mov word [rbp + 0x22], ax
movzx eax, word [rsp + 0xa0]
mov word [rbp + 0x24], ax
movzx eax, word [rsp + 0xa8]
mov word [rbp + 0x26], ax
movzx eax, word [rsp + 0xb0]
mov word [rbp + 0x28], ax
movzx eax, word [rsp + 0xb8]
mov word [rbp + 0x2a], ax
mov eax, dword [rsp + 0x74]
mov dword [rbp + 0x2c], eax
movzx eax, word [rsp + 0xc0]
mov word [rbp + 0x30], ax
movzx eax, byte [rsp + 0x87]
mov byte [rbp + 0x32], al
mov eax, dword [rsp + 0x80]
mov dword [rbp + 0x34], eax
mov rax, qword [rsp + 0x40]
mov qword [rbp + 0x40], rax
mov rax, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x88]
mov qword [rbp + 0x48], r14
mov qword [rbp + 0x58], rax
mov eax, dword [rsp + 0x54]
mov qword [rbp + 0x50], rdx
mov dword [rbp + 0x68], eax
mov rax, qword [rsp + 0x30]
mov qword [rbp + 0x60], rbx
mov qword [rbp + 0x70], rax
mov rax, qword [rsp + 0x78]
mov qword [rbp + 0x78], rax
movaps xmm6, xmmword [rsp + 0x190]
mov rax, rbp
movaps xmm7, xmmword [rsp + 0x1a0]
movaps xmm8, xmmword [rsp + 0x1b0]
movaps xmm9, xmmword [rsp + 0x1c0]
movaps xmm10, xmmword [rsp + 0x1d0]
movaps xmm11, xmmword [rsp + 0x1e0]
movaps xmm12, xmmword [rsp + 0x1f0]
add rsp, 0x208
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
xor eax, eax
lea r10, [rsi + rcx]
nop word cs:[rax + rax]
movzx r8d, byte [r10 + rax]
lea ecx, [rax*8]
add rax, 1
shl r8, cl
add rbx, r8
cmp rax, 8
jne 0x140006440
jmp 0x1400062e4
shl ebx, 2
lea rdi, [rsp + 0x100]
movsxd rbx, ebx
mov rcx, rbx
call sym.malloc
mov ecx, 0x11
mov r8d, 5
mov rdx, 0xffffffffffffffff
mov r13, rax
xor eax, eax
rep stosq qword [rdi], rax
lea rdi, [rsp + 0x100]
mov rcx, rdi
call sym.lzma_auto_decoder
test eax, eax
jne 0x140006a8f
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x100], r15
mov qword [rsp + 0x118], r13
mov qword [rsp + 0x108], rax
mov qword [rsp + 0x120], rbx
mov qword [rsp + 0x48], rsi
jmp 0x1400064f0
cmp r15d, 1
je 0x140006536
and r15d, 0xfffffffd
jne 0x140006a5b
xor edx, edx
mov rcx, rdi
call sym.lzma_code
cmp qword [rsp + 0x120], 0
mov r15d, eax
jne 0x1400064e0
lea rsi, [rbx + rbx]
mov rcx, r13
mov rdx, rsi
call sym.realloc
mov qword [rsp + 0x120], rbx
add rbx, rax
mov r13, rax
mov qword [rsp + 0x118], rbx
mov rbx, rsi
cmp r15d, 1
jne 0x1400064e6
mov edx, 3
mov rcx, rdi
mov rsi, qword [rsp + 0x48]
call sym.lzma_code
cmp eax, 1
jne 0x140006aa9
sub rbx, qword [rsp + 0x120]
mov rcx, r13
mov rdx, rbx
mov qword [rsp + 0xd8], rbx
call sym.realloc
mov rcx, rdi
mov qword [rsp + 0xc8], rax
call sym.lzma_end
test rbx, rbx
je 0x140006a40
mov rax, qword [rsp + 0xc8]
mov rcx, qword [rsp + 0xd8]
xor edx, edx
mov rbx, rax
lea r15, [rax + rcx]
nop
xor ecx, ecx
cmp byte [rax], 0x2c
sete cl
add rax, 1
add rdx, rcx
cmp rax, r15
jne 0x1400065a0
lea rcx, [rdx + rdx*4]
pxor xmm7, xmm7
mov qword [rsp + 0xe8], rdx
shl rcx, 3
movapd xmm6, xmm7
movapd xmm8, xmm7
call sym.malloc
xor r11d, r11d
xor r10d, r10d
movapd xmm9, xmm7
mov qword [rsp + 0x48], rax
xor eax, eax
movsd xmm11, qword [0x1400a3b20]
mov qword [rsp + 0xe0], rsi
mov rsi, r15
movsd xmm10, qword [0x1400a3b28]
mov qword [rsp + 0x250], rbp
mov rbp, r10
mov r15, qword [rsp + 0xe8]
mov dword [rsp + 0x54], 0xffffffff
movsd xmm12, qword [0x1400a3b30]
mov qword [rsp + 0xe8], r12
mov r12, rdi
mov rdi, r11
mov dword [rsp + 0xd0], 0
jmp 0x140006667
cmp r13b, 0x2c
je 0x140006671
mov byte [rsp + rax + 0x100], r13b
add rax, 1
add rbx, 1
cmp rbx, rsi
je 0x140006768
movzx r13d, byte [rbx]
cmp r13b, 0x7c
jne 0x140006648
add rax, r12
mov qword [rsp + 0xf8], rax
cmp rbp, 2
je 0x1400069e0
ja 0x1400067b8
test rbp, rbp
je 0x1400069c0
lea rdx, [rsp + 0xf8]
mov rcx, r12
call sym.strtod
movapd xmm6, xmm0
pxor xmm0, xmm0
movaps xmmword [r12], xmm0
movaps xmmword [r12 + 0x10], xmm0
cmp r13b, 0x2c
jne 0x1400067a8
ucomisd xmm7, qword [0x1400a3b20]
setnp dl
xor r8d, r8d
ucomisd xmm7, xmm11
cmovne edx, r8d
ucomisd xmm6, qword [0x1400a3b28]
setnp al
ucomisd xmm6, xmm10
cmovne eax, r8d
test dl, al
je 0x1400066fb
cmp rdi, 1
jbe 0x140006a29
ucomisd xmm8, xmm12
jp 0x14000671f
jne 0x14000671f
mov rax, qword [rsp + 0xc8]
mov rcx, qword [rsp + 0xd8]
cmp byte [rax + rcx - 1], 0x2c
je 0x140006a11
mov rcx, qword [rsp + 0x48]
lea rax, [rdi + rdi*4]
movapd xmm0, xmm8
xor ebp, ebp
unpcklpd xmm0, xmm6
add rbx, 1
add rdi, 1
lea rax, [rcx + rax*8]
mov ecx, dword [rsp + 0xd0]
movups xmmword [rax], xmm0
mov dword [rax + 0x18], ecx
movsd qword [rax + 0x10], xmm7
movsd qword [rax + 0x20], xmm9
xor eax, eax
cmp rbx, rsi
jne 0x140006667
nop word [rax + rax]
mov rsi, qword [rsp + 0xe0]
mov r12, qword [rsp + 0xe8]
mov rdx, r15
mov rbp, qword [rsp + 0x250]
mov rcx, qword [rsp + 0xc8]
mov qword [rsp + 0xd0], rdx
call sym.free
mov rdx, qword [rsp + 0xd0]
jmp 0x140006293
add rbp, 1
xor eax, eax
jmp 0x14000665a
cmp rbp, 3
jne 0x1400066a9
lea rdx, [rsp + 0xf8]
mov r8d, 0xa
mov rcx, r12
call sym.strtol
mov dword [rsp + 0xd0], eax
jmp 0x1400066a9
movzx eax, byte [rsi + r8 + 0x18]
lea rdi, [r8 + 0x19]
mov qword [rsp + 0xf0], rdi
mov r12, rax
and r12d, 0x7f
test al, al
jns 0x140006833
xor ecx, ecx
nop word [rax + rax]
movzx edx, byte [rsi + rdi]
add ecx, 7
add rdi, 1
mov eax, edx
and eax, 0x7f
shl eax, cl
cdqe
or r12, rax
test dl, dl
js 0x140006810
mov qword [rsp + 0xf0], rdi
movsxd r12, r12d
lea r13, [rsi + rdi]
test r12, r12
je 0x140006a00
lea rcx, [r12 + 1]
add rdi, r12
call sym.malloc
mov r8, r12
mov rdx, r13
mov rcx, rax
mov r15, rax
call sym.memcpy
mov qword [rsp + 0xf0], rdi
lea r14, [r15 + r12]
mov rbx, r15
mov byte [r15 + r12], 0
xor r12d, r12d
nop dword [rax + rax]
xor edx, edx
cmp byte [rax], 0x2c
sete dl
add rax, 1
add r12, rdx
cmp rax, r14
jne 0x140006880
mov rcx, r12
pxor xmm8, xmm8
pxor xmm6, xmm6
shl rcx, 4
movapd xmm7, xmm8
call sym.malloc
xor r8d, r8d
mov qword [rsp + 0x30], rsi
xor edx, edx
mov qword [rsp + 0x40], rax
xor eax, eax
mov rsi, r14
lea rcx, [rsp + 0x100]
mov qword [rsp + 0x48], rdi
mov r14, rcx
mov rdi, r8
mov qword [rsp + 0x250], rbp
mov rbp, rax
jmp 0x1400068fd
mov byte [rsp + rdx + 0x100], r13b
add rdx, 1
add rbx, 1
cmp rbx, rsi
je 0x140006975
movzx r13d, byte [rbx]
cmp r13b, 0x7c
je 0x14000690d
cmp r13b, 0x2c
jne 0x1400068e8
add rdx, r14
mov qword [rsp + 0xf8], rdx
test rbp, rbp
je 0x1400069a0
cmp rbp, 1
jne 0x14000693c
lea rdx, [rsp + 0xf8]
mov rcx, r14
call sym.strtod
movapd xmm8, xmm0
movaps xmmword [r14], xmm6
movaps xmmword [r14 + 0x10], xmm6
cmp r13b, 0x2c
jne 0x140006990
mov rax, rdi
mov rcx, qword [rsp + 0x40]
movapd xmm0, xmm7
add rbx, 1
shl rax, 4
unpcklpd xmm0, xmm8
add rdi, 1
xor ebp, ebp
movups xmmword [rcx + rax], xmm0
xor edx, edx
cmp rbx, rsi
jne 0x1400068fd
mov rsi, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x48]
mov rbp, qword [rsp + 0x250]
lea r13, [rsi + rdi]
jmp 0x1400061e8
add rbp, 1
xor edx, edx
jmp 0x1400068f4
lea rdx, [rsp + 0xf8]
mov rcx, r14
call sym.strtod
movapd xmm7, xmm0
jmp 0x14000693c
lea rdx, [rsp + 0xf8]
mov rcx, r12
call sym.strtod
addsd xmm9, xmm0
movapd xmm8, xmm0
jmp 0x1400066a9
lea rdx, [rsp + 0xf8]
mov rcx, r12
call sym.strtod
movapd xmm7, xmm0
jmp 0x1400066a9
mov qword [rsp + 0x40], 0
xor r15d, r15d
jmp 0x1400061e8
mov eax, dword [rsp + 0xd0]
sub r15, 1
xor ebp, ebp
mov dword [rsp + 0x54], eax
xor eax, eax
jmp 0x14000665a
sub r15, 1
movapd xmm7, xmm11
movapd xmm6, xmm10
xor eax, eax
xor ebp, ebp
jmp 0x14000665a
xor ecx, ecx
call sym.malloc
mov dword [rsp + 0x54], 0xffffffff
xor edx, edx
mov qword [rsp + 0x48], rax
jmp 0x140006783
mov r8d, 0x13f
lea rdx, str.src_replay.h
lea rcx, str.ret__LZMA_OK__ret__LZMA_NO_CHECK
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__assert]
mov r8d, 0x1c9
lea rdx, str.src_replay.h
lea rcx, str.file___NULL
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__assert]
mov r8d, 0x128
lea rdx, str.src_replay.h
lea rcx, str.lzma_auto_decoder_stream__UINT64_MAX__LZMA_TELL_NO_CHECK__LZMA_TELL_ANY_CHECK___LZMA_OK
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__assert]
mov r8d, 0x13b
lea rdx, str.src_replay.h
lea rcx, str.lzma_code_stream__LZMA_FINISH___LZMA_STREAM_END
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__assert]
nop
nop word cs:[rax + rax]
nop