// File: /workspace/github_c_makefile_star2_O3/rpeepz[P]ft_ssl/srcs/rsa/asn1.c
// Function: asn1
void			asn1(t_rsa gg, uint8_t *buf, uint8_t *buf2, int *len)
{
	dump_to_buf(buf, INT, NULL, len);
	dump_to_buf(buf, byte_string(buf2, gg.n)[0] == 0xFF ?
	byte_len(gg.n) + 1 : byte_len(gg.n), NULL, len);
	dump_to_buf(buf, 0, byte_string(buf2, gg.n), len);
	dump_to_buf(buf, INT, NULL, len);
	dump_to_buf(buf, byte_len(gg.e), NULL, len);
	dump_to_buf(buf, 0, byte_string(buf2, gg.e), len);
	dump_to_buf(buf, INT, NULL, len);
	dump_to_buf(buf, byte_string(buf2, gg.d)[0] == 0xFF ?
	byte_len(gg.d) + 1 : byte_len(gg.d), NULL, len);
	dump_to_buf(buf, 0, byte_string(buf2, gg.d), len);
	dump_to_buf(buf, INT, NULL, len);
	dump_to_buf(buf, byte_string(buf2, gg.p)[0] == 0xFF ?
	byte_len(gg.p) + 1 : byte_len(gg.p), NULL, len);
	dump_to_buf(buf, 0, byte_string(buf2, gg.p), len);
	dump_to_buf(buf, INT, NULL, len);
	dump_to_buf(buf, byte_string(buf2, gg.q)[0] == 0xFF ?
	byte_len(gg.q) + 1 : byte_len(gg.q), NULL, len);
	dump_to_buf(buf, 0, byte_string(buf2, gg.q), len);
	dump_to_buf(buf, INT, NULL, len);
	asn1_cont(gg, buf, buf2, len);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1018, %rsp           # imm = 0x1018
movq %rdx, %rbx
movq %rsi, %r15
movq %rdi, %r14
movl $0x2, %esi
xorl %edx, %edx
movq %rbx, %rcx
callq 0x1822
movq 0x1060(%rsp), %r12
movq %r15, %rdi
movq %r12, %rsi
callq 0x179d
cmpb $-0x1, (%rax)
sete %bpl
movq %r12, %rdi
callq 0x1780
addb %bpl, %al
movsbl %al, %esi
movq %r14, %rdi
xorl %edx, %edx
movq %rbx, %rcx
callq 0x1822
movq %r15, %rdi
movq %r12, %rsi
callq 0x179d
movq %r14, %rdi
xorl %esi, %esi
movq %rax, %rdx
movq %rbx, %rcx
callq 0x1822
movq %r14, %rdi
movl $0x2, %esi
xorl %edx, %edx
movq %rbx, %rcx
callq 0x1822
movq 0x1088(%rsp), %r12
movq %r12, %rdi
callq 0x1780
movsbl %al, %esi
movq %r14, %rdi
xorl %edx, %edx
movq %rbx, %rcx
callq 0x1822
movq %r15, %rdi
movq %r12, %rsi
callq 0x179d
movq %r14, %rdi
xorl %esi, %esi
movq %rax, %rdx
movq %rbx, %rcx
callq 0x1822
movq %r14, %rdi
movl $0x2, %esi
xorl %edx, %edx
movq %rbx, %rcx
callq 0x1822
movq 0x1090(%rsp), %r12
movq %r15, %rdi
movq %r12, %rsi
callq 0x179d
cmpb $-0x1, (%rax)
sete %bpl
movq %r12, %rdi
callq 0x1780
addb %bpl, %al
movsbl %al, %esi
movq %r14, %rdi
xorl %edx, %edx
movq %rbx, %rcx
callq 0x1822
movq %r15, %rdi
movq %r12, %rsi
callq 0x179d
movq %r14, %rdi
xorl %esi, %esi
movq %rax, %rdx
movq %rbx, %rcx
callq 0x1822
movq %r14, %rdi
movl $0x2, %esi
xorl %edx, %edx
movq %rbx, %rcx
callq 0x1822
movq 0x1050(%rsp), %r12
movq %r15, %rdi
movq %r12, %rsi
callq 0x179d
cmpb $-0x1, (%rax)
sete %bpl
movq %r12, %rdi
callq 0x1780
addb %bpl, %al
movsbl %al, %esi
movq %r14, %rdi
xorl %edx, %edx
movq %rbx, %rcx
callq 0x1822
movq %r15, %rdi
movq %r12, %rsi
callq 0x179d
movq %r14, %rdi
xorl %esi, %esi
movq %rax, %rdx
movq %rbx, %rcx
callq 0x1822
movq %r14, %rdi
movl $0x2, %esi
xorl %edx, %edx
movq %rbx, %rcx
callq 0x1822
movq 0x1058(%rsp), %r12
movq %r15, %rdi
movq %r12, %rsi
callq 0x179d
cmpb $-0x1, (%rax)
sete %bpl
movq %r12, %rdi
callq 0x1780
addb %bpl, %al
movsbl %al, %esi
movq %r14, %rdi
xorl %edx, %edx
movq %rbx, %rcx
callq 0x1822
movq %r15, %rdi
movq %r12, %rsi
callq 0x179d
movq %r14, %rdi
xorl %esi, %esi
movq %rax, %rdx
movq %rbx, %rcx
callq 0x1822
movq %r14, %rdi
movl $0x2, %esi
xorl %edx, %edx
movq %rbx, %rcx
callq 0x1822
movq 0x1070(%rsp), %rbp
movq 0x1078(%rsp), %r13
movq 0x1080(%rsp), %rax
movq %rax, (%rsp)
movq %r15, %rdi
movq %rbp, %rsi
callq 0x179d
cmpb $-0x1, (%rax)
sete %r12b
movq %rbp, %rdi
callq 0x1780
addb %r12b, %al
movsbl %al, %esi
movq %r14, %rdi
xorl %edx, %edx
movq %rbx, %rcx
callq 0x1822
movq %r15, %rdi
movq %rbp, %rsi
callq 0x179d
movq %r14, %rdi
xorl %esi, %esi
movq %rax, %rdx
movq %rbx, %rcx
callq 0x1822
movq %r14, %rdi
movl $0x2, %esi
xorl %edx, %edx
movq %rbx, %rcx
callq 0x1822
movq %r15, %rdi
movq %r13, %rsi
callq 0x179d
cmpb $-0x1, (%rax)
sete %bpl
movq %r13, %rdi
callq 0x1780
addb %bpl, %al
movsbl %al, %esi
movq %r14, %rdi
xorl %edx, %edx
movq %rbx, %rcx
callq 0x1822
movq %r15, %rdi
movq %r13, %rsi
callq 0x179d
movq %r14, %rdi
xorl %esi, %esi
movq %rax, %rdx
movq %rbx, %rcx
callq 0x1822
movq %r14, %rdi
movl $0x2, %esi
xorl %edx, %edx
movq %rbx, %rcx
callq 0x1822
movq %r15, %rdi
movq (%rsp), %r12
movq %r12, %rsi
callq 0x179d
cmpb $-0x1, (%rax)
sete %bpl
movq %r12, %rdi
callq 0x1780
addb %bpl, %al
movsbl %al, %esi
movq %r14, %rdi
xorl %edx, %edx
movq %rbx, %rcx
callq 0x1822
movq %r15, %rdi
movq %r12, %rsi
callq 0x179d
movq %r14, %rdi
xorl %esi, %esi
movq %rax, %rdx
movq %rbx, %rcx
callq 0x1822
movslq (%rbx), %rdx
leaq 0x10(%rsp), %r15
movq %r15, %rdi
movq %r14, %rsi
callq 0x73ac
movl $0x1000, %esi           # imm = 0x1000
movq %r14, %rdi
callq 0x7370
leaq 0xc(%rsp), %r12
movl $0x0, (%r12)
movq %r14, %rdi
movl $0x30, %esi
xorl %edx, %edx
movq %r12, %rcx
callq 0x1822
movb (%rbx), %al
addb $0x3, %al
movsbl %al, %esi
movq %r14, %rdi
xorl %edx, %edx
movq %r12, %rcx
callq 0x1822
movq %r14, %rdi
movl $0x2, %esi
xorl %edx, %edx
movq %r12, %rcx
callq 0x1822
movq %r14, %rdi
movl $0x1, %esi
xorl %edx, %edx
movq %r12, %rcx
callq 0x1822
movq %r14, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
xorl %edx, %edx
movq %r12, %rcx
callq 0x1822
movslq (%r12), %rdi
addq %r14, %rdi
movslq (%rbx), %rdx
movq %r15, %rsi
callq 0x73ac
addl $0x5, (%rbx)
addq $0x1018, %rsp           # imm = 0x1018
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq