Given the following C code and assembly code, your task is to generate highly optimized x86-64 assembly code.
C Code:

```c
main(c){for(;~scanf("%d",&c)*c;printf("3C%02d\n",c%39?:39));}```

Assembly Code:

```assembly
	.file	"temp.c"
	.text
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	"3C%02d\n"
.LC1:
	.string	"%d"
	.section	.text.startup,"ax",@progbits
	.p2align 4
	.globl	main
	.type	main, @function
main:
.LFB0:
	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	leaq	.LC0(%rip), %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	leaq	.LC1(%rip), %rbx
	subq	$16, %rsp
	.cfi_def_cfa_offset 48
	movl	%edi, 12(%rsp)
	leaq	12(%rsp), %rbp
	jmp	.L2
	.p2align 4,,10
	.p2align 3
.L4:
	movslq	%edx, %rsi
	movl	%edx, %eax
	movq	%r12, %rdi
	imulq	$-770891565, %rsi, %rsi
	sarl	$31, %eax
	shrq	$32, %rsi
	addl	%edx, %esi
	sarl	$5, %esi
	subl	%eax, %esi
	imull	$39, %esi, %eax
	subl	%eax, %edx
	movl	$39, %eax
	movl	%edx, %esi
	cmove	%eax, %esi
	xorl	%eax, %eax
	call	printf@PLT
.L2:
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	xorl	%eax, %eax
	call	scanf@PLT
	movl	12(%rsp), %edx
	notl	%eax
	imull	%edx, %eax
	testl	%eax, %eax
	jne	.L4
	addq	$16, %rsp
	.cfi_def_cfa_offset 32
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE0:
	.size	main, .-main
	.ident	"GCC: (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	1f - 0f
	.long	4f - 1f
	.long	5
0:
	.string	"GNU"
1:
	.align 8
	.long	0xc0000002
	.long	3f - 2f
2:
	.long	0x3
3:
	.align 8
4:
```

Only output the optimized assembly code. Do not include any other text. Do not write any comments in the assembly code. Wrap the assembly code in ```assembly``` tags.
Optimized Assembly Code:

user
```assembly
	.file	"temp.c"
	.text
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	"3C%02d\n"
.LC1:
	.string	"%d"
	.section	.text.startup,"ax",@progbits
	.p2align 4
	.globl	main
	.type	main, @function
main:
.LFB0:
	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	leaq	.LC0(%rip), %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	leaq	.LC1(%rip), %rbx
	subq	$16, %rsp
	.cfi_def_cfa_offset 48
	movl	%edi, 12(%rsp)
	leaq	12(%rsp), %rbp
	jmp	.L2
	.p2align 4,,10
	.p2align 3
.L4:
	movslq	%edx, %rsi
	movl	%edx, %eax
	movq	%r12, %rdi
	imulq	$-770891565, %rsi, %rsi
	sarl	$31, %eax
	shrq	$32, %rsi
	addl	%edx, %esi
	sarl	$5, %esi
	subl	%eax, %esi
	imull	$39, %esi, %eax
	subl	%eax, %edx
	movl	$39, %eax
	movl	%edx, %esi
	cmove	%eax, %esi
	xorl	%eax, %eax
	call	printf@PLT
.L2:
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	xorl	%eax, %eax
	call	scanf@PLT
	movl	12(%rsp), %edx
	notl	%eax
	imull	%edx, %eax
	testl	%eax, %eax
	jne	.L4
	addq	$16, %rsp
	.cfi_def_cfa_offset 32
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE0:
	.size	main, .-main
	.ident	"GCC: (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	1f - 0f
	.long	4f - 1f
	.long	5
0:
	.string	"GNU"
1:
	.align 8
	.long	0xc0000002
	.long	3f - 2f
2:
	.long	0x3
3:
	.align 8
4:
```
rule
```assembly
	.file	"temp.c"
	.text
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	"3C%02d\n"
.LC1:
	.string	"%d"
	.section	.text.startup,"ax",@progbits
	.p2align 4
	.globl	main
	.type	main, @function
main:
.LFB0:
	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	leaq	.LC0(%rip), %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	leaq	.LC1(%rip), %rbx
	subq	$16, %rsp
	.cfi_def_cfa_offset 48
	movl	%edi, 12(%rsp)
	leaq	12(%rsp), %rbp
	jmp	.L2
	.p2align 4,,10
	.p2align 3
.L4:
	movslq	%edx, %rsi
	movl	%edx, %eax
	movq	%r12, %rdi
	imulq	$-770891565, %rsi, %rsi
	sarl	$31, %eax
	shrq	$32, %rsi
	addl	%edx, %esi
	sarl	$5, %esi
	subl	%eax, %esi
	imull	$39, %esi, %eax
	subl	%eax, %edx
	movl	$39, %eax
	movl	%edx, %esi
	cmove	%eax, %esi
	xorl	%eax, %eax
	call	printf@PLT
.L2:
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	xorl	%eax, %eax
	call	scanf@PLT
	movl	12(%rsp), %edx
	notl	%eax
	imull	%edx, %eax
	testl	%eax, %eax
	jne	.L4
	addq	$16, %rsp
	.cfi_def_cfa_offset 32
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE0:
	.size	main, .-main
	.ident	"GCC: (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	1f - 0f
	.long	4f - 1f
	.long	5
0:
	.string	"GNU"
1:
	.align 8
	.long	0xc0000002
	.long	3f - 2f
2:
	.long	0x3
3:
	.align 8
4:
```
```c
main(c){for(;~scanf("%d",&c)*c;printf("3C%02d\n",c%39?:39));}```
Given the following C code, your task is to generate highly optimized x86-64 assembly code.
C Code:

```c
main(c){for(;~scanf("%d",&c)*c;printf("3C%02d\n",c%39?:39));}```

Only output the optimized assembly code. Do not include any other text. Do not write any comments in the assembly code. Wrap the assembly code in ```assembly``` tags.
Optimized Assembly Code:

50
5576
6063
5578
 50
5576
6063
515
 50
5576
6063
39
 50
9200
6063
39
 50
2171
6063
39
 50
1864
6063
39
 50
1864
7383
39
 50
1864
7046
39
 50
1864
13193
39
 50
1864
896
39

3C11
3C38
3C18
3C01
 3C11
3C38
3C18
3C08
 3C11
3C38
3C18
3C39
 3C11
3C35
3C18
3C39
 3C11
3C26
3C18
3C39
 3C11
3C31
3C18
3C39
 3C11
3C31
3C12
3C39
 3C11
3C31
3C26
3C39
 3C11
3C31
3C11
3C39
 3C11
3C31
3C38
3C39

Given the following C code and assembly code, your task is to generate highly optimized x86-64 assembly code.
C Code:

```c
main(c){for(;~scanf("%d",&c)*c;printf("3C%02d\n",c%39?:39));}```

Assembly Code:

```assembly
	.file	"temp.c"
	.text
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	"3C%02d\n"
.LC1:
	.string	"%d"
	.section	.text.startup,"ax",@progbits
	.p2align 4
	.globl	main
	.type	main, @function
main:
.LFB0:
	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	leaq	.LC0(%rip), %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	leaq	.LC1(%rip), %rbx
	subq	$16, %rsp
	.cfi_def_cfa_offset 48
	movl	%edi, 12(%rsp)
	leaq	12(%rsp), %rbp
	jmp	.L2
	.p2align 4,,10
	.p2align 3
.L4:
	movslq	%edx, %rsi
	movl	%edx, %eax
	movq	%r12, %rdi
	imulq	$-770891565, %rsi, %rsi
	sarl	$31, %eax
	shrq	$32, %rsi
	addl	%edx, %esi
	sarl	$5, %esi
	subl	%eax, %esi
	imull	$39, %esi, %eax
	subl	%eax, %edx
	movl	$39, %eax
	movl	%edx, %esi
	cmove	%eax, %esi
	xorl	%eax, %eax
	call	printf@PLT
.L2:
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	xorl	%eax, %eax
	call	scanf@PLT
	movl	12(%rsp), %edx
	notl	%eax
	imull	%edx, %eax
	testl	%eax, %eax
	jne	.L4
	addq	$16, %rsp
	.cfi_def_cfa_offset 32
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE0:
	.size	main, .-main
	.ident	"GCC: (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	1f - 0f
	.long	4f - 1f
	.long	5
0:
	.string	"GNU"
1:
	.align 8
	.long	0xc0000002
	.long	3f - 2f
2:
	.long	0x3
3:
	.align 8
4:
```

Only output the optimized assembly code. Do not include any other text. Do not write any comments in the assembly code. Wrap the assembly code in ```assembly``` tags.
Optimized Assembly Code:

train
```assembly
	.file	"temp.c"
	.text
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	"3C%02d\n"
.LC1:
	.string	"%d"
	.section	.text.startup,"ax",@progbits
	.p2align 4
	.globl	main
	.type	main, @function
main:
.LFB0:
	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	leaq	.LC0(%rip), %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	leaq	.LC1(%rip), %rbx
	subq	$16, %rsp
	.cfi_def_cfa_offset 48
	movl	%edi, 12(%rsp)
	leaq	12(%rsp), %rbp
	jmp	.L2
	.p2align 4,,10
	.p2align 3
.L4:
	movslq	%edx, %rsi
	movl	%edx, %eax
	movq	%r12, %rdi
	imulq	$-770891565, %rsi, %rsi
	sarl	$31, %eax
	shrq	$32, %rsi
	addl	%edx, %esi
	sarl	$5, %esi
	subl	%eax, %esi
	imull	$39, %esi, %eax
	subl	%eax, %edx
	movl	$39, %eax
	movl	%edx, %esi
	cmove	%eax, %esi
	xorl	%eax, %eax
	call	printf@PLT
.L2:
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	xorl	%eax, %eax
	call	scanf@PLT
	movl	12(%rsp), %edx
	notl	%eax
	imull	%edx, %eax
	testl	%eax, %eax
	jne	.L4
	addq	$16, %rsp
	.cfi_def_cfa_offset 32
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE0:
	.size	main, .-main
	.ident	"GCC: (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	1f - 0f
	.long	4f - 1f
	.long	5
0:
	.string	"GNU"
1:
	.align 8
	.long	0xc0000002
	.long	3f - 2f
2:
	.long	0x3
3:
	.align 8
4:
```