Function at 0x1400187e0
Capabilities:
Write file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x1c8
mov eax, dword [rcx + 0x5c]
mov qword [rsp + 0x60], rdx
lea edx, [rax - 0xe]
mov rbp, rcx
cmp edx, 2
jbe 0x140018832
cmp eax, 1
je 0x140018832
mov rcx, qword [rsp + 0x60]
call sym.sqlite3_step
cmp eax, 0x64
je 0x140018bb6
add rsp, 0x1c8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, qword [rsp + 0x60]
movzx ebx, byte [rbp + 0x19]
call sym.sqlite3_step
cmp eax, 0x64
jne 0x14001881e
mov rcx, qword [rsp + 0x60]
lea rax, [rbp + 0x124]
mov qword [rsp + 0x80], rax
call sym.sqlite3_column_count
mov r14d, eax
test eax, eax
je 0x140018d60
lea eax, [rax*4]
movsxd rdi, eax
mov eax, 1
test rdi, rdi
cmovle rdi, rax
lea rcx, [rdi*8]
call sym.sqlite3_malloc64
mov qword [rsp + 0xa8], rax
test rax, rax
je 0x1400190ae
movsxd r12, r14d
lea rsi, [r12*8]
mov rcx, rsi
mov qword [rsp + 0xc0], rsi
call sym.sqlite3_malloc64
mov qword [rsp + 0xd0], rax
mov rcx, rax
test rax, rax
je 0x1400190ae
xor edx, edx
mov r8, rsi
call sym.memset
cmp byte [rbp + 0x18], 0
jne 0x140018e7e
mov qword [rsp + 0x70], 0
mov rax, rdi
cqo
idiv r12
mov rcx, rax
call sym.sqlite3_malloc64
mov qword [rsp + 0xa0], rax
test rax, rax
je 0x1400190ae
cmp r14d, dword [rbp + 0x120]
jg 0x1400194ee
mov rcx, qword [rbp + 0x118]
lea r8, [r12*4]
movzx eax, bl
xor edx, edx
mov dword [rsp + 0x48], eax
call sym.memset
test r12, r12
jle 0x140018a07
mov r8, qword [rbp + 0x110]
mov r9, qword [rbp + 0x118]
xor eax, eax
nop dword [rax]
mov ecx, dword [r8 + rax*4]
mov r15, rax
mov edx, ecx
neg edx
cmovs edx, ecx
mov dword [r9 + rax*4], edx
lea rax, [rax + 1]
cmp r12, rax
jne 0x140018950
xor esi, esi
lea rbx, [rsp + 0xf0]
mov qword [rsp + 0x58], rdi
mov r13, qword [rsp + 0xa8]
mov qword [rsp + 0x68], r12
mov edi, dword [rsp + 0x48]
mov r12, rsi
mov rsi, rbx
mov dword [rsp + 0x50], r14d
mov rbx, qword [rsp + 0x60]
jmp 0x1400189a7
mov r8, qword [rbp + 0x110]
mov r12, rax
mov eax, dword [r8 + r12*4]
test eax, eax
jne 0x1400189b2
mov eax, dword [rbp + 0x14]
mov r8d, eax
mov edx, r12d
mov rcx, rbx
neg r8d
cmovns eax, r8d
mov r14d, eax
call sym.sqlite3_column_name
mov r9d, edi
mov r8d, r14d
mov rdx, rsi
test rax, rax
mov rcx, rax
lea rax, [0x140150568]
cmove rcx, rax
call sym.translateForDisplayAndDup
mov qword [r13 + r12*8], rax
lea rax, [r12 + 1]
cmp r15, r12
jne 0x14001899d
mov r14d, dword [rsp + 0x50]
mov rdi, qword [rsp + 0x58]
mov r12, qword [rsp + 0x68]
lea rax, [r12 + r12]
xor r13d, r13d
mov r15, qword [rsp + 0xc0]
mov dword [rsp + 0x68], 0
mov qword [rsp + 0x78], 0
mov dword [rsp + 0xec], r14d
mov qword [rsp + 0x88], rax
mov rax, r12
mov r12d, r13d
mov r13, r15
mov r15, rax
nop dword [rax + rax]
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0xc8], rax
mov rax, qword [rsp + 0x88]
mov qword [rsp + 0xb8], rax
cmp rax, rdi
jge 0x140019060
mov rax, qword [rsp + 0x78]
mov rdx, qword [rsp + 0xa0]
lea r8, [rdx + rax]
add rax, 1
mov byte [r8], 1
mov qword [rsp + 0x78], rax
test r15, r15
jle 0x140019048
mov rax, qword [rsp + 0xa8]
xor edx, edx
mov qword [rsp + 0x58], r8
xor ebx, ebx
mov qword [rsp + 0x90], rdi
mov rsi, qword [rsp + 0xd0]
mov dword [rsp + 0x50], edx
lea r14, [rax + r13]
mov qword [rsp + 0x98], r13
jmp 0x140018b24
mov rcx, qword [rsi]
lea rax, [0x140150568]
test rcx, rcx
cmove rcx, rax
mov r9d, dword [rsp + 0x48]
mov r8d, r13d
mov rdx, rsi
call sym.translateForDisplayAndDup
cmp qword [rsi], 0
mov qword [r14 + rbx*8], rax
je 0x140018b13
mov rax, qword [rsp + 0x58]
mov dword [rsp + 0x68], 1
mov dword [rsp + 0x50], 1
mov byte [rax], 0
add rbx, 1
add rsi, 8
cmp r15, rbx
je 0x140018f20
mov rax, qword [rbp + 0x110]
mov eax, dword [rax + rbx*4]
test eax, eax
jne 0x140018b35
mov eax, dword [rbp + 0x14]
mov r10d, eax
neg r10d
cmovns eax, r10d
mov r13d, eax
test r12d, r12d
jne 0x140018ad0
cmp byte [rbp + 0x18], 0
je 0x140018f00
mov rax, qword [rsp + 0x70]
mov rcx, qword [rax + rbx*8]
call sym.sqlite3_free
mov rcx, qword [rsp + 0x60]
mov edx, ebx
call sym.sqlite3_column_type
cmp eax, 4
je 0x140018f60
jg 0x140018ee0
cmp eax, 3
jne 0x140018eb0
mov rcx, qword [rsp + 0x60]
mov edx, ebx
call sym.sqlite3_column_text
lea rcx, [0x140150e50]
mov rdx, rax
call sym.sqlite3_mprintf
mov rcx, rax
nop dword [rax]
mov rax, qword [rsp + 0x70]
mov qword [rax + rbx*8], rcx
jmp 0x140018ae1
mov rcx, qword [rsp + 0x60]
call sym.sqlite3_column_count
mov r14d, eax
lea eax, [rax + rax*2]
cdqe
lea rcx, [rax*8 + 1]
call sym.sqlite3_malloc64
mov qword [rsp + 0x50], rax
test rax, rax
je 0x1400190ae
movsxd rdi, r14d
xor r12d, r12d
lea rbx, [rdi*8]
lea rsi, [rax + rbx]
add rbx, rsi
test r14d, r14d
jle 0x140018c20
mov r13, qword [rsp + 0x50]
mov r15, qword [rsp + 0x60]
mov edx, r12d
mov rcx, r15
call sym.sqlite3_column_name
mov qword [r13 + r12*8], rax
add r12, 1
cmp r12, rdi
jne 0x140018c07
mov qword [rsp + 0x58], 0
mov r13, qword [rsp + 0x60]
lea r12, [0x140150568]
mov dword [rsp + 0x48], r14d
mov eax, dword [rsp + 0x48]
add qword [rsp + 0x58], 1
xor r15d, r15d
test eax, eax
jg 0x140018c5d
jmp 0x140018d21
add r15, 1
cmp r15, rdi
je 0x140018d21
mov edx, r15d
mov rcx, r13
mov r14d, r15d
call sym.sqlite3_column_type
mov dword [rbx + r15*4], eax
cmp eax, 4
jne 0x140018c83
mov eax, dword [rbp + 0x5c]
sub eax, 5
cmp eax, 1
jbe 0x140018d10
mov edx, r14d
mov rcx, r13
call sym.sqlite3_column_text
mov qword [rsi + r15*8], rax
test rax, rax
jne 0x140018c50
cmp dword [rbx + r15*4], 5
je 0x140018c50
mov rcx, qword [rsp + 0x50]
call sym.sqlite3_free
mov eax, dword [rbp + 0x5c]
cmp eax, 0xd
je 0x1400195f1
cmp eax, 0x11
jne 0x14001881e
mov r9, qword [rsp + 0x58]
lea rdx, [0x140150568]
lea rax, [0x140153588]
mov ecx, 0xc8
lea rbx, [rsp + 0xf0]
lea r8, str._llu_row_s_n
cmp r9, 1
cmove rax, rdx
mov rdx, rbx
mov qword [rsp + 0x20], rax
call sym.sqlite3_snprintf
mov rdx, rbx
lea rcx, [0x1401509b2]
call dbg.printf
jmp 0x14001881e
mov qword [rsi + r15*8], r12
add r15, 1
cmp r15, rdi
jne 0x140018c5d
mov qword [rsp + 0x20], rbx
mov r9, qword [rsp + 0x50]
mov r8, rsi
mov rcx, rbp
mov edx, dword [rsp + 0x48]
call sym.shell_callback
test eax, eax
jne 0x140018c9e
mov rcx, r13
call sym.sqlite3_step
cmp eax, 0x64
je 0x140018c3a
jmp 0x140018c9e
mov eax, dword [0x14018a1d0]
test eax, eax
je 0x1400195dc
mov qword [rsp + 0x70], 0
xor r12d, r12d
mov ebx, 1
mov qword [rsp + 0xa0], 0
mov qword [rsp + 0xd0], 0
mov qword [rsp + 0xa8], 0
imul rbx, r12
lea rcx, str.Interrupt_n
call sym.oPutsUtf8.isra.0
mov qword [rsp + 0xb8], rbx
mov rax, qword [rsp + 0xb8]
test rax, rax
jle 0x140018e0b
mov rdi, qword [rsp + 0xa8]
mov rbp, qword [rsp + 0x80]
mov rbx, rdi
lea rsi, [rdi + rax*8]
lea rdi, [0x140150568]
nop word cs:[rax + rax]
mov rcx, qword [rbx]
cmp rcx, rdi
je 0x140018e02
cmp rbp, rcx
je 0x140018e02
call sym.free
add rbx, 8
cmp rbx, rsi
jne 0x140018df0
mov rcx, qword [rsp + 0xa8]
call sym.sqlite3_free
mov rcx, qword [rsp + 0xd0]
call sym.sqlite3_free
mov rcx, qword [rsp + 0xa0]
call sym.sqlite3_free
mov rax, qword [rsp + 0x70]
test rax, rax
je 0x14001881e
mov rbx, rax
lea rsi, [rax + r12*8]
test r12, r12
jle 0x140018e61
nop dword [rax]
mov rcx, qword [rbx]
add rbx, 8
call sym.sqlite3_free
cmp rbx, rsi
jne 0x140018e50
mov rcx, qword [rsp + 0x70]
add rsp, 0x1c8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp sym.sqlite3_free
mov rcx, rsi
call sym.sqlite3_malloc64
mov qword [rsp + 0x70], rax
test rax, rax
je 0x1400190ae
mov r8, rsi
xor edx, edx
mov rcx, rax
call sym.memset
jmp 0x1400188e9
xor ecx, ecx
test eax, eax
jle 0x140018ba8
mov rcx, qword [rsp + 0x60]
mov edx, ebx
call sym.sqlite3_column_text
lea rcx, [0x1401509b2]
mov rdx, rax
call sym.sqlite3_mprintf
mov rcx, rax
jmp 0x140018ba8
xor ecx, ecx
cmp eax, 5
jne 0x140018ba8
lea rcx, [0x140151a0b]
call sym.sqlite3_mprintf
mov rcx, rax
jmp 0x140018ba8
mov rcx, qword [rsp + 0x60]
mov edx, ebx
call sym.sqlite3_column_text
mov rcx, rax
test rax, rax
cmove rcx, qword [rsp + 0x80]
jmp 0x140018ae1
mov edx, dword [rsp + 0x50]
mov rdi, qword [rsp + 0x90]
mov r13, qword [rsp + 0x98]
test edx, edx
je 0x140019048
mov rax, qword [rsp + 0xc0]
add qword [rsp + 0x88], r15
mov r12d, edx
add r13, rax
jmp 0x140018a48
xor ecx, ecx
call sym.sqlite3_str_new
mov rcx, qword [rsp + 0x60]
mov edx, ebx
mov qword [rsp + 0xb0], rax
call sym.sqlite3_column_blob
mov rcx, qword [rsp + 0x60]
mov edx, ebx
mov qword [rsp + 0xe0], rax
call sym.sqlite3_column_bytes
mov rcx, qword [rsp + 0xb0]
mov r8d, 2
lea rdx, [0x14015358a]
mov dword [rsp + 0xd8], eax
call sym.sqlite3_str_append
movsxd rax, dword [rsp + 0xd8]
test eax, eax
jle 0x140019014
mov rdi, qword [rsp + 0xe0]
mov qword [rsp + 0xd8], rbx
mov rbx, qword [rsp + 0xb0]
mov qword [rsp + 0xe0], rsi
add rax, rdi
mov rsi, rdi
mov rdi, rax
nop dword [rax]
movzx r8d, byte [rsi]
lea rdx, [0x14015358d]
mov rcx, rbx
add rsi, 1
call sym.sqlite3_str_appendf
cmp rsi, rdi
jne 0x140018fe8
mov rbx, qword [rsp + 0xd8]
mov rsi, qword [rsp + 0xe0]
mov rdi, qword [rsp + 0xb0]
mov r8d, 1
lea rdx, [0x1401521ab]
mov rcx, rdi
call sym.sqlite3_str_append
mov rcx, rdi
call sym.sqlite3_str_finish
mov rcx, rax
jmp 0x140018ba8
mov rcx, qword [rsp + 0x60]
call sym.sqlite3_step
cmp eax, 0x64
jne 0x1400190b8
xor edx, edx
jmp 0x140018f3c
mov rcx, qword [rsp + 0xa8]
add rdi, rdi
lea rdx, [rdi*8]
call sym.sqlite3_realloc64
mov qword [rsp + 0xa8], rax
test rax, rax
je 0x1400190ae
mov rax, rdi
mov rcx, qword [rsp + 0xa0]
cqo
idiv r15
mov rdx, rax
call sym.sqlite3_realloc64
mov qword [rsp + 0xa0], rax
test rax, rax
jne 0x140018a6e
call sym.shell_out_of_memory
nop dword [rax + rax]
mov rax, qword [rsp + 0xc8]
mov r14d, dword [rsp + 0xec]
mov r12, r15
add rax, 2
mov qword [rsp + 0x60], rax
imul eax, r14d
movsxd rsi, eax
test rsi, rsi
jle 0x140019140
mov r9, qword [rbp + 0x118]
mov r10, qword [rsp + 0xa8]
xor r8d, r8d
nop word [rax + rax]
mov rdx, qword [r10 + r8*8]
xor ecx, ecx
test rdx, rdx
jne 0x14001911e
jmp 0x140019125
and eax, 0xc0
add rdx, 1
cmp eax, 0x80
setne al
movzx eax, al
add ecx, eax
movzx eax, byte [rdx]
test al, al
jne 0x140019108
mov rax, r8
cqo
idiv r12
lea rax, [r9 + rdx*4]
cmp dword [rax], ecx
jge 0x140019137
mov dword [rax], ecx
add r8, 1
cmp r8, rsi
jne 0x1400190f8
mov eax, dword [0x14018a1d0]
test eax, eax
jne 0x14001939a
mov eax, dword [rbp + 0x5c]
cmp eax, 0xf
je 0x14001961f
jg 0x1400193b8
cmp eax, 1
je 0x140019720
cmp eax, 0xe
jne 0x1400195b4
mov r9, qword [rbp + 0x40]
mov r8d, 2
mov edx, 1
lea rcx, [0x140153585]
call sym.fwrite
test r12, r12
jle 0x140019251
lea eax, [r14 - 1]
xor ebx, ebx
lea rdi, [0x140150568]
movsxd r13, eax
lea r15, str._s_s_s
mov rax, qword [rbp + 0x118]
mov r8d, dword [rax + rbx*4]
mov rax, qword [rsp + 0xa8]
mov r9, qword [rax + rbx*8]
movzx eax, byte [r9]
test al, al
je 0x1400191f8
xor ecx, ecx
mov rdx, r9
nop dword [rax]
and eax, 0xc0
add rdx, 1
cmp eax, 0x80
setne al
movzx eax, al
add ecx, eax
movzx eax, byte [rdx]
test al, al
jne 0x1400191d8
sub r8d, ecx
mov edx, r8d
mov qword [rsp + 0x28], rdi
mov rcx, r15
shr edx, 0x1f
add edx, r8d
add r8d, 1
mov eax, r8d
sar edx, 1
shr eax, 0x1f
add eax, r8d
lea r8, [0x140150568]
sar eax, 1
mov dword [rsp + 0x20], eax
call sym.oPrintfUtf8
cmp rbx, r13
lea rax, [0x14015356c]
lea rcx, [0x140153570]
cmove rcx, rax
add rbx, 1
call sym.oPutsUtf8.isra.0
cmp r12, rbx
jne 0x1400191ad
lea r8, [0x140150eeb]
mov edx, r14d
mov rcx, rbp
call sym.print_row_separator
lea r8, [0x14015356c]
lea r13, [0x140153570]
cmp r12, rsi
jge 0x140019575
xor r15d, r15d
mov dword [rsp + 0x48], r14d
lea edi, [r14 - 1]
mov rbx, r12
mov qword [rsp + 0x50], r12
mov r14d, r15d
mov r12, qword [rsp + 0xa8]
mov qword [rsp + 0x58], r8
mov r15, qword [rsp + 0x80]
jmp 0x1400192c1
mov rcx, r13
add rbx, 1
add r14d, 1
call sym.oPutsUtf8.isra.0
cmp rbx, rsi
jge 0x1400195d0
test r14d, r14d
je 0x14001936b
mov r9, qword [rbp + 0x110]
mov rdx, qword [r12 + rbx*8]
movsxd rax, r14d
mov rcx, qword [rbp + 0x118]
mov r8d, dword [r9 + rax*4]
test rdx, rdx
cmove rdx, r15
mov ecx, dword [rcx + rax*4]
test r8d, r8d
jns 0x1400192f4
neg ecx
call sym.utf8_width_print
cmp r14d, edi
jne 0x1400192a8
mov rcx, qword [rsp + 0x58]
call sym.oPutsUtf8.isra.0
mov edx, dword [rsp + 0x68]
test edx, edx
je 0x140019354
mov rax, rbx
cqo
idiv qword [rsp + 0x50]
mov rdx, qword [rsp + 0xa0]
cmp byte [rdx + rax - 1], 0
je 0x140019354
lea rax, [rbx + 1]
cmp rax, rsi
jge 0x14001955d
mov eax, dword [rbp + 0x5c]
cmp eax, 0xf
je 0x1400198d4
cmp eax, 0x10
je 0x1400198a9
cmp eax, 1
je 0x140019898
mov eax, dword [0x14018a1d0]
test eax, eax
jne 0x140019395
add rbx, 1
cmp rbx, rsi
jge 0x1400195d0
mov eax, dword [rbp + 0x5c]
cmp eax, 1
je 0x14001938d
cmp eax, 0x10
lea rcx, [0x140153580]
lea rax, [0x140153585]
cmovne rcx, rax
call sym.oPutsUtf8.isra.0
xor r14d, r14d
jmp 0x1400192ca
mov r12, qword [rsp + 0x50]
mov eax, dword [0x14018a1d0]
test eax, eax
je 0x140018dbb
mov rbx, qword [rsp + 0x60]
jmp 0x140018da3
cmp eax, 0x10
jne 0x1400195b4
lea rax, [0x1401535a5]
mov rcx, rbp
mov edx, r14d
mov qword [rsp + 0x20], rax
lea r9, [0x14015359d]
lea r8, [0x1401535a1]
call sym.print_box_row_separator
lea rcx, [0x140153580]
call sym.oPutsUtf8.isra.0
test r12, r12
jle 0x1400194b6
lea eax, [r14 - 1]
xor ebx, ebx
lea rdi, [0x140150568]
movsxd r13, eax
lea r15, [0x14015357a]
mov rax, qword [rbp + 0x118]
mov r8d, dword [rax + rbx*4]
mov rax, qword [rsp + 0xa8]
mov r9, qword [rax + rbx*8]
movzx eax, byte [r9]
test al, al
je 0x140019460
xor ecx, ecx
mov rdx, r9
nop word cs:[rax + rax]
and eax, 0xc0
add rdx, 1
cmp eax, 0x80
setne al
movzx eax, al
add ecx, eax
movzx eax, byte [rdx]
test al, al
jne 0x140019440
sub r8d, ecx
cmp rbx, r13
mov edx, r8d
lea rax, [0x140153574]
mov qword [rsp + 0x28], rdi
cmovne rax, r15
shr edx, 0x1f
lea rcx, str._s_s_s_s
add rbx, 1
add edx, r8d
add r8d, 1
mov qword [rsp + 0x30], rax
mov eax, r8d
sar edx, 1
shr eax, 0x1f
add eax, r8d
lea r8, [0x140150568]
sar eax, 1
mov dword [rsp + 0x20], eax
call sym.oPrintfUtf8
cmp r12, rbx
jne 0x140019412
lea rax, [0x1401535b1]
lea r8, [0x1401535ad]
mov edx, r14d
mov rcx, rbp
mov qword [rsp + 0x20], rax
lea r9, [0x1401535a9]
lea r13, [0x14015357a]
call sym.print_box_row_separator
lea r8, [0x140153574]
jmp 0x140019271
mov rax, qword [rsp + 0xc0]
mov rcx, qword [rbp + 0x110]
lea rdx, [rax + 8]
call sym.realloc
mov qword [rbp + 0x110], rax
mov rsi, rax
test rax, rax
je 0x1400190ae
movsxd rax, dword [rbp + 0x120]
cmp r12, rax
jle 0x14001953e
mov rdx, r12
lea rcx, [rsi + rax*4]
sub rdx, rax
lea r8, [rdx*4]
xor edx, edx
call sym.memset
lea r8, [r12*4]
mov dword [rbp + 0x120], r14d
lea rcx, [rsi + r8]
mov qword [rbp + 0x118], rcx
jmp 0x140018926
mov eax, dword [0x14018a1d0]
mov r14d, dword [rsp + 0x48]
mov r12, qword [rsp + 0x50]
test eax, eax
jne 0x14001939a
mov eax, dword [rbp + 0x5c]
cmp eax, 0xf
je 0x1400198ec
cmp eax, 0x10
jne 0x14001939a
lea rax, [0x1401535c8]
lea r9, [0x1401535c0]
mov edx, r14d
mov rcx, rbp
mov qword [rsp + 0x20], rax
lea r8, [0x1401535c4]
call sym.print_box_row_separator
jmp 0x14001939a
xor r13d, r13d
xor r8d, r8d
cmp r12, rsi
jl 0x14001927a
jmp 0x14001939a
mov r14d, dword [rsp + 0x48]
mov r12, qword [rsp + 0x50]
jmp 0x140019575
xor ecx, ecx
call sym.sqlite3_free
xor ecx, ecx
call sym.sqlite3_free
xor ecx, ecx
jmp 0x140018e66
mov r9, qword [rbp + 0x40]
mov r8d, 2
mov edx, 1
lea rcx, [0x1401535d7]
add rsp, 0x1c8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp sym.fwrite
lea r8, [0x140153592]
mov edx, r14d
mov rcx, rbp
call sym.print_row_separator
mov r9, qword [rbp + 0x40]
mov r8d, 2
mov edx, 1
lea rcx, [0x140153585]
call sym.fwrite
test r12, r12
jle 0x140019709
lea eax, [r14 - 1]
xor ebx, ebx
lea rdi, [0x140150568]
movsxd r13, eax
lea r15, str._s_s_s
mov rax, qword [rbp + 0x118]
mov r8d, dword [rax + rbx*4]
mov rax, qword [rsp + 0xa8]
mov r9, qword [rax + rbx*8]
movzx eax, byte [r9]
test al, al
je 0x1400196b0
xor ecx, ecx
mov rdx, r9
and eax, 0xc0
add rdx, 1
cmp eax, 0x80
setne al
movzx eax, al
add ecx, eax
movzx eax, byte [rdx]
test al, al
jne 0x140019690
sub r8d, ecx
mov edx, r8d
mov qword [rsp + 0x28], rdi
mov rcx, r15
shr edx, 0x1f
add edx, r8d
add r8d, 1
mov eax, r8d
sar edx, 1
shr eax, 0x1f
add eax, r8d
lea r8, [0x140150568]
sar eax, 1
mov dword [rsp + 0x20], eax
call sym.oPrintfUtf8
cmp rbx, r13
lea rax, [0x14015356c]
lea rcx, [0x140153570]
cmove rcx, rax
add rbx, 1
call sym.oPutsUtf8.isra.0
cmp r12, rbx
jne 0x14001966c
lea r8, [0x140153592]
mov edx, r14d
mov rcx, rbp
call sym.print_row_separator
jmp 0x140019263
mov r10d, dword [rbp + 0x68]
test r10d, r10d
je 0x14001985f
test r12, r12
jle 0x14001985f
lea eax, [r14 - 1]
xor r15d, r15d
lea rbx, [0x1401518ff]
movsxd rdi, eax
lea r13, [0x140153477]
jmp 0x140019753
mov r15, rax
mov rax, qword [rbp + 0x118]
mov ecx, dword [rax + r15*4]
mov rax, qword [rbp + 0x110]
mov r9d, dword [rax + r15*4]
test r9d, r9d
jns 0x140019770
neg ecx
mov rax, qword [rsp + 0xa8]
mov rdx, qword [rax + r15*8]
call sym.utf8_width_print
cmp r15, rdi
mov rcx, r13
mov rdx, qword [rbp + 0x40]
cmove rcx, rbx
call sym.fputs
lea rax, [r15 + 1]
cmp r12, rax
jne 0x140019750
lea rbx, [rsp + 0xf0]
mov qword [rsp + 0x48], rsi
xor r13d, r13d
mov rsi, rbx
mov rax, qword [rbp + 0x118]
movabs rdx, 0x2d2d2d2d2d2d2d2d
mov ebx, dword [rax + r13*4]
mov qword [rsp + 0x118], rdx
movabs rax, 0x2d2d2d2d2d2d2d2d
mov qword [rsp + 0xf0], rax
mov qword [rsp + 0xf8], rdx
mov qword [rsp + 0x100], rax
mov qword [rsp + 0x108], rdx
mov qword [rsp + 0x110], rax
mov dword [rsp + 0x11f], 0x2d2d2d
cmp ebx, 0x32
jle 0x14001981f
mov rcx, rsi
sub ebx, 0x32
call sym.oPutsUtf8.isra.0
cmp ebx, 0x32
jg 0x14001980f
mov r8, rsi
mov edx, ebx
lea rcx, [0x1401509b5]
call sym.oPrintfUtf8
cmp r13, rdi
lea rax, [0x1401518ff]
lea rcx, [0x140153477]
mov rdx, qword [rbp + 0x40]
cmove rcx, rax
call sym.fputs
lea rax, [r13 + 1]
cmp r15, r13
je 0x140019880
mov r13, rax
jmp 0x1400197b0
lea r13, [0x140153477]
lea r8, [0x1401518ff]
cmp r12, rsi
jl 0x14001927a
jmp 0x14001939a
mov rsi, qword [rsp + 0x48]
lea r8, [0x1401518ff]
lea r13, [0x140153477]
jmp 0x140019271
lea rcx, [0x1401518ff]
call sym.oPutsUtf8.isra.0
jmp 0x140019354
lea rax, [0x1401535b1]
mov edx, dword [rsp + 0x48]
mov rcx, rbp
lea r9, [0x1401535a9]
mov qword [rsp + 0x20], rax
lea r8, [0x1401535ad]
call sym.print_box_row_separator
jmp 0x140019354
mov edx, dword [rsp + 0x48]
lea r8, [0x140153592]
mov rcx, rbp
call sym.print_row_separator
jmp 0x140019354
lea r8, [0x140153592]
mov edx, r14d
mov rcx, rbp
call sym.print_row_separator
jmp 0x14001939a