Function at 0x14027a590
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 [0x14040b018]
xor rax, rsp
mov qword [rsp + 0xe0], rax
cmp byte [rdx + 0x65], 0
je 0x14027a5ef
cmp dword [rsi + 0xd8], 2
jl 0x14027a60d
test rsi, rsi
je 0x14027a69a
cmp byte [rsi + 0x67], 0
jne 0x14027a730
mov edx, 0x2b
mov rcx, rsi
call fcn.140252670
jmp 0x14027a6a4
test rsi, rsi
je 0x14027a65c
cmp byte [rsi + 0x67], 0
jne 0x14027a730
mov edx, 0x28
mov rcx, rsi
call fcn.140252670
jmp 0x14027a666
mov rbx, r9
mov edi, r8d
mov r12d, dword [rsi + 0x4c]
test r9, r9
je 0x14027a6d2
mov eax, dword [rbx + 0x14]
movabs rcx, 0x4000400040004
bt rcx, rax
jb 0x14027a6de
test rsi, rsi
je 0x14027a70c
cmp byte [rsi + 0x67], 0
jne 0x14027a730
mov edx, sendto
mov rcx, rsi
call fcn.140252670
jmp 0x14027a716
mov ecx, 0x28
call fcn.140247f50
mov rdi, rax
test rax, rax
je 0x14027a730
movups xmm0, xmmword [0x1403f2861]
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 0x14027a732
mov ecx, 0x2b
call fcn.140247f50
mov rdi, rax
test rax, rax
je 0x14027a730
movups xmm0, xmmword [0x1403f2894]
movups xmmword [rdi + 0x1b], xmm0
movups xmm0, xmmword [0x1403f2889]
movups xmmword [rdi + 0x10], xmm0
movups xmm0, xmmword [str.cannot_VACUUM___SQL_statements_in_progress]
movups xmmword [rdi], xmm0
jmp 0x14027a732
lea r9, [0x1403dffca]
jmp 0x14027a75e
mov ecx, eax
not ecx
test ecx, 0x202
jne 0x14027a6f6
cmp byte [rbx + 0x16], 1
jne 0x14027a6f6
mov r9, qword [rbx + 8]
jmp 0x14027a752
test al, 1
jne 0x14027a74f
mov rcx, rbx
mov dl, 1
call fcn.140265e90
mov r9, rax
mov eax, dword [rsi + 0x4c]
jmp 0x14027a755
mov ecx, sendto
call fcn.140247f50
mov rdi, rax
test rax, rax
je 0x14027a730
movups xmm0, xmmword [str.non_text_filename]
movups xmmword [rdi], xmm0
mov word [rdi + 0x10], 0x65
jmp 0x14027a732
xor edi, edi
mov rdx, qword [r14]
test rdx, rdx
je 0x14027a742
mov rcx, rsi
call fcn.140252440
mov qword [r14], rdi
mov ebp, 1
jmp 0x14027abb9
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 0x14027a7e0
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.140286c00
mov dword [rsi + 0x4c], r12d
test eax, eax
je 0x14027a815
mov ebp, eax
xor r12d, r12d
mov rdi, qword [rsp + 0x28]
jmp 0x14027ab2a
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 0x14027a8ab
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 0x14027a88e
mov rax, qword [rdx + 0x30]
lea rdx, [rsp + 0x90]
call qword [case.0x1403339d6.0]
test eax, eax
jne 0x14027aa70
cmp qword [rsp + 0x90], 0
jg 0x14027aa70
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 0x14027a8ba
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 [0x14041b048]
test rdx, rdx
jns 0x14027a923
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.0x1403339d6.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 0x14027a971
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 0x14027a9c0
mov r8, qword [rax + 0x120]
jns 0x14027a9b5
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 0x14027a9d4
mov word [rax + 0xb], 1
mov byte [rax + 0xd], 0
xor ecx, ecx
jmp 0x14027a9f7
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 0x14027aa96
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.140286d90
test eax, eax
jne 0x14027aa64
xor edx, edx
test r15, r15
sete dl
add edx, edx
mov rcx, rdi
xor r8d, r8d
call fcn.1402499c0
test eax, eax
je 0x14027aaa5
mov ebp, eax
mov r13, qword [rsp + 0x30]
jmp 0x14027ab2a
test rsi, rsi
je 0x14027aae2
cmp byte [rsi + 0x67], 0
mov rdi, qword [rsp + 0x28]
jne 0x14027ab10
mov edx, 0x1b
mov rcx, rsi
call fcn.140252670
mov rbx, rax
jmp 0x14027aaf4
test bpl, 8
jne 0x14027aad4
mov byte [rax + 0xe], 2
mov r8b, 2
jmp 0x14027aadb
mov rax, qword [rdi + 8]
test r15, r15
jne 0x14027abdf
mov rcx, qword [rax]
cmp byte [rcx + 9], 5
mov rcx, qword [rsp + 0x40]
jne 0x14027abe4
mov dword [rsi + 0x74], 0
mov rax, qword [rdi + 8]
jmp 0x14027abe4
mov byte [rax + 0xe], 3
mov r8b, 3
xor edx, edx
jmp 0x14027aa00
mov ecx, 0x1b
call fcn.140247f50
mov rbx, rax
mov rdi, qword [rsp + 0x28]
test rbx, rbx
je 0x14027ab10
movups xmm0, xmmword [0x1403f28d8]
movups xmmword [rbx + 0xb], xmm0
movups xmm0, xmmword [str.output_file_already_exists]
movups xmmword [rbx], xmm0
jmp 0x14027ab12
xor ebx, ebx
mov rdx, qword [r14]
test rdx, rdx
je 0x14027ab22
mov rcx, rsi
call fcn.140252440
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 0x14027ab92
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.1402543c0
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 0x14027abb1
mov rcx, qword [r12 + 8]
call fcn.1402652f0
xor eax, eax
mov qword [r12 + 8], rax
mov qword [r12 + 0x18], rax
mov rcx, rsi
call fcn.14024a650
mov rcx, qword [rsp + 0xe0]
xor rcx, rsp
call fcn.140334bf0
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 0x14027acbf
lea rdx, [rdi + 0x34]
lea ecx, [rax - 0x200]
cmp ecx, 0xfe00
ja 0x14027aca4
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 0x14027aca4
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 0x14027aca4
add rcx, 0xfffffffffffffffc
mov qword [rdi + 0x68], rcx
mov qword [rsp + 0x70], rdx
call fcn.140258b30
mov rdx, qword [rsp + 0x70]
mov qword [rdi + 0x68], 0
mov rcx, qword [rdi]
mov r8d, r15d
call fcn.1402543c0
mov ecx, dword [rdi + 0x34]
movzx edx, r15w
sub ecx, edx
mov dword [rdi + 0x38], ecx
test eax, eax
je 0x14027acc9
mov r13, qword [rsp + 0x30]
jmp 0x14027a80b
cmp dword [rsp + 0x50], 0
mov rdi, qword [rsp + 0x28]
je 0x14027ad19
cmp byte [rsi + 0x67], 0
jne 0x14027aa66
movzx eax, byte [rsi + 0x6a]
test al, al
mov r13, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x40]
mov r15, qword [rsp + 0x60]
jns 0x14027adef
mov rax, qword [rdi + 8]
cmp byte [rax + 0x21], 0
je 0x14027aded
cmp byte [rax + 0x22], 1
mov eax, 2
sbb eax, 0
jmp 0x14027adef
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 0x14027acbf
lea r13, [rdi + 0x34]
lea ecx, [rax - 0x200]
cmp ecx, 0xfe00
ja 0x14027adc1
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 0x14027adc1
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 0x14027adc1
add rcx, 0xfffffffffffffffc
mov qword [rdi + 0x68], rcx
call fcn.140258b30
mov qword [rdi + 0x68], 0
mov rcx, qword [rdi]
mov rdx, r13
mov r8d, r15d
call fcn.1402543c0
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 0x14027aa66
jmp 0x14027acd5
xor eax, eax
mov rcx, qword [rcx + 8]
test byte [rcx + 0x28], 2
je 0x14027ae03
test eax, eax
setne dl
cmp byte [rcx + 0x21], dl
jne 0x14027ae10
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.140286c00
test eax, eax
jne 0x14027ae48
lea r8, str.SELECT_sql_FROM___w_.sqlite_schema_WHERE_typeindex
mov rcx, rsi
mov rdx, r14
mov r9, r15
call fcn.140286c00
test eax, eax
je 0x14027ae4f
mov ebp, eax
jmp 0x14027ab2a
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.140286c00
and byte [rsi + 0x2c], 0xfb
test eax, eax
jne 0x14027ae93
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.140286c00
test eax, eax
je 0x14027ae9a
mov ebp, eax
jmp 0x14027acbf
mov rdi, 0xfffffffffffffffe
lea rbx, [0x1403f2aa3]
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 0x14027aef6
mov edx, dword [rax + 0x20]
cmp edx, dword [rcx + 0x30]
jae 0x14027af1d
mov ebp, dword [rax + 0x30]
test ebp, ebp
jne 0x14027acbf
mov edx, dword [rax + 0xb8]
cmp edx, dword [rax + 0xc8]
jbe 0x14027af16
call fcn.14025edd0
jmp 0x14027af2b
call fcn.14025f170
jmp 0x14027af2b
cmp dword [rax + 0x80], 0
je 0x14027af35
call fcn.140254ba0
mov ebp, eax
test eax, eax
jne 0x14027acbf
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 0x14027aea8
cmp qword [rsp + 0x48], 0
je 0x14027afbd
mov rcx, qword [rsp + 0x40]
xor edx, edx
call fcn.14024b430
test eax, eax
jne 0x14027ae93
mov rcx, qword [rsp + 0x40]
xor edx, edx
call fcn.14024b270
mov ebp, eax
test eax, eax
sete cl
cmp qword [rsp + 0x48], 0
jne 0x14027b10c
test ebp, ebp
jne 0x14027b10c
mov rax, qword [rsp + 0x40]
mov rax, qword [rax + 8]
cmp byte [rax + 0x21], 0
je 0x14027b0de
cmp byte [rax + 0x22], 1
mov eax, 2
sbb eax, 0
jmp 0x14027b0e0
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 8]
mov rax, qword [rax]
mov rcx, qword [rax + 0x48]
cmp qword [rcx], 0
je 0x14027b01d
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 0x14027b01d
mov rax, qword [rax + 0x50]
lea r8, [rsp + 0x88]
mov edx, 0xb
call qword [case.0x1403339d6.0]
cmp eax, 0xc
je 0x14027b01d
mov ebp, eax
test eax, eax
jne 0x14027b0d1
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.140249200
mov rcx, r14
call fcn.14024b810
test eax, eax
je 0x14027b0b0
mov ebp, eax
mov rax, qword [rsp + 0x98]
mov rax, qword [rax + 8]
mov rax, qword [rax]
cmp byte [rax + 0x10], 0
jne 0x14027b0d1
inc dword [rax + 0x84]
mov rcx, qword [rax + 0x70]
test rcx, rcx
je 0x14027b0c3
mov dword [rcx + 0x18], 1
mov rcx, qword [rcx + 0x40]
jmp 0x14027b09e
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 8]
and word [rax + 0x28], 0xfffd
jmp 0x14027af5e
mov rcx, qword [rax + 0x120]
xor edx, edx
call fcn.14025bed0
test ebp, ebp
jne 0x14027acbf
jmp 0x14027af5e
xor eax, eax
mov rcx, qword [rsp + 0x28]
mov rdx, qword [rcx + 8]
test byte [rdx + 0x28], 2
je 0x14027b0fd
test eax, eax
setne r8b
mov cl, 1
cmp byte [rdx + 0x21], r8b
jne 0x14027b10c
test eax, eax
setne byte [rdx + 0x21]
cmp eax, 2
sete byte [rdx + 0x22]
mov cl, 1
cmp qword [rsp + 0x48], 0
jne 0x14027acbf
test cl, cl
je 0x14027acbf
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 0x14027acbf
lea r14, [rdi + 0x34]
lea ecx, [rax - 0x200]
cmp ecx, 0xfe00
ja 0x14027b1e9
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 0x14027b1e9
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 0x14027b1e9
add rcx, 0xfffffffffffffffc
mov qword [rdi + 0x68], rcx
call fcn.140258b30
mov qword [rdi + 0x68], 0
mov rcx, qword [rdi]
mov rdx, r14
mov r8d, ebx
call fcn.1402543c0
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 0x14027acbf