Function at 0x140024cd0
Capabilities:
Clear file content

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x218
mov rax, qword [0x1402cb038]
xor rax, rsp
mov qword [rsp + 0x210], rax
mov rsi, qword [rcx]
mov qword [rcx], 0
test rsi, rsi
je 0x140024da0
cmp byte [rsi + 0x48], 0
jne 0x140024e55
xorps xmm0, xmm0
lea rax, [rsp + 0x60]
movaps xmmword [rax + 0x10], xmm0
movaps xmmword [rax], xmm0
mov rcx, qword [rsi + 8]
mov qword [rsp + 0x20], rax
xor edx, edx
mov r8d, 0xffffffff
mov r9d, 0xffffffff
call qword [sym.imp.KERNEL32.dll_UnlockFileEx]
test eax, eax
je 0x140024df4
mov rbx, qword [rsi + 0x50]
test rbx, rbx
jne 0x140024dc5
cmp byte [rsi + 0x47], 0
jns 0x140024d5e
mov rcx, qword [rsi + 0x30]
call fcn.1401cbbbc
cmp byte [rsi + 0x2f], 0
jns 0x140024d6d
mov rcx, qword [rsi + 0x18]
call fcn.1401cbbbc
lea rax, [0x14029e418]
mov qword [rsi], rax
cmp byte [rsi + 0x10], 0
jne 0x140025504
mov rcx, qword [rsi + 8]
cmp rcx, 0xffffffffffffffff
je 0x140024d98
call fcn.140025530
test al, al
je 0x140025507
mov rcx, rsi
call fcn.1401cbbbc
mov rcx, qword [rsp + 0x210]
xor rcx, rsp
call fcn.1401ce5b0
nop
add rsp, 0x218
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rdi, qword [rsi + 0x58]
mov rcx, rbx
cmp rdi, rbx
je 0x140024de6
add rdi, 0xffffffffffffff90
mov rcx, rdi
call fcn.140256ea0
cmp rdi, rbx
jne 0x140024dd1
mov rcx, qword [rsi + 0x50]
mov qword [rsi + 0x58], rbx
call fcn.1401cbbbc
jmp 0x140024d4f
cmp dword [0x1402e5a28], 2
jg 0x140024d46
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x20], eax
lea rdx, str.crash_report_database_win.cc
lea rdi, [rsp + 0xb0]
mov rcx, rdi
mov r8d, 0x145
mov r9d, 2
call fcn.14023ca20
lea rcx, [rsp + 0xc0]
lea rdx, [0x1402b5a3c]
mov r8d, 0xc
call fcn.140206b20
mov rcx, rdi
call fcn.14023caa0
jmp 0x140024d46
mov rcx, qword [rsi + 8]
xor edx, edx
xor r8d, r8d
call fcn.140022760
test rax, rax
je 0x140024f24
cmp dword [0x1402e5a28], 2
jg 0x140024d12
lea rdx, str.crash_report_database_win.cc
lea rdi, [rsp + 0xb0]
mov rcx, rdi
mov r8d, 0x20d
mov r9d, 2
call fcn.1400036d0
lea rcx, [rsp + 0xc0]
lea rdx, str.failed_to_rewind_to_write
mov r8d, 0x19
call fcn.140206b20
mov rcx, rdi
call fcn.1400038d0
jmp 0x140024d12
cmp dword [0x1402e5a28], 2
jg 0x140024d12
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x20], eax
lea rdx, str.crash_report_database_win.cc
lea rdi, [rsp + 0xb0]
mov rcx, rdi
mov r8d, 0x214
mov r9d, 2
call fcn.14023ca20
lea rcx, [rsp + 0xc0]
lea rdx, str.failed_to_truncate
mov r8d, 0x12
call fcn.140206b20
mov rcx, rdi
call fcn.14023caa0
jmp 0x140024d12
mov rcx, qword [rsi + 8]
call qword [sym.imp.KERNEL32.dll_SetEndOfFile]
test eax, eax
je 0x140024ec3
mov rbx, qword [rsi + 0x50]
mov r14, qword [rsi + 0x58]
mov rdi, r14
sub rdi, rbx
sar rdi, 4
movabs rax, 0x6db6db6db6db6db7
imul rdi, rax
mov dword [rsp + 0xac], 0
movabs rax, 0x143504144
mov qword [rsp + 0xa0], rax
mov rax, rdi
shr rax, 0x20
jne 0x14002550a
mov eax, edi
lea rdx, [rsp + 0xa0]
mov dword [rdx + 8], eax
mov rcx, qword [rsi + 8]
mov r8d, 0x10
call fcn.14004ce30
test al, al
jne 0x140024fe6
cmp dword [0x1402e5a28], 2
jg 0x140024d12
lea rdx, str.crash_report_database_win.cc
lea rdi, [rsp + 0xb0]
mov rcx, rdi
mov r8d, 0x220
mov r9d, 2
call fcn.1400036d0
lea rcx, [rsp + 0xc0]
lea rdx, str.failed_to_write_header
mov r8d, 0x16
jmp 0x140024eb1
cmp r14, rbx
je 0x140024d12
movabs rax, 0x492492492492492
xorps xmm0, xmm0
movaps xmmword [rsp + 0x80], xmm0
mov qword [rsp + 0x90], 0
cmp rdi, rax
ja 0x140025515
imul rbx, rdi, 0x38
mov rcx, rbx
call fcn.1401cbbc4
mov rbp, rax
mov r14, qword [rsi + 0x50]
mov rax, qword [rsi + 0x58]
mov qword [rsp + 0x58], rax
cmp r14, rax
je 0x140025051
mov r13, rbp
add r13, rbx
lea rax, [rsi + 0x18]
mov qword [rsp + 0x50], rax
mov rdi, rbp
jmp 0x1400251e2
mov rdi, rbp
lea rdx, [rsp + 0x80]
movzx eax, byte [rdx + 0x17]
mov r8d, eax
and r8d, 0x7f
test al, al
cmovs r8, qword [rdx + 8]
cmovs rdx, qword [rdx]
mov rcx, qword [rsi + 8]
call fcn.14004ce30
test al, al
jne 0x140025138
cmp dword [0x1402e5a28], 2
jg 0x140025138
lea rdx, str.crash_report_database_win.cc
lea rbx, [rsp + 0xb0]
mov rcx, rbx
mov r8d, 0x23d
mov r9d, 2
call fcn.1400036d0
lea rcx, [rsp + 0xc0]
lea rdx, str.failed_to_write_string_table
mov r8d, 0x1c
call fcn.140206b20
mov rcx, rbx
jmp 0x140025133
cmp dword [0x1402e5a28], 2
jg 0x140025138
lea rdx, str.crash_report_database_win.cc
lea r14, [rsp + 0xb0]
mov rcx, r14
mov r8d, 0x22e
mov r9d, 2
call fcn.1400036d0
lea rcx, [rsp + 0xc0]
mov rdx, r15
call fcn.140062f20
lea rdx, str._expected_to_start_with
mov r8d, 0x18
mov rcx, rax
call fcn.140206b20
mov rcx, rax
mov rdx, qword [rsp + 0x50]
call fcn.140062f20
mov rcx, r14
call fcn.1400038d0
test rbp, rbp
je 0x140025155
cmp rdi, rbp
je 0x14002514d
add rdi, 0xffffffffffffffc8
jne 0x14002513d
jmp 0x140025512
mov rcx, rbp
call fcn.1401cbbbc
cmp byte [rsp + 0x97], 0
jns 0x140024d12
mov rcx, qword [rsp + 0x80]
call fcn.1401cbbbc
jmp 0x140024d12
test rdi, rdi
je 0x14002551e
movaps xmm0, xmmword [rsp + 0x200]
movups xmmword [rdi], xmm0
mov eax, dword [rsp + 0x3c]
mov dword [rdi + 0x10], eax
mov eax, dword [rsp + 0x30]
mov dword [rdi + 0x14], eax
mov rax, qword [rsp + 0x40]
mov qword [rdi + 0x18], rax
mov rax, qword [rsp + 0x48]
mov qword [rdi + 0x20], rax
mov eax, dword [rsp + 0x34]
mov dword [rdi + 0x28], eax
mov eax, dword [rsp + 0x38]
mov dword [rdi + 0x2c], eax
mov byte [rdi + 0x30], r12b
mov al, byte [rsp + 0x2f]
mov byte [rdi + 0x31], al
mov dword [rdi + 0x32], 0
mov word [rdi + 0x36], 0
add rdi, 0x38
add r14, 0x70
cmp r14, qword [rsp + 0x58]
je 0x140025497
lea r15, [r14 + 0x10]
mov rcx, r15
lea rbx, [rsp + 0xb0]
mov rdx, rbx
call fcn.140188050
mov rcx, rbx
mov rdx, qword [rsp + 0x50]
call fcn.140064230
mov r12d, eax
cmp byte [rsp + 0xc7], 0
jns 0x140025220
mov rcx, qword [rsp + 0xb0]
call fcn.1401cbbbc
test r12b, r12b
jne 0x1400250d2
movups xmm0, xmmword [r14]
movaps xmmword [rsp + 0x200], xmm0
mov rcx, r15
lea rdx, [rsp + 0x60]
call fcn.140173a20
movzx eax, byte [rsp + 0x77]
test al, al
js 0x140025255
and eax, 0x7f
lea rcx, [rsp + 0x60]
jmp 0x14002525f
mov rax, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x60]
mov qword [rsp + 0x1f0], rcx
mov qword [rsp + 0x1f8], rax
test rax, rax
js 0x140025518
test rcx, rcx
jne 0x140025286
test rax, rax
jne 0x14002551b
lea rbx, [rsp + 0xb0]
mov rcx, rbx
lea rdx, [rsp + 0x1f0]
call fcn.14017d440
lea rcx, [rsp + 0x80]
mov rdx, rbx
call fcn.1402570d0
mov dword [rsp + 0x3c], eax
cmp byte [rsp + 0xc7], 0
jns 0x1400252c9
mov rcx, qword [rsp + 0xb0]
call fcn.1401cbbbc
cmp byte [rsp + 0x77], 0
jns 0x1400252da
mov rcx, qword [rsp + 0x60]
call fcn.1401cbbbc
lea rdx, [r14 + 0x28]
lea rcx, [rsp + 0x80]
call fcn.1402570d0
mov dword [rsp + 0x30], eax
mov rax, qword [r14 + 0x40]
mov qword [rsp + 0x40], rax
mov rax, qword [r14 + 0x50]
mov qword [rsp + 0x48], rax
mov eax, dword [r14 + 0x58]
mov dword [rsp + 0x34], eax
mov eax, dword [r14 + 0x68]
mov dword [rsp + 0x38], eax
mov r12b, byte [r14 + 0x5c]
add r12b, r12b
or r12b, byte [r14 + 0x48]
mov al, byte [r14 + 0x5d]
mov byte [rsp + 0x2f], al
cmp rdi, r13
jb 0x140025175
mov r15, rdi
sub r15, rbp
sar r15, 3
movabs rax, 0x6db6db6db6db6db7
imul r15, rax
lea rbx, [r15 + 1]
movabs rax, 0x492492492492492
cmp rbx, rax
ja 0x140025521
sub r13, rbp
sar r13, 3
movabs rax, 0x6db6db6db6db6db7
imul r13, rax
lea rax, [r13*2]
cmp rax, rbx
cmova rbx, rax
movabs rax, 0x249249249249249
cmp r13, rax
movabs rax, 0x492492492492492
cmovae rbx, rax
test rbx, rbx
je 0x140025477
cmp rbx, rax
ja 0x140025524
imul rcx, rbx, 0x38
call fcn.1401cbbc4
mov r13, rax
imul r15, r15, 0x38
add r15, r13
je 0x140025527
movaps xmm0, xmmword [rsp + 0x200]
movups xmmword [r15], xmm0
mov eax, dword [rsp + 0x3c]
mov dword [r15 + 0x10], eax
mov eax, dword [rsp + 0x30]
mov dword [r15 + 0x14], eax
mov rax, qword [rsp + 0x40]
mov qword [r15 + 0x18], rax
mov rax, qword [rsp + 0x48]
mov qword [r15 + 0x20], rax
mov eax, dword [rsp + 0x34]
mov dword [r15 + 0x28], eax
mov eax, dword [rsp + 0x38]
mov dword [r15 + 0x2c], eax
mov byte [r15 + 0x30], r12b
mov al, byte [rsp + 0x2f]
mov byte [r15 + 0x31], al
mov dword [r15 + 0x32], 0
mov word [r15 + 0x36], 0
mov r12, r15
cmp rdi, rbp
je 0x140025460
mov rax, r15
mov rcx, rdi
mov rdx, qword [rcx - 8]
mov qword [rax - 8], rdx
movups xmm0, xmmword [rcx - 0x38]
movups xmm1, xmmword [rcx - 0x28]
movups xmm2, xmmword [rcx - 0x18]
lea rdx, [rcx - 0x38]
lea r12, [rax - 0x38]
movups xmmword [rax - 0x18], xmm2
movups xmmword [rax - 0x28], xmm1
movups xmmword [rax - 0x38], xmm0
mov rax, r12
mov rcx, rdx
cmp rdx, rbp
jne 0x14002542d
imul rax, rbx, 0x38
add r13, rax
cmp rdi, rbp
je 0x14002547f
add rdi, 0xffffffffffffffc8
jne 0x140025467
jmp 0x14002552a
xor r13d, r13d
jmp 0x1400253b9
test rbp, rbp
je 0x14002548c
mov rcx, rbp
call fcn.1401cbbbc
mov rbp, r12
mov rdi, r15
jmp 0x1400251cf
cmp rbp, rdi
je 0x140025051
mov r8, rdi
sub r8, rbp
mov rcx, qword [rsi + 8]
mov rdx, rbp
call fcn.14004ce30
test al, al
jne 0x140025054
cmp dword [0x1402e5a28], 2
jg 0x140025138
lea rdx, str.crash_report_database_win.cc
lea rbx, [rsp + 0xb0]
mov rcx, rbx
mov r8d, 0x238
mov r9d, 2
call fcn.1400036d0
lea rcx, [rsp + 0xc0]
lea rdx, str.failed_to_write_records
mov r8d, 0x17
jmp 0x1400250c8
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3