// File: /workspace/github_c_makefile_star2_O0/rpeepz[P]ft_ssl/srcs/rsa/asn1.c
// Function: asn1_cont
static void		asn1_cont(t_rsa gg, uint8_t *buf, uint8_t *buf2, int *len)
{
	uint8_t		copy[PAGESIZE];
	int			index;

	dump_to_buf(buf, byte_string(buf2, gg.dmp1)[0] == 0xFF ?
	byte_len(gg.dmp1) + 1 : byte_len(gg.dmp1), NULL, len);
	dump_to_buf(buf, 0, byte_string(buf2, gg.dmp1), len);
	dump_to_buf(buf, INT, NULL, len);
	dump_to_buf(buf, byte_string(buf2, gg.dmq1)[0] == 0xFF ?
	byte_len(gg.dmq1) + 1 : byte_len(gg.dmq1), NULL, len);
	dump_to_buf(buf, 0, byte_string(buf2, gg.dmq1), len);
	dump_to_buf(buf, INT, NULL, len);
	dump_to_buf(buf, byte_string(buf2, gg.iqmp)[0] == 0xFF ?
	byte_len(gg.iqmp) + 1 : byte_len(gg.iqmp), NULL, len);
	dump_to_buf(buf, 0, byte_string(buf2, gg.iqmp), len);
	ft_memcpy(copy, buf, *len);
	ft_bzero(buf, PAGESIZE);
	index = 0;
	dump_to_buf(buf, SEQUENCE, NULL, &index);
	dump_to_buf(buf, (char)(*len + 3), NULL, &index);
	dump_to_buf(buf, INT, NULL, &index);
	dump_to_buf(buf, V, NULL, &index);
	dump_to_buf(buf, V1, NULL, &index);
	ft_memcpy(&buf[index], copy, *len);
	*len += 5;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1080, %rsp           # imm = 0x1080
leaq 0x10(%rbp), %rax
movq %rax, -0x1038(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rcx
movq %rcx, -0x1030(%rbp)
movq -0x10(%rbp), %rdi
movq 0x20(%rax), %rsi
callq 0x1ba0
movzbl (%rax), %eax
cmpl $0xff, %eax
jne 0x15e2
movq -0x1038(%rbp), %rax
movq 0x20(%rax), %rdi
callq 0x1b70
movsbl %al, %eax
addl $0x1, %eax
movl %eax, -0x103c(%rbp)
jmp 0x15fb
movq -0x1038(%rbp), %rax
movq 0x20(%rax), %rdi
callq 0x1b70
movsbl %al, %eax
movl %eax, -0x103c(%rbp)
movq -0x1030(%rbp), %rdi
movl -0x103c(%rbp), %eax
movq -0x18(%rbp), %rcx
xorl %edx, %edx
movsbl %al, %esi
callq 0x1cd0
movq -0x1038(%rbp), %rax
movq -0x8(%rbp), %rcx
movq %rcx, -0x1050(%rbp)
movq -0x10(%rbp), %rdi
movq 0x20(%rax), %rsi
callq 0x1ba0
movq -0x1050(%rbp), %rdi
movq %rax, %rdx
movq -0x18(%rbp), %rcx
xorl %esi, %esi
callq 0x1cd0
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rcx
movl $0x2, %esi
xorl %eax, %eax
movl %eax, %edx
callq 0x1cd0
movq -0x1038(%rbp), %rax
movq -0x8(%rbp), %rcx
movq %rcx, -0x1048(%rbp)
movq -0x10(%rbp), %rdi
movq 0x28(%rax), %rsi
callq 0x1ba0
movzbl (%rax), %eax
cmpl $0xff, %eax
jne 0x16a7
movq -0x1038(%rbp), %rax
movq 0x28(%rax), %rdi
callq 0x1b70
movsbl %al, %eax
addl $0x1, %eax
movl %eax, -0x1054(%rbp)
jmp 0x16c0
movq -0x1038(%rbp), %rax
movq 0x28(%rax), %rdi
callq 0x1b70
movsbl %al, %eax
movl %eax, -0x1054(%rbp)
movq -0x1048(%rbp), %rdi
movl -0x1054(%rbp), %eax
movq -0x18(%rbp), %rcx
xorl %edx, %edx
movsbl %al, %esi
callq 0x1cd0
movq -0x1038(%rbp), %rax
movq -0x8(%rbp), %rcx
movq %rcx, -0x1068(%rbp)
movq -0x10(%rbp), %rdi
movq 0x28(%rax), %rsi
callq 0x1ba0
movq -0x1068(%rbp), %rdi
movq %rax, %rdx
movq -0x18(%rbp), %rcx
xorl %esi, %esi
callq 0x1cd0
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rcx
movl $0x2, %esi
xorl %eax, %eax
movl %eax, %edx
callq 0x1cd0
movq -0x1038(%rbp), %rax
movq -0x8(%rbp), %rcx
movq %rcx, -0x1060(%rbp)
movq -0x10(%rbp), %rdi
movq 0x30(%rax), %rsi
callq 0x1ba0
movzbl (%rax), %eax
cmpl $0xff, %eax
jne 0x176c
movq -0x1038(%rbp), %rax
movq 0x30(%rax), %rdi
callq 0x1b70
movsbl %al, %eax
addl $0x1, %eax
movl %eax, -0x106c(%rbp)
jmp 0x1785
movq -0x1038(%rbp), %rax
movq 0x30(%rax), %rdi
callq 0x1b70
movsbl %al, %eax
movl %eax, -0x106c(%rbp)
movq -0x1060(%rbp), %rdi
movl -0x106c(%rbp), %eax
movq -0x18(%rbp), %rcx
xorl %edx, %edx
movsbl %al, %esi
callq 0x1cd0
movq -0x1038(%rbp), %rax
movq -0x8(%rbp), %rcx
movq %rcx, -0x1078(%rbp)
movq -0x10(%rbp), %rdi
movq 0x30(%rax), %rsi
callq 0x1ba0
movq -0x1078(%rbp), %rdi
movq %rax, %rdx
movq -0x18(%rbp), %rcx
xorl %esi, %esi
callq 0x1cd0
leaq -0x1020(%rbp), %rdi
movq -0x8(%rbp), %rsi
movq -0x18(%rbp), %rax
movslq (%rax), %rdx
callq 0xa6a0
movq -0x8(%rbp), %rdi
movl $0x1000, %esi           # imm = 0x1000
callq 0xa600
movl $0x0, -0x1024(%rbp)
movq -0x8(%rbp), %rdi
movl $0x30, %esi
xorl %eax, %eax
movl %eax, %edx
leaq -0x1024(%rbp), %rcx
callq 0x1cd0
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rax
movl (%rax), %eax
addl $0x3, %eax
xorl %ecx, %ecx
movl %ecx, %edx
leaq -0x1024(%rbp), %rcx
movsbl %al, %esi
callq 0x1cd0
movq -0x8(%rbp), %rdi
movl $0x2, %esi
xorl %eax, %eax
movl %eax, %edx
leaq -0x1024(%rbp), %rcx
callq 0x1cd0
movq -0x8(%rbp), %rdi
movl $0x1, %esi
xorl %eax, %eax
movl %eax, %edx
leaq -0x1024(%rbp), %rcx
callq 0x1cd0
movq -0x8(%rbp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
xorl %eax, %eax
movl %eax, %edx
leaq -0x1024(%rbp), %rcx
callq 0x1cd0
movq -0x8(%rbp), %rdi
movslq -0x1024(%rbp), %rax
addq %rax, %rdi
leaq -0x1020(%rbp), %rsi
movq -0x18(%rbp), %rax
movslq (%rax), %rdx
callq 0xa6a0
movq -0x18(%rbp), %rax
movl (%rax), %ecx
addl $0x5, %ecx
movl %ecx, (%rax)
addq $0x1080, %rsp           # imm = 0x1080
popq %rbp
retq
nopl (%rax)