// File: /workspace/github_c_makefile_star2_O0/OnionIoT[P]lv_example/lvgl/src/lv_objx/lv_ta.c
// Function: lv_ta_set_pwd_mode
void lv_ta_set_pwd_mode(lv_obj_t * ta, bool en)
{
    LV_ASSERT_OBJ(ta, LV_OBJX_NAME);

    lv_ta_ext_t * ext = lv_obj_get_ext_attr(ta);
    if(ext->pwd_mode == en) return;

    /*Pwd mode is now enabled*/
    if(ext->pwd_mode == 0 && en != false) {
        char * txt   = lv_label_get_text(ext->label);
        size_t len = strlen(txt);
        ext->pwd_tmp = lv_mem_alloc(len + 1);
        LV_ASSERT_MEM(ext->pwd_tmp);
        if(ext->pwd_tmp == NULL) return;

        strcpy(ext->pwd_tmp, txt);

        uint16_t i;
        uint16_t encoded_len = lv_txt_get_encoded_length(txt); 
        for(i = 0; i < encoded_len; i++) {
            txt[i] = '*'; /*All char to '*'*/
        }
        txt[i] = '\0';

        lv_ta_clear_selection(ta);

        lv_label_set_text(ext->label, NULL);
    }
    /*Pwd mode is now disabled*/
    else if(ext->pwd_mode == 1 && en == false) {
        lv_ta_clear_selection(ta);
        lv_label_set_text(ext->label, ext->pwd_tmp);
        lv_mem_free(ext->pwd_tmp);
        ext->pwd_tmp = NULL;
    }

    ext->pwd_mode = en == false ? 0 : 1;

    refr_cursor_area(ta);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movb %sil, %al
movq %rdi, -0x8(%rbp)
andb $0x1, %al
movb %al, -0x9(%rbp)
movq -0x8(%rbp), %rdi
callq 0xd120
testb $0x1, %al
jne 0x33b33
movq -0x8(%rbp), %rsi
leaq 0x345d0(%rip), %rdi     # 0x680fc
callq 0xd410
jmp 0x33b31
movq -0x8(%rbp), %rdi
callq 0xa8f0
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movb 0x98(%rax), %al
andb $0x1, %al
movzbl %al, %eax
movb -0x9(%rbp), %cl
andb $0x1, %cl
movzbl %cl, %ecx
cmpl %ecx, %eax
jne 0x33b61
jmp 0x33d02
movq -0x18(%rbp), %rax
movb 0x98(%rax), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x33c70
movb -0x9(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
je 0x33c70
movq -0x18(%rbp), %rax
movq 0x50(%rax), %rdi
callq 0x2abc0
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rdi
callq 0x2060
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rdi
addq $0x1, %rdi
callq 0x44d20
movq %rax, %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x60(%rax)
movq -0x18(%rbp), %rax
movq 0x60(%rax), %rdi
callq 0xd120
testb $0x1, %al
jne 0x33be7
movq -0x18(%rbp), %rax
movq 0x60(%rax), %rsi
leaq 0x34464(%rip), %rdi     # 0x68044
callq 0xd410
jmp 0x33be5
movq -0x18(%rbp), %rax
cmpq $0x0, 0x60(%rax)
jne 0x33bf7
jmp 0x33d02
movq -0x18(%rbp), %rax
movq 0x60(%rax), %rdi
movq -0x20(%rbp), %rsi
callq 0x2040
leaq 0x48ad1(%rip), %rax     # 0x7c6e0
movq (%rax), %rax
movq -0x20(%rbp), %rdi
callq *%rax
movw %ax, -0x2c(%rbp)
movw $0x0, -0x2a(%rbp)
movzwl -0x2a(%rbp), %eax
movzwl -0x2c(%rbp), %ecx
cmpl %ecx, %eax
jge 0x33c48
movq -0x20(%rbp), %rax
movzwl -0x2a(%rbp), %ecx
movb $0x2a, (%rax,%rcx)
movw -0x2a(%rbp), %ax
addw $0x1, %ax
movw %ax, -0x2a(%rbp)
jmp 0x33c22
movq -0x20(%rbp), %rax
movzwl -0x2a(%rbp), %ecx
movb $0x0, (%rax,%rcx)
movq -0x8(%rbp), %rdi
callq 0x326e0
movq -0x18(%rbp), %rax
movq 0x50(%rax), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x2a630
jmp 0x33cca
movq -0x18(%rbp), %rax
movb 0x98(%rax), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x1, %eax
jne 0x33cc8
movb -0x9(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x33cc8
movq -0x8(%rbp), %rdi
callq 0x326e0
movq -0x18(%rbp), %rax
movq 0x50(%rax), %rdi
movq -0x18(%rbp), %rax
movq 0x60(%rax), %rsi
callq 0x2a630
movq -0x18(%rbp), %rax
movq 0x60(%rax), %rdi
callq 0x44ec0
movq -0x18(%rbp), %rax
movq $0x0, 0x60(%rax)
jmp 0x33cca
movb -0x9(%rbp), %al
andb $0x1, %al
movzbl %al, %edx
movl $0x1, %eax
xorl %ecx, %ecx
cmpl $0x0, %edx
cmovel %ecx, %eax
movb %al, %dl
movq -0x18(%rbp), %rax
movb 0x98(%rax), %cl
andb $0x1, %dl
andb $-0x2, %cl
orb %dl, %cl
movb %cl, 0x98(%rax)
movq -0x8(%rbp), %rdi
callq 0x334a0
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax,%rax)