// File: /workspace/github_c_makefile_star2_O0/vasusharma7[P]Text-Editor/stdedit.c
// Function: add_char
int add_char(char ch,int line,int loc){
        int i = 0,y,x,j = 0;
        point *temp = data.front;
        for(i = 0; i < line; i++){
          temp = temp->tail;
        }
        //printw("%p\n",temp);
        //refresh();

        if( ch == '\n'){
            if(ipeeps(&(temp->element)) == '\n'){
                ipops(&(temp->element));
                inserts(&(temp->element),ch,loc);
            }
            else{
                inserts(&(temp->element),ch,loc);
            }
        }
        else if( (temp->element.width == (bx-3)) && (ipeeps(&(temp->element)) == '\n')){
            inserts(&(temp->element),ch,loc);
            return 0;
        }
        else if(temp->element.width >= (bx - 3)){
            if(line == lines){
                
                inserts(&(temp->element),ch,loc);
                lines++;
                //add_line(lines);
                enqueue(&data);
                while((ipeeps(&(temp->element)) == ' ') )
                    ipops(&(temp->element));
                
                if(!search_char(' ',0,temp->element)){
                    inserts(&(temp->tail->element),ipops(&(temp->element)),0);
                    ipushs(&(temp->element),'\n');
                    j = 1;
                }
                else{
                    while(  (!isEmptys(&(temp->element))) && ((i = ipops(&(temp->element))) != ' ') && ++j){
                        inserts(&(temp->tail->element),i,0);
                    }
                    
                    //inserts(&(temp->tail->element),' ',j+1);
                    ipushs(&(temp->element),'\n');
                }
                add_event(&states, "next",bx - 3,line,"","");
                char snd[2];
                snd[0] = '\n';
                snd[1] = ch;
                add_event(&states, "add",0,line+1,snd,"");
                return j;
            }
            else{
                if(loc >= (bx - 3)){
                    inserts(&(temp->tail->element),' ',0);
                    inserts(&(temp->tail->element),ch,0);
                        j++;
                    ipops(&(temp->element));
                    
                    while((ipeeps(&(temp->element)) == ' ') ||  (ipeeps(&(temp->element)) == '\n')){
                        ipops(&(temp->element));
                    }
                    //inserts(&(temp->tail->element),' ',0);
                    // ++j;
                    if(!search_char(' ',0,temp->element)){
                        inserts(&(temp->tail->element),ipops(&(temp->element)),0);
                        ipushs(&(temp->element),'\n');
                        j = 1;
                    }
                    else{
                        while( !isEmptys(&(temp->element)) && ((i = ipops(&(temp->element))) != ' ') && ++j)
                            inserts(&(temp->tail->element),i,0);
                        
                        ipushs(&(temp->element),'\n');
                    }
                }
                else{
                    inserts(&(temp->element),ch,loc);
                    i = ipops(&(temp->element));

                    while((ipeeps(&(temp->element)) == ' ') || (ipeeps(&(temp->element)) == '\n'))
                        ipops(&(temp->element));

                    //++j;            //check this well
                    //inserts(&(temp->tail->element),' ',0);
                    if(!search_char(' ',0,temp->element)){
                        inserts(&(temp->tail->element),ipops(&(temp->element)),0);
                        ipushs(&(temp->element),'\n');
                        j = 1;

                    }else{
                         inserts(&(temp->tail->element),' ',0);
                        while( !isEmptys(&(temp->element)) && ((i = ipops(&(temp->element))) != ' ') && ++j){
                            inserts(&(temp->tail->element),i,0);    
                        }
                        ipushs(&(temp->element),'\n');
                    }
                }
                
            }
            temp = temp->tail;
            int k;
            while(temp->tail && (temp->element.width >= (bx-2))){
                if(ipeeps(&(temp->element)) == '\n')
                    k = ipops(&(temp->element));

                while((ipeeps(&(temp->element)) == ' ') || (ipeeps(&(temp->element)) == '\n'))
                    k = ipops(&(temp->element));

                inserts(&(temp->tail->element),' ',0);
                if(!isEmptys(&(temp->element)))
                    k = ipops(&( temp->element));

                while( (!isEmptys(&(temp->element))) &&  (k != ' ')){
                    inserts(&(temp->tail->element),k,0);
                    k = ipops(&( temp->element));
                    if( (k == ' ') && temp->element.width > (bx - 2)){
                        k = ipops(&( temp->element));
                        inserts(&(temp->tail->element),' ',0);
                    }
                }

                ipushs(&(temp->element),'\n');
                temp = temp->tail;
            }
            if((temp->tail == NULL) && (temp->element.width >= (bx - 2))){
                lines++;
                enqueue(&data);
                while((ipeeps(&(temp->element)) == ' '))
                    k = ipops(&(temp->element));

                //inserts(&(temp->tail->element),' ',0);
                k = ipops(&( temp->element));
                while( (!isEmptys(&(temp->element))) &&  (k != ' ') && (k != '\t')){
                    inserts(&(temp->tail->element),k,0);
                    k = ipops(&( temp->element));
                    if( (k == ' ') && temp->element.width >= (bx - 2)){
                        k = ipops(&( temp->element));
                        //inserts(&(temp->tail->element),' ',0);
                    }
                }
                ipushs(&(temp->element),'\n');
            }
            
        }

        else{
            inserts(&(temp->element),ch,loc);
        }

        return j;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x80, %rsp
movb %dil, %al
movb %al, -0x5(%rbp)
movl %esi, -0xc(%rbp)
movl %edx, -0x10(%rbp)
movl $0x0, -0x14(%rbp)
movl $0x0, -0x20(%rbp)
leaq 0x9fc4(%rip), %rax      # 0xd1e0
movq (%rax), %rax
movq %rax, -0x28(%rbp)
movl $0x0, -0x14(%rbp)
movl -0x14(%rbp), %eax
cmpl -0xc(%rbp), %eax
jge 0x3248
movq -0x28(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x28(%rbp)
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x322a
movsbl -0x5(%rbp), %eax
cmpl $0xa, %eax
jne 0x329f
movq -0x28(%rbp), %rdi
addq $0x8, %rdi
callq 0x2800
cmpl $0xa, %eax
jne 0x3286
movq -0x28(%rbp), %rdi
addq $0x8, %rdi
callq 0x2660
movq -0x28(%rbp), %rdi
addq $0x8, %rdi
movsbl -0x5(%rbp), %esi
movl -0x10(%rbp), %edx
callq 0x24f0
jmp 0x329a
movq -0x28(%rbp), %rdi
addq $0x8, %rdi
movsbl -0x5(%rbp), %esi
movl -0x10(%rbp), %edx
callq 0x24f0
jmp 0x3ab0
movq -0x28(%rbp), %rax
movl 0x10(%rax), %eax
leaq 0x9eef(%rip), %rcx      # 0xd19c
movl (%rcx), %ecx
subl $0x3, %ecx
cmpl %ecx, %eax
jne 0x32e8
movq -0x28(%rbp), %rdi
addq $0x8, %rdi
callq 0x2800
cmpl $0xa, %eax
jne 0x32e8
movq -0x28(%rbp), %rdi
addq $0x8, %rdi
movsbl -0x5(%rbp), %esi
movl -0x10(%rbp), %edx
callq 0x24f0
movl $0x0, -0x4(%rbp)
jmp 0x3ab6
movq -0x28(%rbp), %rax
movl 0x10(%rax), %eax
leaq 0x9ea6(%rip), %rcx      # 0xd19c
movl (%rcx), %ecx
subl $0x3, %ecx
cmpl %ecx, %eax
jl 0x3a98
movl -0xc(%rbp), %eax
leaq 0x9e83(%rip), %rcx      # 0xd190
cmpl (%rcx), %eax
jne 0x34c3
movq -0x28(%rbp), %rdi
addq $0x8, %rdi
movsbl -0x5(%rbp), %esi
movl -0x10(%rbp), %edx
callq 0x24f0
leaq 0x9e60(%rip), %rax      # 0xd190
movl (%rax), %ecx
addl $0x1, %ecx
leaq 0x9e54(%rip), %rax      # 0xd190
movl %ecx, (%rax)
leaq 0x9e9b(%rip), %rdi      # 0xd1e0
callq 0x28c0
movq -0x28(%rbp), %rdi
addq $0x8, %rdi
callq 0x2800
cmpl $0x20, %eax
jne 0x336b
movq -0x28(%rbp), %rdi
addq $0x8, %rdi
callq 0x2660
jmp 0x334a
movq -0x28(%rbp), %rax
addq $0x8, %rax
movl $0x20, %edi
xorl %esi, %esi
movq (%rax), %rcx
movq %rcx, (%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
callq 0x3100
cmpl $0x0, %eax
jne 0x33e1
movq -0x28(%rbp), %rax
movq (%rax), %rax
addq $0x8, %rax
movq %rax, -0x38(%rbp)
movq -0x28(%rbp), %rdi
addq $0x8, %rdi
callq 0x2660
movq -0x38(%rbp), %rdi
movl %eax, %esi
xorl %edx, %edx
callq 0x24f0
movq -0x28(%rbp), %rdi
addq $0x8, %rdi
movl $0xa, %esi
callq 0x2460
movl $0x1, -0x20(%rbp)
jmp 0x345c
jmp 0x33e3
movq -0x28(%rbp), %rdi
addq $0x8, %rdi
callq 0x27c0
movl %eax, %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x39(%rbp)
jne 0x342a
movq -0x28(%rbp), %rdi
addq $0x8, %rdi
callq 0x2660
movl %eax, %ecx
movl %ecx, -0x14(%rbp)
xorl %eax, %eax
cmpl $0x20, %ecx
movb %al, -0x39(%rbp)
je 0x342a
movl -0x20(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x20(%rbp)
cmpl $0x0, %eax
setne %al
movb %al, -0x39(%rbp)
movb -0x39(%rbp), %al
testb $0x1, %al
jne 0x3433
jmp 0x344a
movq -0x28(%rbp), %rax
movq (%rax), %rdi
addq $0x8, %rdi
movl -0x14(%rbp), %esi
xorl %edx, %edx
callq 0x24f0
jmp 0x33e3
movq -0x28(%rbp), %rdi
addq $0x8, %rdi
movl $0xa, %esi
callq 0x2460
leaq 0x9d39(%rip), %rax      # 0xd19c
movl (%rax), %edx
subl $0x3, %edx
movl -0xc(%rbp), %ecx
leaq 0x9d4e(%rip), %rdi      # 0xd1c0
leaq 0x6b8e(%rip), %rsi      # 0xa007
leaq 0x703a(%rip), %r9       # 0xa4ba
movq %r9, %r8
callq 0x6b60
movb $0xa, -0x2a(%rbp)
movb -0x5(%rbp), %al
movb %al, -0x29(%rbp)
movl -0xc(%rbp), %ecx
addl $0x1, %ecx
leaq -0x2a(%rbp), %r8
leaq 0x9d1d(%rip), %rdi      # 0xd1c0
leaq 0x6b62(%rip), %rsi      # 0xa00c
xorl %edx, %edx
leaq 0x7007(%rip), %r9       # 0xa4ba
callq 0x6b60
movl -0x20(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x3ab6
movl -0x10(%rbp), %eax
leaq 0x9ccf(%rip), %rcx      # 0xd19c
movl (%rcx), %ecx
subl $0x3, %ecx
cmpl %ecx, %eax
jl 0x365a
movq -0x28(%rbp), %rax
movq (%rax), %rdi
addq $0x8, %rdi
movl $0x20, %esi
xorl %edx, %edx
callq 0x24f0
movq -0x28(%rbp), %rax
movq (%rax), %rdi
addq $0x8, %rdi
movsbl -0x5(%rbp), %esi
xorl %edx, %edx
callq 0x24f0
movl -0x20(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x20(%rbp)
movq -0x28(%rbp), %rdi
addq $0x8, %rdi
callq 0x2660
movq -0x28(%rbp), %rdi
addq $0x8, %rdi
callq 0x2800
movl %eax, %ecx
movb $0x1, %al
cmpl $0x20, %ecx
movb %al, -0x3a(%rbp)
je 0x354c
movq -0x28(%rbp), %rdi
addq $0x8, %rdi
callq 0x2800
cmpl $0xa, %eax
sete %al
movb %al, -0x3a(%rbp)
movb -0x3a(%rbp), %al
testb $0x1, %al
jne 0x3555
jmp 0x3564
movq -0x28(%rbp), %rdi
addq $0x8, %rdi
callq 0x2660
jmp 0x351d
movq -0x28(%rbp), %rax
addq $0x8, %rax
movl $0x20, %edi
xorl %esi, %esi
movq (%rax), %rcx
movq %rcx, (%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
callq 0x3100
cmpl $0x0, %eax
jne 0x35da
movq -0x28(%rbp), %rax
movq (%rax), %rax
addq $0x8, %rax
movq %rax, -0x48(%rbp)
movq -0x28(%rbp), %rdi
addq $0x8, %rdi
callq 0x2660
movq -0x48(%rbp), %rdi
movl %eax, %esi
xorl %edx, %edx
callq 0x24f0
movq -0x28(%rbp), %rdi
addq $0x8, %rdi
movl $0xa, %esi
callq 0x2460
movl $0x1, -0x20(%rbp)
jmp 0x3655
jmp 0x35dc
movq -0x28(%rbp), %rdi
addq $0x8, %rdi
callq 0x27c0
movl %eax, %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x49(%rbp)
jne 0x3623
movq -0x28(%rbp), %rdi
addq $0x8, %rdi
callq 0x2660
movl %eax, %ecx
movl %ecx, -0x14(%rbp)
xorl %eax, %eax
cmpl $0x20, %ecx
movb %al, -0x49(%rbp)
je 0x3623
movl -0x20(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x20(%rbp)
cmpl $0x0, %eax
setne %al
movb %al, -0x49(%rbp)
movb -0x49(%rbp), %al
testb $0x1, %al
jne 0x362c
jmp 0x3643
movq -0x28(%rbp), %rax
movq (%rax), %rdi
addq $0x8, %rdi
movl -0x14(%rbp), %esi
xorl %edx, %edx
callq 0x24f0
jmp 0x35dc
movq -0x28(%rbp), %rdi
addq $0x8, %rdi
movl $0xa, %esi
callq 0x2460
jmp 0x37d0
movq -0x28(%rbp), %rdi
addq $0x8, %rdi
movsbl -0x5(%rbp), %esi
movl -0x10(%rbp), %edx
callq 0x24f0
movq -0x28(%rbp), %rdi
addq $0x8, %rdi
callq 0x2660
movl %eax, -0x14(%rbp)
movq -0x28(%rbp), %rdi
addq $0x8, %rdi
callq 0x2800
movl %eax, %ecx
movb $0x1, %al
cmpl $0x20, %ecx
movb %al, -0x4a(%rbp)
je 0x36ad
movq -0x28(%rbp), %rdi
addq $0x8, %rdi
callq 0x2800
cmpl $0xa, %eax
sete %al
movb %al, -0x4a(%rbp)
movb -0x4a(%rbp), %al
testb $0x1, %al
jne 0x36b6
jmp 0x36c5
movq -0x28(%rbp), %rdi
addq $0x8, %rdi
callq 0x2660
jmp 0x367e
movq -0x28(%rbp), %rax
addq $0x8, %rax
movl $0x20, %edi
xorl %esi, %esi
movq (%rax), %rcx
movq %rcx, (%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
callq 0x3100
cmpl $0x0, %eax
jne 0x373e
movq -0x28(%rbp), %rax
movq (%rax), %rax
addq $0x8, %rax
movq %rax, -0x58(%rbp)
movq -0x28(%rbp), %rdi
addq $0x8, %rdi
callq 0x2660
movq -0x58(%rbp), %rdi
movl %eax, %esi
xorl %edx, %edx
callq 0x24f0
movq -0x28(%rbp), %rdi
addq $0x8, %rdi
movl $0xa, %esi
callq 0x2460
movl $0x1, -0x20(%rbp)
jmp 0x37ce
movq -0x28(%rbp), %rax
movq (%rax), %rdi
addq $0x8, %rdi
movl $0x20, %esi
xorl %edx, %edx
callq 0x24f0
movq -0x28(%rbp), %rdi
addq $0x8, %rdi
callq 0x27c0
movl %eax, %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x59(%rbp)
jne 0x379c
movq -0x28(%rbp), %rdi
addq $0x8, %rdi
callq 0x2660
movl %eax, %ecx
movl %ecx, -0x14(%rbp)
xorl %eax, %eax
cmpl $0x20, %ecx
movb %al, -0x59(%rbp)
je 0x379c
movl -0x20(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x20(%rbp)
cmpl $0x0, %eax
setne %al
movb %al, -0x59(%rbp)
movb -0x59(%rbp), %al
testb $0x1, %al
jne 0x37a5
jmp 0x37bc
movq -0x28(%rbp), %rax
movq (%rax), %rdi
addq $0x8, %rdi
movl -0x14(%rbp), %esi
xorl %edx, %edx
callq 0x24f0
jmp 0x3755
movq -0x28(%rbp), %rdi
addq $0x8, %rdi
movl $0xa, %esi
callq 0x2460
jmp 0x37d0
jmp 0x37d2
movq -0x28(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rcx
xorl %eax, %eax
cmpq $0x0, (%rcx)
movb %al, -0x5a(%rbp)
je 0x3807
movq -0x28(%rbp), %rax
movl 0x10(%rax), %eax
leaq 0x99a2(%rip), %rcx      # 0xd19c
movl (%rcx), %ecx
subl $0x2, %ecx
cmpl %ecx, %eax
setge %al
movb %al, -0x5a(%rbp)
movb -0x5a(%rbp), %al
testb $0x1, %al
jne 0x3813
jmp 0x3978
movq -0x28(%rbp), %rdi
addq $0x8, %rdi
callq 0x2800
cmpl $0xa, %eax
jne 0x3835
movq -0x28(%rbp), %rdi
addq $0x8, %rdi
callq 0x2660
movl %eax, -0x30(%rbp)
jmp 0x3837
movq -0x28(%rbp), %rdi
addq $0x8, %rdi
callq 0x2800
movl %eax, %ecx
movb $0x1, %al
cmpl $0x20, %ecx
movb %al, -0x5b(%rbp)
je 0x3866
movq -0x28(%rbp), %rdi
addq $0x8, %rdi
callq 0x2800
cmpl $0xa, %eax
sete %al
movb %al, -0x5b(%rbp)
movb -0x5b(%rbp), %al
testb $0x1, %al
jne 0x386f
jmp 0x3881
movq -0x28(%rbp), %rdi
addq $0x8, %rdi
callq 0x2660
movl %eax, -0x30(%rbp)
jmp 0x3837
movq -0x28(%rbp), %rax
movq (%rax), %rdi
addq $0x8, %rdi
movl $0x20, %esi
xorl %edx, %edx
callq 0x24f0
movq -0x28(%rbp), %rdi
addq $0x8, %rdi
callq 0x27c0
cmpl $0x0, %eax
jne 0x38ba
movq -0x28(%rbp), %rdi
addq $0x8, %rdi
callq 0x2660
movl %eax, -0x30(%rbp)
jmp 0x38bc
movq -0x28(%rbp), %rdi
addq $0x8, %rdi
callq 0x27c0
movl %eax, %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x5c(%rbp)
jne 0x38df
cmpl $0x20, -0x30(%rbp)
setne %al
movb %al, -0x5c(%rbp)
movb -0x5c(%rbp), %al
testb $0x1, %al
jne 0x38e8
jmp 0x3956
movq -0x28(%rbp), %rax
movq (%rax), %rdi
addq $0x8, %rdi
movl -0x30(%rbp), %esi
xorl %edx, %edx
callq 0x24f0
movq -0x28(%rbp), %rdi
addq $0x8, %rdi
callq 0x2660
movl %eax, -0x30(%rbp)
cmpl $0x20, -0x30(%rbp)
jne 0x3951
movq -0x28(%rbp), %rax
movl 0x10(%rax), %eax
leaq 0x987b(%rip), %rcx      # 0xd19c
movl (%rcx), %ecx
subl $0x2, %ecx
cmpl %ecx, %eax
jle 0x3951
movq -0x28(%rbp), %rdi
addq $0x8, %rdi
callq 0x2660
movl %eax, -0x30(%rbp)
movq -0x28(%rbp), %rax
movq (%rax), %rdi
addq $0x8, %rdi
movl $0x20, %esi
xorl %edx, %edx
callq 0x24f0
jmp 0x38bc
movq -0x28(%rbp), %rdi
addq $0x8, %rdi
movl $0xa, %esi
callq 0x2460
movq -0x28(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x28(%rbp)
jmp 0x37dd
movq -0x28(%rbp), %rax
cmpq $0x0, (%rax)
jne 0x3a96
movq -0x28(%rbp), %rax
movl 0x10(%rax), %eax
leaq 0x9808(%rip), %rcx      # 0xd19c
movl (%rcx), %ecx
subl $0x2, %ecx
cmpl %ecx, %eax
jl 0x3a96
leaq 0x97e8(%rip), %rax      # 0xd190
movl (%rax), %ecx
addl $0x1, %ecx
leaq 0x97dc(%rip), %rax      # 0xd190
movl %ecx, (%rax)
leaq 0x9823(%rip), %rdi      # 0xd1e0
callq 0x28c0
movq -0x28(%rbp), %rdi
addq $0x8, %rdi
callq 0x2800
cmpl $0x20, %eax
jne 0x39e6
movq -0x28(%rbp), %rdi
addq $0x8, %rdi
callq 0x2660
movl %eax, -0x30(%rbp)
jmp 0x39c2
movq -0x28(%rbp), %rdi
addq $0x8, %rdi
callq 0x2660
movl %eax, -0x30(%rbp)
movq -0x28(%rbp), %rdi
addq $0x8, %rdi
callq 0x27c0
movl %eax, %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x5d(%rbp)
jne 0x3a24
xorl %eax, %eax
cmpl $0x20, -0x30(%rbp)
movb %al, -0x5d(%rbp)
je 0x3a24
cmpl $0x9, -0x30(%rbp)
setne %al
movb %al, -0x5d(%rbp)
movb -0x5d(%rbp), %al
testb $0x1, %al
jne 0x3a2d
jmp 0x3a84
movq -0x28(%rbp), %rax
movq (%rax), %rdi
addq $0x8, %rdi
movl -0x30(%rbp), %esi
xorl %edx, %edx
callq 0x24f0
movq -0x28(%rbp), %rdi
addq $0x8, %rdi
callq 0x2660
movl %eax, -0x30(%rbp)
cmpl $0x20, -0x30(%rbp)
jne 0x3a7f
movq -0x28(%rbp), %rax
movl 0x10(%rax), %eax
leaq 0x9736(%rip), %rcx      # 0xd19c
movl (%rcx), %ecx
subl $0x2, %ecx
cmpl %ecx, %eax
jl 0x3a7f
movq -0x28(%rbp), %rdi
addq $0x8, %rdi
callq 0x2660
movl %eax, -0x30(%rbp)
jmp 0x39f6
movq -0x28(%rbp), %rdi
addq $0x8, %rdi
movl $0xa, %esi
callq 0x2460
jmp 0x3aac
movq -0x28(%rbp), %rdi
addq $0x8, %rdi
movsbl -0x5(%rbp), %esi
movl -0x10(%rbp), %edx
callq 0x24f0
jmp 0x3aae
jmp 0x3ab0
movl -0x20(%rbp), %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x80, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)