Function at 0x140261f10
Capabilities:
Reference sql statements

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xe8
mov rsi, rdx
mov r14, rcx
mov rax, qword [0x1403e4018]
xor rax, rsp
mov qword [rsp + 0xe0], rax
cmp byte [rdx + 0x65], 0
je 0x140261f6f
cmp dword [rsi + 0xd8], 2
jl 0x140261f8d
test rsi, rsi
je 0x14026201a
cmp byte [rsi + 0x67], 0
jne 0x1402620b0
mov edx, 0x2b
mov rcx, rsi
call fcn.140239ff0
jmp 0x140262024
test rsi, rsi
je 0x140261fdc
cmp byte [rsi + 0x67], 0
jne 0x1402620b0
mov edx, 0x28
mov rcx, rsi
call fcn.140239ff0
jmp 0x140261fe6
mov rbx, r9
mov edi, r8d
mov r12d, dword [rsi + 0x4c]
test r9, r9
je 0x140262052
mov eax, dword [rbx + 0x14]
movabs rcx, 0x4000400040004
bt rcx, rax
jb 0x14026205e
test rsi, rsi
je 0x14026208c
cmp byte [rsi + 0x67], 0
jne 0x1402620b0
mov edx, shutdown
mov rcx, rsi
call fcn.140239ff0
jmp 0x140262096
mov ecx, 0x28
call fcn.14022f8d0
mov rdi, rax
test rax, rax
je 0x1402620b0
movups xmm0, xmmword [0x1403ccdf1]
movups xmmword [rdi + 0x10], xmm0
movups xmm0, xmmword [str.cannot_VACUUM_from_within_a_transaction]
movups xmmword [rdi], xmm0
movabs rax, 0x6e6f6974636173
mov qword [rdi + 0x20], rax
jmp 0x1402620b2
mov ecx, 0x2b
call fcn.14022f8d0
mov rdi, rax
test rax, rax
je 0x1402620b0
movups xmm0, xmmword [0x1403cce24]
movups xmmword [rdi + 0x1b], xmm0
movups xmm0, xmmword [0x1403cce19]
movups xmmword [rdi + 0x10], xmm0
movups xmm0, xmmword [str.cannot_VACUUM___SQL_statements_in_progress]
movups xmmword [rdi], xmm0
jmp 0x1402620b2
lea r9, [0x1403bc825]
jmp 0x1402620de
mov ecx, eax
not ecx
test ecx, 0x202
jne 0x140262076
cmp byte [rbx + 0x16], 1
jne 0x140262076
mov r9, qword [rbx + 8]
jmp 0x1402620d2
test al, 1
jne 0x1402620cf
mov rcx, rbx
mov dl, 1
call fcn.14024d810
mov r9, rax
mov eax, dword [rsi + 0x4c]
jmp 0x1402620d5
mov ecx, shutdown
call fcn.14022f8d0
mov rdi, rax
test rax, rax
je 0x1402620b0
movups xmm0, xmmword [str.non_text_filename]
movups xmmword [rdi], xmm0
mov word [rdi + 0x10], 0x65
jmp 0x1402620b2
xor edi, edi
mov rdx, qword [r14]
test rdx, rdx
je 0x1402620c2
mov rcx, rsi
call fcn.140239dc0
mov qword [r14], rdi
mov ebp, 1
jmp 0x140262539
xor r9d, r9d
mov eax, r12d
and eax, 0xfffffff8
or eax, 6
mov dword [rsi + 0x4c], eax
mov qword [rsp + 0x48], rbx
mov r13, qword [rsi + 0x30]
mov ecx, dword [rsi + 0x2c]
mov rax, qword [rsi + 0x78]
mov qword [rsp + 0x80], rax
mov rax, qword [rsi + 0x80]
mov qword [rsp + 0x78], rax
mov al, byte [rsi + 0x6e]
mov byte [rsp + 0x3f], al
mov dword [rsp + 0x5c], ecx
mov eax, ecx
or eax, 6
mov dword [rsi + 0x2c], eax
movabs rax, 0xfffffffeefffadfe
and rax, r13
or rax, 0x201
mov qword [rsi + 0x30], rax
mov byte [rsi + 0x6e], 0
mov rax, qword [rsi + 0x20]
movsxd rdi, edi
shl rdi, 5
mov rcx, qword [rax + rdi + 8]
mov qword [rsp + 0x28], rcx
mov rcx, qword [rcx + 8]
mov rcx, qword [rcx]
mov edx, 1
cmp byte [rcx + 0x10], 0
jne 0x140262160
xor edx, edx
cmp byte [rcx + 0x14], 0
setne dl
mov dword [rsp + 0x50], edx
mov r15, qword [rax + rdi]
movsxd rbx, dword [rsi + 0x28]
lea r8, str.ATTACH__Q_AS_vacuum_db
mov rcx, rsi
mov rdx, r14
call fcn.14026e580
mov dword [rsi + 0x4c], r12d
test eax, eax
je 0x140262195
mov ebp, eax
xor r12d, r12d
mov rdi, qword [rsp + 0x28]
jmp 0x1402624aa
mov qword [rsp + 0x60], r15
mov rax, qword [rsi + 0x20]
mov rcx, rbx
shl rcx, 5
lea r12, [rax + rcx]
mov r8, qword [rax + rcx + 8]
mov r15, qword [rsp + 0x48]
test r15, r15
mov qword [rsp + 0x40], r8
je 0x14026222b
mov rcx, qword [r8 + 8]
mov rcx, qword [rcx]
mov rcx, qword [rcx + 0x48]
mov qword [rsp + 0x90], 0
mov rdx, qword [rcx]
test rdx, rdx
je 0x14026220e
mov rax, qword [rdx + 0x30]
lea rdx, [rsp + 0x90]
call qword [case.0x140318756.0]
test eax, eax
jne 0x1402623f0
cmp qword [rsp + 0x90], 0
jg 0x1402623f0
mov rax, qword [rsi + 0x20]
mov r8, qword [rsp + 0x40]
mov qword [rsp + 0x68], r12
mov qword [rsp + 0x30], r13
or byte [rsi + 0x2c], 8
movzx ecx, byte [rax + rdi + 0x10]
mov ebp, dword [rsi + 0x30]
and ebp, 0x38
or ebp, ecx
jmp 0x14026223a
mov qword [rsp + 0x68], r12
mov qword [rsp + 0x30], r13
mov ebp, 1
mov r12, qword [rsp + 0x28]
mov rcx, qword [r12 + 8]
mov r13d, dword [rcx + 0x34]
sub r13d, dword [rcx + 0x38]
movzx ecx, byte [rcx + 0x26]
cmp r13d, ecx
cmovle r13d, ecx
mov rax, qword [rax + rdi + 0x18]
movsxd rdx, dword [rax + 0x74]
mov rax, qword [r8 + 8]
mov rax, qword [rax]
mov rcx, qword [rax + 0x120]
mov dword [rcx + 0x20], edx
mov r8, qword [0x1403f39c8]
test rdx, rdx
jns 0x1402622a3
shl rdx, 0xa
neg rdx
movsxd rax, dword [rcx + 0x28]
movsxd r9, dword [rcx + 0x2c]
add r9, rax
mov rax, rdx
cqo
idiv r9
mov edx, 0x3b9aca00
cmp rax, rdx
cmovl rdx, rax
mov rcx, qword [rcx + 0x48]
mov rax, r8
call qword [case.0x140318756.0]
mov rax, qword [r12 + 8]
mov rax, qword [rax]
mov r8, qword [rax + 0x120]
movsxd rax, dword [r8 + 0x20]
test rax, rax
mov rdi, r12
jns 0x1402622f1
shl rax, 0xa
neg rax
movsxd rcx, dword [r8 + 0x28]
movsxd r9, dword [r8 + 0x2c]
add r9, rcx
cqo
idiv r9
mov rcx, rax
mov eax, 0x3b9aca00
cmp rcx, rax
cmovl rax, rcx
mov ecx, dword [r8 + 0x24]
cmp eax, ecx
cmovg ecx, eax
mov r10, qword [rsp + 0x40]
mov rax, qword [r10 + 8]
mov rax, qword [rax]
test ecx, ecx
mov r12, qword [rsp + 0x68]
je 0x140262340
mov r8, qword [rax + 0x120]
jns 0x140262335
movsxd rax, ecx
shl rax, 0xa
neg rax
movsxd rcx, dword [r8 + 0x28]
movsxd r9, dword [r8 + 0x2c]
add r9, rcx
cqo
idiv r9
mov rcx, rax
mov dword [r8 + 0x24], ecx
mov rax, qword [r10 + 8]
mov rax, qword [rax]
cmp byte [rax + 0x10], 0
je 0x140262354
mov word [rax + 0xb], 1
mov byte [rax + 0xd], 0
xor ecx, ecx
jmp 0x140262377
mov edx, ebp
and edx, 7
cmp edx, 3
setae cl
setae byte [rax + 0xc]
cmp edx, 4
sete byte [rax + 0xd]
cmp edx, 1
sete byte [rax + 0xb]
jne 0x140262416
mov byte [rax + 0xe], 0
mov dl, 1
xor r8d, r8d
lea r9d, [r8*4]
xor r10d, r10d
test cl, cl
movzx ecx, r8b
cmove ecx, r10d
movzx r8d, r9b
test dl, dl
mov edx, recv
cmovne edx, r8d
test bpl, 0x10
cmove edx, r8d
or edx, ecx
mov byte [rax + 0xf], dl
and byte [rax + 0x19], 0xfe
lea r8, str.BEGIN
mov rcx, rsi
mov rdx, r14
call fcn.14026e710
test eax, eax
jne 0x1402623e4
xor edx, edx
test r15, r15
sete dl
add edx, edx
mov rcx, rdi
xor r8d, r8d
call fcn.140231340
test eax, eax
je 0x140262425
mov ebp, eax
mov r13, qword [rsp + 0x30]
jmp 0x1402624aa
test rsi, rsi
je 0x140262462
cmp byte [rsi + 0x67], 0
mov rdi, qword [rsp + 0x28]
jne 0x140262490
mov edx, 0x1b
mov rcx, rsi
call fcn.140239ff0
mov rbx, rax
jmp 0x140262474
test bpl, 8
jne 0x140262454
mov byte [rax + 0xe], 2
mov r8b, 2
jmp 0x14026245b
mov rax, qword [rdi + 8]
test r15, r15
jne 0x14026255f
mov rcx, qword [rax]
cmp byte [rcx + 9], 5
mov rcx, qword [rsp + 0x40]
jne 0x140262564
mov dword [rsi + 0x74], 0
mov rax, qword [rdi + 8]
jmp 0x140262564
mov byte [rax + 0xe], 3
mov r8b, 3
xor edx, edx
jmp 0x140262380
mov ecx, 0x1b
call fcn.14022f8d0
mov rbx, rax
mov rdi, qword [rsp + 0x28]
test rbx, rbx
je 0x140262490
movups xmm0, xmmword [0x1403cce68]
movups xmmword [rbx + 0xb], xmm0
movups xmm0, xmmword [str.output_file_already_exists]
movups xmmword [rbx], xmm0
jmp 0x140262492
xor ebx, ebx
mov rdx, qword [r14]
test rdx, rdx
je 0x1402624a2
mov rcx, rsi
call fcn.140239dc0
mov qword [r14], rbx
mov ebp, 1
xor ebx, ebx
mov byte [rsi + 0xc4], bl
mov eax, dword [rsp + 0x5c]
mov dword [rsi + 0x2c], eax
mov qword [rsi + 0x30], r13
mov rax, qword [rsp + 0x80]
mov qword [rsi + 0x78], rax
mov rax, qword [rsp + 0x78]
mov qword [rsi + 0x80], rax
mov al, byte [rsp + 0x3f]
mov byte [rsi + 0x6e], al
mov rdi, qword [rdi + 8]
mov byte [rdi + 0x26], bl
test byte [rdi + 0x28], 2
jne 0x140262512
lea rdx, [rdi + 0x34]
mov eax, dword [rdi + 0x34]
sub eax, dword [rdi + 0x38]
test eax, eax
cmovg ebx, eax
mov rcx, qword [rdi]
mov r8d, ebx
call fcn.14023bd40
mov eax, dword [rdi + 0x34]
movzx ecx, bx
sub eax, ecx
mov dword [rdi + 0x38], eax
or byte [rdi + 0x28], 2
mov byte [rsi + 0x65], 1
test r12, r12
je 0x140262531
mov rcx, qword [r12 + 8]
call fcn.14024cc70
xor eax, eax
mov qword [r12 + 8], rax
mov qword [r12 + 0x18], rax
mov rcx, rsi
call fcn.140231fd0
mov rcx, qword [rsp + 0xe0]
xor rcx, rsp
call fcn.140319a10
mov eax, ebp
add rsp, 0xe8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, qword [rsp + 0x40]
mov eax, dword [rax + 0x34]
mov rdi, qword [rcx + 8]
mov byte [rdi + 0x26], r13b
mov r15d, dword [rdi + 0x34]
sub r15d, dword [rdi + 0x38]
cmp r15d, r13d
cmovle r15d, r13d
mov ebp, 7
test byte [rdi + 0x28], 2
jne 0x14026263f
lea rdx, [rdi + 0x34]
lea ecx, [rax - 0x200]
cmp ecx, 0xfe00
ja 0x140262624
mov ecx, eax
shr ecx, 1
and ecx, 0x55555555
mov r9d, eax
sub r9d, ecx
mov ecx, 0x33333333
mov r8d, r9d
and r8d, ecx
shr r9d, 2
and r9d, ecx
add r9d, r8d
mov ecx, r9d
shr ecx, 4
add ecx, r9d
and ecx, 0xf0f0f0f
imul ecx, ecx, 0x1010101
shr ecx, 0x18
cmp ecx, 1
ja 0x140262624
cmp r15d, 0x21
mov ecx, 0x400
cmovb ecx, eax
cmp eax, 0x200
cmovne ecx, eax
mov dword [rdi + 0x34], ecx
mov rcx, qword [rdi + 0x68]
test rcx, rcx
je 0x140262624
add rcx, 0xfffffffffffffffc
mov qword [rdi + 0x68], rcx
mov qword [rsp + 0x70], rdx
call fcn.1402404b0
mov rdx, qword [rsp + 0x70]
mov qword [rdi + 0x68], 0
mov rcx, qword [rdi]
mov r8d, r15d
call fcn.14023bd40
mov ecx, dword [rdi + 0x34]
movzx edx, r15w
sub ecx, edx
mov dword [rdi + 0x38], ecx
test eax, eax
je 0x140262649
mov r13, qword [rsp + 0x30]
jmp 0x14026218b
cmp dword [rsp + 0x50], 0
mov rdi, qword [rsp + 0x28]
je 0x140262699
cmp byte [rsi + 0x67], 0
jne 0x1402623e6
movzx eax, byte [rsi + 0x6a]
test al, al
mov r13, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x40]
mov r15, qword [rsp + 0x60]
jns 0x14026276f
mov rax, qword [rdi + 8]
cmp byte [rax + 0x21], 0
je 0x14026276d
cmp byte [rax + 0x22], 1
mov eax, 2
sbb eax, 0
jmp 0x14026276f
mov eax, dword [rsi + 0x74]
mov rcx, qword [rsp + 0x40]
mov rdi, qword [rcx + 8]
mov byte [rdi + 0x26], r13b
mov r15d, dword [rdi + 0x34]
sub r15d, dword [rdi + 0x38]
cmp r15d, r13d
cmovle r15d, r13d
test byte [rdi + 0x28], 2
jne 0x14026263f
lea r13, [rdi + 0x34]
lea ecx, [rax - 0x200]
cmp ecx, 0xfe00
ja 0x140262741
mov ecx, eax
shr ecx, 1
and ecx, 0x55555555
mov edx, eax
sub edx, ecx
mov ecx, 0x33333333
mov r8d, edx
and r8d, ecx
shr edx, 2
and edx, ecx
add edx, r8d
mov ecx, edx
shr ecx, 4
add ecx, edx
and ecx, 0xf0f0f0f
imul ecx, ecx, 0x1010101
shr ecx, 0x18
cmp ecx, 1
ja 0x140262741
cmp r15d, 0x21
mov ecx, 0x400
cmovb ecx, eax
cmp eax, 0x200
cmovne ecx, eax
mov dword [rdi + 0x34], ecx
mov rcx, qword [rdi + 0x68]
test rcx, rcx
je 0x140262741
add rcx, 0xfffffffffffffffc
mov qword [rdi + 0x68], rcx
call fcn.1402404b0
mov qword [rdi + 0x68], 0
mov rcx, qword [rdi]
mov rdx, r13
mov r8d, r15d
call fcn.14023bd40
mov ecx, dword [rdi + 0x34]
movzx edx, r15w
sub ecx, edx
mov dword [rdi + 0x38], ecx
test eax, eax
mov rdi, qword [rsp + 0x28]
jne 0x1402623e6
jmp 0x140262655
xor eax, eax
mov rcx, qword [rcx + 8]
test byte [rcx + 0x28], 2
je 0x140262783
test eax, eax
setne dl
cmp byte [rcx + 0x21], dl
jne 0x140262790
test eax, eax
setne byte [rcx + 0x21]
cmp eax, 2
sete byte [rcx + 0x22]
mov byte [rsi + 0xc4], bl
lea r8, str.SELECT_sql_FROM___w_.sqlite_schema_WHERE_typetableAND_name__sqlite_sequence_AND_coalesce_rootpage_1__0
mov rcx, rsi
mov rdx, r14
mov r9, r15
call fcn.14026e580
test eax, eax
jne 0x1402627c8
lea r8, str.SELECT_sql_FROM___w_.sqlite_schema_WHERE_typeindex
mov rcx, rsi
mov rdx, r14
mov r9, r15
call fcn.14026e580
test eax, eax
je 0x1402627cf
mov ebp, eax
jmp 0x1402624aa
mov qword [rsp + 0x30], r13
mov byte [rsi + 0xc4], 0
lea r8, str.SELECTINSERT_INTO_vacuum_db.quote_name__SELECTFROM__w_.quote_name_FROM_vacuum_db.sqlite_schema_WHERE_typetableAND_coalesce_rootpage_1__0
mov rcx, rsi
mov rdx, r14
mov r9, r15
call fcn.14026e580
and byte [rsi + 0x2c], 0xfb
test eax, eax
jne 0x140262813
lea r8, str.INSERT_INTO_vacuum_db.sqlite_schema_SELECTFROM___w_.sqlite_schema_WHERE_type_IN_view_trigger__OR_typetableAND_rootpage0_
mov rcx, rsi
mov rdx, r14
mov r9, qword [rsp + 0x60]
call fcn.14026e580
test eax, eax
je 0x14026281a
mov ebp, eax
jmp 0x14026263f
mov rdi, 0xfffffffffffffffe
lea rbx, [0x1403cd033]
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 8]
movzx r15d, byte [rdi + rbx + 2]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x50]
mov r13d, dword [rax + r15*4 + 0x24]
movzx r14d, byte [rdi + rbx + 3]
mov rax, qword [rsp + 0x40]
mov rax, qword [rax + 8]
mov rax, qword [rax + 0x18]
mov rcx, qword [rax + 0x50]
mov qword [rsp + 0x50], rcx
mov rcx, qword [rax + 0x70]
mov rax, qword [rcx + 0x28]
test byte [rcx + 0x34], 4
je 0x140262876
mov edx, dword [rax + 0x20]
cmp edx, dword [rcx + 0x30]
jae 0x14026289d
mov ebp, dword [rax + 0x30]
test ebp, ebp
jne 0x14026263f
mov edx, dword [rax + 0xb8]
cmp edx, dword [rax + 0xc8]
jbe 0x140262896
call fcn.140246750
jmp 0x1402628ab
call fcn.140246af0
jmp 0x1402628ab
cmp dword [rax + 0x80], 0
je 0x1402628b5
call fcn.14023c520
mov ebp, eax
test eax, eax
jne 0x14026263f
bswap r13d
add r13d, r14d
bswap r13d
mov rax, qword [rsp + 0x50]
mov dword [rax + r15*4 + 0x24], r13d
add rdi, 2
cmp rdi, 8
jb 0x140262828
cmp qword [rsp + 0x48], 0
je 0x14026293d
mov rcx, qword [rsp + 0x40]
xor edx, edx
call fcn.140232db0
test eax, eax
jne 0x140262813
mov rcx, qword [rsp + 0x40]
xor edx, edx
call fcn.140232bf0
mov ebp, eax
test eax, eax
sete cl
cmp qword [rsp + 0x48], 0
jne 0x140262a8c
test ebp, ebp
jne 0x140262a8c
mov rax, qword [rsp + 0x40]
mov rax, qword [rax + 8]
cmp byte [rax + 0x21], 0
je 0x140262a5e
cmp byte [rax + 0x22], 1
mov eax, 2
sbb eax, 0
jmp 0x140262a60
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 8]
mov rax, qword [rax]
mov rcx, qword [rax + 0x48]
cmp qword [rcx], 0
je 0x14026299d
mov rax, qword [rsp + 0x40]
mov rax, qword [rax + 8]
movsxd rdx, dword [rax + 0x34]
mov eax, dword [rax + 0x40]
imul rax, rdx
mov qword [rsp + 0x88], rax
mov rax, qword [rcx]
test rax, rax
je 0x14026299d
mov rax, qword [rax + 0x50]
lea r8, [rsp + 0x88]
mov edx, 0xb
call qword [case.0x140318756.0]
cmp eax, 0xc
je 0x14026299d
mov ebp, eax
test eax, eax
jne 0x140262a51
xorps xmm0, xmm0
lea r14, [rsp + 0x90]
movaps xmmword [r14 + 0x30], xmm0
movaps xmmword [r14 + 0x20], xmm0
movaps xmmword [r14 + 0x10], xmm0
movaps xmmword [r14], xmm0
mov qword [r14 + 0x40], 0
mov rcx, qword [rsp + 0x40]
mov rax, qword [rcx]
mov qword [r14 + 0x20], rax
mov qword [r14 + 0x28], rcx
mov rax, qword [rsp + 0x28]
mov qword [r14 + 8], rax
mov dword [r14 + 0x18], 1
mov rcx, r14
mov edx, 0x7fffffff
call fcn.140230b80
mov rcx, r14
call fcn.140233190
test eax, eax
je 0x140262a30
mov ebp, eax
mov rax, qword [rsp + 0x98]
mov rax, qword [rax + 8]
mov rax, qword [rax]
cmp byte [rax + 0x10], 0
jne 0x140262a51
inc dword [rax + 0x84]
mov rcx, qword [rax + 0x70]
test rcx, rcx
je 0x140262a43
mov dword [rcx + 0x18], 1
mov rcx, qword [rcx + 0x40]
jmp 0x140262a1e
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 8]
and word [rax + 0x28], 0xfffd
jmp 0x1402628de
mov rcx, qword [rax + 0x120]
xor edx, edx
call fcn.140243850
test ebp, ebp
jne 0x14026263f
jmp 0x1402628de
xor eax, eax
mov rcx, qword [rsp + 0x28]
mov rdx, qword [rcx + 8]
test byte [rdx + 0x28], 2
je 0x140262a7d
test eax, eax
setne r8b
mov cl, 1
cmp byte [rdx + 0x21], r8b
jne 0x140262a8c
test eax, eax
setne byte [rdx + 0x21]
cmp eax, 2
sete byte [rdx + 0x22]
mov cl, 1
cmp qword [rsp + 0x48], 0
jne 0x14026263f
test cl, cl
je 0x14026263f
mov rax, qword [rsp + 0x40]
mov rcx, qword [rax + 8]
movzx edx, byte [rcx + 0x26]
mov eax, dword [rcx + 0x34]
mov r8d, eax
sub r8d, dword [rcx + 0x38]
cmp r8d, edx
cmovle r8d, edx
mov rcx, qword [rsp + 0x28]
mov rdi, qword [rcx + 8]
mov byte [rdi + 0x26], r8b
mov ebx, dword [rdi + 0x34]
sub ebx, dword [rdi + 0x38]
cmp ebx, r8d
cmovle ebx, r8d
mov ebp, 8
test byte [rdi + 0x28], 2
jne 0x14026263f
lea r14, [rdi + 0x34]
lea ecx, [rax - 0x200]
cmp ecx, 0xfe00
ja 0x140262b69
mov ecx, eax
shr ecx, 1
and ecx, 0x55555555
mov edx, eax
sub edx, ecx
mov ecx, 0x33333333
mov r8d, edx
and r8d, ecx
shr edx, 2
and edx, ecx
add edx, r8d
mov ecx, edx
shr ecx, 4
add ecx, edx
and ecx, 0xf0f0f0f
imul ecx, ecx, 0x1010101
shr ecx, 0x18
cmp ecx, 1
ja 0x140262b69
cmp ebx, 0x21
mov ecx, 0x400
cmovb ecx, eax
cmp eax, 0x200
cmovne ecx, eax
mov dword [rdi + 0x34], ecx
mov rcx, qword [rdi + 0x68]
test rcx, rcx
je 0x140262b69
add rcx, 0xfffffffffffffffc
mov qword [rdi + 0x68], rcx
call fcn.1402404b0
mov qword [rdi + 0x68], 0
mov rcx, qword [rdi]
mov rdx, r14
mov r8d, ebx
call fcn.14023bd40
mov ebp, eax
mov eax, dword [rdi + 0x34]
movzx ecx, bx
sub eax, ecx
mov dword [rdi + 0x38], eax
or byte [rdi + 0x28], 2
jmp 0x14026263f