user: 提供的汇编代码用C语言表示会是什么样子：

```asm
<draw_start>:
  endbr64
  push   %r15
  xor    %eax,%eax
  lea    D362(%rip),%r15
  push   %r14
  lea    D432(%rip),%r14
  push   %r13
  lea    D292(%rip),%r13
  push   %r12
  lea    D987(%rip),%r12
  push   %rbp
  mov    %rdi,%rbp
  push   %rbx
  lea    D347(%rip),%rbx
  sub    $0x18,%rsp
  mov    %esi,0x8(%rsp)
  lea    D182(%rip),%rsi
  mov    %edx,0xc(%rsp)
  call   <fprintf@plt>
  mov    %rbp,%rcx
  mov    $0x1a,%edx
  mov    $0x1,%esi
  lea    D604(%rip),%rdi
  call   <fwrite@plt>
  mov    %rbp,%rdi
  lea    D172(%rip),%rsi
  xor    %eax,%eax
  call   <fprintf@plt>
  mov    %rbp,%rdi
  lea    D662(%rip),%rsi
  xor    %eax,%eax
  call   <fprintf@plt>
  mov    %rbp,%rdi
  lea    D982(%rip),%rsi
  xor    %eax,%eax
  call   <fprintf@plt>
  mov    %rbp,%rdi
  lea    D134(%rip),%rsi
  xor    %eax,%eax
  call   <fprintf@plt>
  mov    %rbp,%rcx
  mov    $0x18,%edx
  mov    $0x1,%esi
  lea    D713(%rip),%rdi
  call   <fwrite@plt>
  mov    %rbp,%rcx
  mov    $0x18,%edx
  mov    $0x1,%esi
  lea    D870(%rip),%rdi
  call   <fwrite@plt>
  mov    %rbp,%rcx
  mov    $0x22,%edx
  mov    $0x1,%esi
  lea    D855(%rip),%rdi
  call   <fwrite@plt>
  mov    %rbp,%rcx
  mov    $0x22,%edx
  mov    $0x1,%esi
  lea    D455(%rip),%rdi
  call   <fwrite@plt>
  mov    %rbp,%rcx
  mov    $0x18,%edx
  mov    $0x1,%esi
  lea    D1008(%rip),%rdi
  call   <fwrite@plt>
  mov    %rbp,%rcx
  mov    $0x18,%edx
  mov    $0x1,%esi
  lea    D52(%rip),%rdi
  call   <fwrite@plt>
  mov    %rbp,%rcx
  mov    $0x1a,%edx
  mov    $0x1,%esi
  lea    D608(%rip),%rdi
  call   <fwrite@plt>
  mov    %rbp,%rcx
  mov    $0x1a,%edx
  mov    $0x1,%esi
  lea    D925(%rip),%rdi
  call   <fwrite@plt>
  mov    %rbp,%rcx
  mov    $0x1a,%edx
  mov    $0x1,%esi
  lea    D467(%rip),%rdi
  call   <fwrite@plt>
  mov    %rbp,%rcx
  mov    $0x1a,%edx
  mov    $0x1,%esi
  lea    D948(%rip),%rdi
  call   <fwrite@plt>
  mov    %rbp,%rcx
  mov    $0x1c,%edx
  mov    $0x1,%esi
  lea    D647(%rip),%rdi
  call   <fwrite@plt>
  mov    %rbp,%rcx
  mov    $0x33,%edx
  mov    $0x1,%esi
  lea    D1021(%rip),%rdi
  call   <fwrite@plt>
  mov    %rbp,%rsi
  mov    $0xa,%edi
  call   <fputc@plt>
  mov    %rbp,%rdi
  lea    D837(%rip),%rsi
  xor    %eax,%eax
  call   <fprintf@plt>
  mov    %rbp,%rcx
  mov    $0x1f,%edx
  mov    $0x1,%esi
  lea    D65(%rip),%rdi
  call   <fwrite@plt>
  mov    %rbp,%rdi
  lea    D564(%rip),%rsi
  xor    %eax,%eax
  call   <fprintf@plt>
  mov    %rbp,%rcx
  mov    $0x1e,%edx
  mov    $0x1,%esi
  lea    D219(%rip),%rdi
  call   <fwrite@plt>
  mov    %rbp,%rdi
  lea    D109(%rip),%rsi
  xor    %eax,%eax
  call   <fprintf@plt>
  mov    %rbp,%rcx
  mov    $0x1a,%edx
  mov    $0x1,%esi
  lea    D459(%rip),%rdi
  call   <fwrite@plt>
  mov    %rbp,%rcx
  mov    $0x2d,%edx
  mov    $0x1,%esi
  lea    D34(%rip),%rdi
  call   <fwrite@plt>
  mov    %rbp,%rcx
  mov    $0xd,%edx
  mov    $0x1,%esi
  lea    D832(%rip),%rdi
  call   <fwrite@plt>
  mov    %rbp,%rdi
  lea    D11(%rip),%rsi
  xor    %eax,%eax
  call   <fprintf@plt>
  mov    %rbp,%rcx
  mov    $0x1f,%edx
  mov    $0x1,%esi
  lea    D722(%rip),%rdi
  call   <fwrite@plt>
  mov    %rbp,%rcx
  mov    $0x19,%edx
  mov    $0x1,%esi
  lea    D364(%rip),%rdi
  call   <fwrite@plt>
  mov    %rbp,%rdi
  lea    D587(%rip),%rsi
  xor    %eax,%eax
  call   <fprintf@plt>
  mov    %rbp,%rcx
  mov    $0x6,%edx
  mov    %r12,%rdi
  mov    $0x1,%esi
  call   <fwrite@plt>
  mov    %rbp,%rsi
  mov    $0xa,%edi
  call   <fputc@plt>
  mov    %rbp,%rdi
  lea    D724(%rip),%rsi
  xor    %eax,%eax
  call   <fprintf@plt>
  mov    %rbp,%rcx
  mov    $0x12,%edx
  mov    $0x1,%esi
  lea    D743(%rip),%rdi
  call   <fwrite@plt>
  mov    %rbp,%rcx
  mov    $0x12,%edx
  mov    $0x1,%esi
  lea    D64(%rip),%rdi
  call   <fwrite@plt>
  mov    %rbp,%rcx
  mov    $0xa,%edx
  mov    %rbx,%rdi
  mov    $0x1,%esi
  call   <fwrite@plt>
  mov    %rbp,%rdi
  lea    D174(%rip),%rsi
  xor    %eax,%eax
  call   <fprintf@plt>
  mov    %rbp,%rcx
  mov    $0x16,%edx
  mov    $0x1,%esi
  lea    D515(%rip),%rdi
  call   <fwrite@plt>
  lea    D240(%rip),%r10
  mov    %rbp,%rdi
  xor    %eax,%eax
  mov    %r10,%rsi
  call   <fprintf@plt>
  mov    %rbp,%rdi
  lea    D262(%rip),%rsi
  xor    %eax,%eax
  call   <fprintf@plt>
  mov    %rbp,%rdi
  lea    D272(%rip),%rsi
  xor    %eax,%eax
  call   <fprintf@plt>
  mov    %rbp,%rdi
  lea    D709(%rip),%rsi
  xor    %eax,%eax
  call   <fprintf@plt>
  mov    %rbp,%rdi
  lea    D387(%rip),%rsi
  xor    %eax,%eax
  call   <fprintf@plt>
  mov    %rbp,%rdi
  lea    D999(%rip),%rsi
  xor    %eax,%eax
  call   <fprintf@plt>
  mov    %rbp,%rcx
  mov    %r14,%rdi
  mov    $0x13,%edx
  mov    $0x1,%esi
  call   <fwrite@plt>
  mov    %rbp,%rcx
  mov    $0x13,%edx
  mov    %r13,%rdi
  mov    $0x1,%esi
  call   <fwrite@plt>
  lea    D420(%rip),%r8
  mov    %rbp,%rdi
  xor    %eax,%eax
  mov    %r8,%rsi
  call   <fprintf@plt>
  mov    %rbp,%rdi
  lea    D929(%rip),%rsi
  xor    %eax,%eax
  call   <fprintf@plt>
  mov    %rbp,%rdi
  lea    D203(%rip),%rsi
  xor    %eax,%eax
  call   <fprintf@plt>
  mov    %rbp,%rcx
  mov    %r14,%rdi
  mov    $0x13,%edx
  mov    $0x1,%esi
  call   <fwrite@plt>
  mov    %rbp,%rcx
  mov    %r13,%rdi
  mov    $0x13,%edx
  mov    $0x1,%esi
  call   <fwrite@plt>
  mov    %rbp,%rcx
  mov    $0x9,%edx
  mov    %r15,%rdi
  mov    $0x1,%esi
  call   <fwrite@plt>
  mov    %rbp,%rdi
  lea    D315(%rip),%rsi
  xor    %eax,%eax
  call   <fprintf@plt>
  mov    %rbp,%rcx
  mov    $0x16,%edx
  mov    $0x1,%esi
  lea    D591(%rip),%rdi
  call   <fwrite@plt>
  mov    %rbp,%rcx
  mov    $0x12,%edx
  mov    $0x1,%esi
  lea    D445(%rip),%rdi
  call   <fwrite@plt>
  mov    %rbp,%rcx
  mov    $0x19,%edx
  mov    $0x1,%esi
  lea    D899(%rip),%rdi
  call   <fwrite@plt>
  mov    %rbp,%rcx
  mov    $0x12,%edx
  mov    $0x1,%esi
  lea    D1158(%rip),%rdi
  call   <fwrite@plt>
  mov    %rbp,%rcx
  mov    $0x6,%edx
  mov    %r12,%rdi
  mov    $0x1,%esi
  call   <fwrite@plt>
  mov    %rbp,%rsi
  mov    $0xa,%edi
  call   <fputc@plt>
  mov    %rbp,%rdi
  lea    D393(%rip),%rsi
  xor    %eax,%eax
  call   <fprintf@plt>
  mov    %rbp,%rdi
  lea    D1089(%rip),%rsi
  xor    %eax,%eax
  call   <fprintf@plt>
  mov    %rbp,%rdi
  lea    D1121(%rip),%rsi
  xor    %eax,%eax
  call   <fprintf@plt>
  mov    %rbp,%rdi
  lea    D835(%rip),%rsi
  xor    %eax,%eax
  call   <fprintf@plt>
  lea    D534(%rip),%r9
  mov    %rbp,%rdi
  xor    %eax,%eax
  mov    %r9,%rsi
  call   <fprintf@plt>
  mov    %rbp,%rdi
  lea    D1084(%rip),%rsi
  xor    %eax,%eax
  call   <fprintf@plt>
  mov    %rbp,%rcx
  mov    %rbx,%rdi
  mov    $0xa,%edx
  mov    $0x1,%esi
  call   <fwrite@plt>
  mov    %rbp,%rcx
  mov    $0x13,%edx
  mov    %r14,%rdi
  mov    $0x1,%esi
  call   <fwrite@plt>
  mov    %rbp,%rdi
  lea    D953(%rip),%rsi
  xor    %eax,%eax
  call   <fprintf@plt>
  mov    %rbp,%rcx
  mov    $0x13,%edx
  mov    $0x1,%esi
  lea    D104(%rip),%rdi
  call   <fwrite@plt>
  mov    %rbp,%rcx
  mov    %r13,%rdi
  mov    $0x13,%edx
  mov    $0x1,%esi
  call   <fwrite@plt>
  mov    %rbp,%rcx
  mov    $0x9,%edx
  mov    %r15,%rdi
  mov    $0x1,%esi
  call   <fwrite@plt>
  mov    %rbp,%rdi
  lea    D29(%rip),%rsi
  xor    %eax,%eax
  call   <fprintf@plt>
  mov    %rbp,%rcx
  mov    $0xb,%edx
  mov    $0x1,%esi
  lea    D294(%rip),%rdi
  call   <fwrite@plt>
  mov    %rbp,%rdi
  lea    D905(%rip),%rsi
  xor    %eax,%eax
  call   <fprintf@plt>
  mov    %rbp,%rdi
  lea    D757(%rip),%rsi
  xor    %eax,%eax
  call   <fprintf@plt>
  mov    %rbp,%rcx
  mov    $0x14,%edx
  mov    $0x1,%esi
  lea    D186(%rip),%rdi
  call   <fwrite@plt>
  mov    %rbp,%rcx
  mov    $0x13,%edx
  mov    $0x1,%esi
  lea    D419(%rip),%rdi
  call   <fwrite@plt>
  mov    %rbp,%rcx
  mov    $0x6,%edx
  mov    $0x1,%esi
  lea    D827(%rip),%rdi
  call   <fwrite@plt>
  mov    %rbp,%rcx
  mov    $0x6,%edx
  mov    %r12,%rdi
  mov    $0x1,%esi
  call   <fwrite@plt>
  mov    %rbp,%rsi
  mov    $0xa,%edi
  call   <fputc@plt>
  mov    %rbp,%rdi
  lea    D737(%rip),%rsi
  xor    %eax,%eax
  call   <fprintf@plt>
  lea    D240(%rip),%r10
  mov    %rbp,%rdi
  xor    %eax,%eax
  mov    %r10,%rsi
  call   <fprintf@plt>
  lea    D341(%rip),%r11
  mov    %rbp,%rdi
  xor    %eax,%eax
  mov    %r11,%rsi
  call   <fprintf@plt>
  lea    D534(%rip),%r9
  mov    %rbp,%rdi
  xor    %eax,%eax
  mov    %r9,%rsi
  call   <fprintf@plt>
  lea    D141(%rip),%r10
  mov    %rbp,%rdi
  xor    %eax,%eax
  mov    %r10,%rsi
  call   <fprintf@plt>
  mov    %rbp,%rdi
  lea    D773(%rip),%rsi
  xor    %eax,%eax
  call   <fprintf@plt>
  mov    %rbp,%rcx
  mov    %rbx,%rdi
  mov    $0xa,%edx
  mov    $0x1,%esi
  call   <fwrite@plt>
  mov    %rbp,%rcx
  mov    %r14,%rdi
  mov    $0x13,%edx
  mov    $0x1,%esi
  call   <fwrite@plt>
  mov    %rbp,%rcx
  mov    %r13,%rdi
  mov    $0x13,%edx
  mov    $0x1,%esi
  call   <fwrite@plt>
  mov    %rbp,%rcx
  mov    $0x9,%edx
  mov    %r15,%rdi
  mov    $0x1,%esi
  call   <fwrite@plt>
  mov    %rbp,%rdi
  lea    D29(%rip),%rsi
  xor    %eax,%eax
  call   <fprintf@plt>
  mov    %rbp,%rcx
  mov    $0xb,%edx
  mov    $0x1,%esi
  lea    D294(%rip),%rdi
  call   <fwrite@plt>
  mov    %rbp,%rdi
  lea    D905(%rip),%rsi
  xor    %eax,%eax
  call   <fprintf@plt>
  mov    %rbp,%rdi
  lea    D757(%rip),%rsi
  xor    %eax,%eax
  call   <fprintf@plt>
  mov    %rbp,%rcx
  mov    $0x14,%edx
  mov    $0x1,%esi
  lea    D186(%rip),%rdi
  call   <fwrite@plt>
  mov    %rbp,%rcx
  mov    $0x13,%edx
  mov    $0x1,%esi
  lea    D419(%rip),%rdi
  call   <fwrite@plt>
  mov    %rbp,%rcx
  mov    $0x6,%edx
  mov    $0x1,%esi
  lea    D827(%rip),%rdi
  call   <fwrite@plt>
  mov    %rbp,%rcx
  mov    $0x6,%edx
  mov    %r12,%rdi
  mov    $0x1,%esi
  call   <fwrite@plt>
  mov    %rbp,%rsi
  mov    $0xa,%edi
  call   <fputc@plt>
  mov    %rbp,%rdi
  lea    D609(%rip),%rsi
  xor    %eax,%eax
  call   <fprintf@plt>
  lea    D420(%rip),%r8
  mov    %rbp,%rdi
  xor    %eax,%eax
  mov    %r8,%rsi
  call   <fprintf@plt>
  lea    D341(%rip),%r11
  mov    %rbp,%rdi
  xor    %eax,%eax
  mov    %r11,%rsi
  call   <fprintf@plt>
  lea    D534(%rip),%r9
  mov    %rbp,%rdi
  xor    %eax,%eax
  mov    %r9,%rsi
  call   <fprintf@plt>
  lea    D141(%rip),%r10
  mov    %rbp,%rdi
  xor    %eax,%eax
  mov    %r10,%rsi
  call   <fprintf@plt>
  mov    %rbp,%rdi
  lea    D358(%rip),%rsi
  xor    %eax,%eax
  call   <fprintf@plt>
  mov    %rbp,%rcx
  mov    %rbx,%rdi
  mov    $0xa,%edx
  mov    $0x1,%esi
  lea    D1022(%rip),%rbx
  call   <fwrite@plt>
  mov    %rbp,%rcx
  mov    %r14,%rdi
  mov    $0x13,%edx
  mov    $0x1,%esi
  lea    D1126(%rip),%r14
  call   <fwrite@plt>
  mov    %rbp,%rcx
  mov    %r13,%rdi
  mov    $0x13,%edx
  mov    $0x1,%esi
  lea    D1082(%rip),%r13
  call   <fwrite@plt>
  mov    %rbp,%rcx
  mov    $0x9,%edx
  mov    %r15,%rdi
  mov    $0x1,%esi
  lea    D915(%rip),%r15
  call   <fwrite@plt>
  mov    %rbp,%rdi
  lea    D29(%rip),%rsi
  xor    %eax,%eax
  call   <fprintf@plt>
  mov    %rbp,%rcx
  mov    $0xb,%edx
  mov    $0x1,%esi
  lea    D294(%rip),%rdi
  call   <fwrite@plt>
  mov    %rbp,%rdi
  lea    D905(%rip),%rsi
  xor    %eax,%eax
  call   <fprintf@plt>
  mov    %rbp,%rdi
  lea    D757(%rip),%rsi
  xor    %eax,%eax
  call   <fprintf@plt>
  mov    %rbp,%rcx
  mov    $0x14,%edx
  mov    $0x1,%esi
  lea    D186(%rip),%rdi
  call   <fwrite@plt>
  mov    %rbp,%rcx
  mov    $0x13,%edx
  mov    $0x1,%esi
  lea    D419(%rip),%rdi
  call   <fwrite@plt>
  mov    %rbp,%rcx
  mov    $0x6,%edx
  mov    $0x1,%esi
  lea    D827(%rip),%rdi
  call   <fwrite@plt>
  mov    %rbp,%rcx
  mov    $0x6,%edx
  mov    %r12,%rdi
  mov    $0x1,%esi
  call   <fwrite@plt>
  mov    %rbp,%rsi
  mov    $0xa,%edi
  call   <fputc@plt>
  mov    %rbp,%rdi
  lea    D370(%rip),%rsi
  xor    %eax,%eax
  call   <fprintf@plt>
  mov    %rbp,%rcx
  mov    %rbx,%rdi
  mov    $0x22,%edx
  mov    $0x1,%esi
  call   <fwrite@plt>
  mov    %rbp,%rcx
  mov    %r15,%rdi
  mov    $0x17,%edx
  mov    $0x1,%esi
  call   <fwrite@plt>
  mov    %rbp,%rcx
  mov    %r14,%rdi
  mov    $0x25,%edx
  mov    $0x1,%esi
  call   <fwrite@plt>
  mov    %rbp,%rcx
  mov    %r13,%rdi
  mov    $0x1f,%edx
  mov    $0x1,%esi
  call   <fwrite@plt>
  mov    %rbp,%rcx
  mov    $0x6,%edx
  mov    %r12,%rdi
  mov    $0x1,%esi
  call   <fwrite@plt>
  mov    %rbp,%rsi
  mov    $0xa,%edi
  call   <fputc@plt>
  mov    %rbp,%rdi
  lea    D77(%rip),%rsi
  xor    %eax,%eax
  call   <fprintf@plt>
  mov    %rbp,%rcx
  mov    %rbx,%rdi
  mov    $0x22,%edx
  mov    $0x1,%esi
  lea    D971(%rip),%rbx
  call   <fwrite@plt>
  mov    %rbp,%rcx
  mov    %r15,%rdi
  mov    $0x17,%edx
  mov    $0x1,%esi
  call   <fwrite@plt>
  mov    %rbp,%rcx
  mov    %r14,%rdi
  mov    $0x25,%edx
  mov    $0x1,%esi
  call   <fwrite@plt>
  mov    %rbp,%rcx
  mov    %r13,%rdi
  mov    $0x1f,%edx
  mov    $0x1,%esi
  call   <fwrite@plt>
  mov    %rbp,%rcx
  mov    $0x6,%edx
  mov    %r12,%rdi
  mov    $0x1,%esi
  call   <fwrite@plt>
  mov    %rbp,%rsi
  mov    $0xa,%edi
  call   <fputc@plt>
  mov    %rbp,%rdi
  lea    D535(%rip),%rsi
  xor    %eax,%eax
  call   <fprintf@plt>
  mov    %rbp,%rcx
  mov    $0x1c,%edx
  mov    $0x1,%esi
  lea    D943(%rip),%rdi
  call   <fwrite@plt>
  mov    %rbp,%rcx
  mov    %r15,%rdi
  mov    $0x17,%edx
  mov    $0x1,%esi
  lea    D990(%rip),%r15
  call   <fwrite@plt>
  mov    %rbp,%rcx
  mov    %r14,%rdi
  mov    $0x25,%edx
  mov    $0x1,%esi
  lea    D156(%rip),%r14
  call   <fwrite@plt>
  mov    %rbp,%rcx
  mov    %r13,%rdi
  mov    $0x1f,%edx
  mov    $0x1,%esi
  lea    D557(%rip),%r13
  call   <fwrite@plt>
  mov    %rbp,%rcx
  mov    $0x6,%edx
  mov    %r12,%rdi
  mov    $0x1,%esi
  call   <fwrite@plt>
  mov    %rbp,%rsi
  mov    $0xa,%edi
  call   <fputc@plt>
  mov    %rbp,%rdi
  lea    D8(%rip),%rsi
  xor    %eax,%eax
  call   <fprintf@plt>
  lea    D1123(%rip),%r9
  mov    %rbp,%rcx
  mov    $0x12,%edx
  mov    %r9,%rdi
  mov    $0x1,%esi
  call   <fwrite@plt>
  lea    D105(%rip),%r8
  mov    %rbp,%rcx
  mov    $0x12,%edx
  mov    %r8,%rdi
  mov    $0x1,%esi
  call   <fwrite@plt>
  mov    %rbp,%rcx
  mov    $0x29,%edx
  mov    %rbx,%rdi
  mov    $0x1,%esi
  call   <fwrite@plt>
  mov    %rbp,%rdi
  lea    D881(%rip),%rsi
  xor    %eax,%eax
  call   <fprintf@plt>
  mov    %rbp,%rcx
  mov    $0x19,%edx
  mov    %r15,%rdi
  mov    $0x1,%esi
  call   <fwrite@plt>
  mov    %r14,%rsi
  mov    %rbp,%rdi
  xor    %eax,%eax
  call   <fprintf@plt>
  mov    %rbp,%rcx
  mov    %r13,%rdi
  mov    $0x13,%edx
  mov    $0x1,%esi
  call   <fwrite@plt>
  mov    %rbp,%rcx
  mov    $0x6,%edx
  mov    %r12,%rdi
  mov    $0x1,%esi
  call   <fwrite@plt>
  mov    %rbp,%rsi
  mov    $0xa,%edi
  call   <fputc@plt>
  mov    %rbp,%rdi
  lea    D687(%rip),%rsi
  xor    %eax,%eax
  call   <fprintf@plt>
  lea    D1123(%rip),%r9
  mov    %rbp,%rcx
  mov    $0x12,%edx
  mov    %r9,%rdi
  mov    $0x1,%esi
  call   <fwrite@plt>
  lea    D105(%rip),%r8
  mov    %rbp,%rcx
  mov    $0x12,%edx
  mov    %r8,%rdi
  mov    $0x1,%esi
  call   <fwrite@plt>
  mov    %rbp,%rcx
  mov    $0x29,%edx
  mov    %rbx,%rdi
  mov    $0x1,%esi
  call   <fwrite@plt>
  mov    %rbp,%rdi
  lea    D909(%rip),%rsi
  xor    %eax,%eax
  call   <fprintf@plt>
  mov    %rbp,%rcx
  mov    $0x19,%edx
  mov    %r15,%rdi
  mov    $0x1,%esi
  call   <fwrite@plt>
  mov    %r14,%rsi
  mov    %rbp,%rdi
  xor    %eax,%eax
  call   <fprintf@plt>
  mov    %rbp,%rcx
  mov    %r13,%rdi
  mov    $0x13,%edx
  mov    $0x1,%esi
  call   <fwrite@plt>
  mov    %rbp,%rcx
  mov    $0x6,%edx
  mov    %r12,%rdi
  mov    $0x1,%esi
  call   <fwrite@plt>
  mov    %rbp,%rsi
  mov    $0xa,%edi
  call   <fputc@plt>
  mov    0xc(%rsp),%ecx
  mov    0x8(%rsp),%edx
  mov    %rbp,%rdi
  add    $0x18,%rsp
  lea    D1079(%rip),%rsi
  xor    %eax,%eax
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  jmp    1080 <fprintf@plt>
```

tool_calls: name: unpack_data
arguments: tag: D362
type: string
name: unpack_data
arguments: tag: D432
type: string
name: unpack_data
arguments: tag: D292
type: string
name: unpack_data
arguments: tag: D987
type: string
name: unpack_data
arguments: tag: D347
type: string
name: unpack_data
arguments: tag: D182
type: string
name: unpack_data
arguments: tag: D604
type: string
name: unpack_data
arguments: tag: D172
type: string
name: unpack_data
arguments: tag: D662
type: string
name: unpack_data
arguments: tag: D982
type: string
name: unpack_data
arguments: tag: D134
type: string
name: unpack_data
arguments: tag: D713
type: string
name: unpack_data
arguments: tag: D870
type: string
name: unpack_data
arguments: tag: D855
type: string
name: unpack_data
arguments: tag: D455
type: string
name: unpack_data
arguments: tag: D1008
type: string
name: unpack_data
arguments: tag: D52
type: string
name: unpack_data
arguments: tag: D608
type: string
name: unpack_data
arguments: tag: D925
type: string
name: unpack_data
arguments: tag: D467
type: string
name: unpack_data
arguments: tag: D948
type: string
name: unpack_data
arguments: tag: D647
type: string
name: unpack_data
arguments: tag: D1021
type: string
name: unpack_data
arguments: tag: D837
type: string
name: unpack_data
arguments: tag: D65
type: string
name: unpack_data
arguments: tag: D564
type: string
name: unpack_data
arguments: tag: D219
type: string
name: unpack_data
arguments: tag: D109
type: string
name: unpack_data
arguments: tag: D459
type: string
name: unpack_data
arguments: tag: D34
type: string
name: unpack_data
arguments: tag: D832
type: string
name: unpack_data
arguments: tag: D11
type: string
name: unpack_data
arguments: tag: D722
type: string
name: unpack_data
arguments: tag: D364
type: string
name: unpack_data
arguments: tag: D587
type: string
name: unpack_data
arguments: tag: D724
type: string
name: unpack_data
arguments: tag: D743
type: string
name: unpack_data
arguments: tag: D64
type: string
name: unpack_data
arguments: tag: D174
type: string
name: unpack_data
arguments: tag: D515
type: string
name: unpack_data
arguments: tag: D240
type: string
name: unpack_data
arguments: tag: D262
type: string
name: unpack_data
arguments: tag: D272
type: string
name: unpack_data
arguments: tag: D709
type: string
name: unpack_data
arguments: tag: D387
type: string
name: unpack_data
arguments: tag: D999
type: string
name: unpack_data
arguments: tag: D420
type: string
name: unpack_data
arguments: tag: D929
type: string
name: unpack_data
arguments: tag: D203
type: string
name: unpack_data
arguments: tag: D315
type: string
name: unpack_data
arguments: tag: D591
type: string
name: unpack_data
arguments: tag: D445
type: string
name: unpack_data
arguments: tag: D899
type: string
name: unpack_data
arguments: tag: D1158
type: string
name: unpack_data
arguments: tag: D393
type: string
name: unpack_data
arguments: tag: D1089
type: string
name: unpack_data
arguments: tag: D1121
type: string
name: unpack_data
arguments: tag: D835
type: string
name: unpack_data
arguments: tag: D534
type: string
name: unpack_data
arguments: tag: D1084
type: string
name: unpack_data
arguments: tag: D953
type: string
name: unpack_data
arguments: tag: D104
type: string
name: unpack_data
arguments: tag: D29
type: string
name: unpack_data
arguments: tag: D294
type: string
name: unpack_data
arguments: tag: D905
type: string
name: unpack_data
arguments: tag: D757
type: string
name: unpack_data
arguments: tag: D186
type: string
name: unpack_data
arguments: tag: D419
type: string
name: unpack_data
arguments: tag: D827
type: string
name: unpack_data
arguments: tag: D737
type: string
name: unpack_data
arguments: tag: D341
type: string
name: unpack_data
arguments: tag: D141
type: string
name: unpack_data
arguments: tag: D773
type: string
name: unpack_data
arguments: tag: D609
type: string
name: unpack_data
arguments: tag: D358
type: string
name: unpack_data
arguments: tag: D1022
type: string
name: unpack_data
arguments: tag: D1126
type: string
name: unpack_data
arguments: tag: D1082
type: string
name: unpack_data
arguments: tag: D915
type: string
name: unpack_data
arguments: tag: D370
type: string
name: unpack_data
arguments: tag: D77
type: string
name: unpack_data
arguments: tag: D971
type: string
name: unpack_data
arguments: tag: D535
type: string
name: unpack_data
arguments: tag: D943
type: string
name: unpack_data
arguments: tag: D990
type: string
name: unpack_data
arguments: tag: D156
type: string
name: unpack_data
arguments: tag: D557
type: string
name: unpack_data
arguments: tag: D8
type: string
name: unpack_data
arguments: tag: D1123
type: string
name: unpack_data
arguments: tag: D105
type: string
name: unpack_data
arguments: tag: D881
type: string
name: unpack_data
arguments: tag: D687
type: string
name: unpack_data
arguments: tag: D909
type: string
name: unpack_data
arguments: tag: D1079
type: string

tool: D362:   stroke


tool: D432:   fx fy neg moveto


tool: D292:   tx ty neg lineto


tool: D987: } def


tool: D347:   newpath


tool: D182: %%!


tool: D604: /mm {72 mul 25.4 div} def


tool: D172: /PageWidth  210 mm def %% const


tool: D662: /PageHeight 297 mm def %% const


tool: D982: /BorderWidth  7 mm def %% const


tool: D134: /FontHeight     10 def %% const


tool: D713: /setR {/R exch def} def


tool: D870: /setr {/r exch def} def


tool: D855: /setscaleX {/scaleX exch def} def


tool: D455: /setscaleY {/scaleY exch def} def


tool: D1008: /setx {/x exch def} def


tool: D52: /sety {/y exch def} def


tool: D608: /setfx {/fx exch def} def


tool: D925: /setfy {/fy exch def} def


tool: D467: /settx {/tx exch def} def


tool: D948: /setty {/ty exch def} def


tool: D647: /settmp {/tmp exch def} def


tool: D1021: /Times-Roman findfont FontHeight scalefont setfont


tool: D837: /rescale {                     %% stack: max_pos, max_level


tool: D65:   PageHeight 2 BorderWidth mul


tool: D564:   sub exch 1 add div setscaleY %% scaleY = (PH-2BW)/(max_level+1)


tool: D219:   PageWidth 2 BorderWidth mul


tool: D109:   sub exch div setscaleX       %% scaleX = (PH-2BW)/(max_pos)


tool: D459:   scaleX .33 mul dup setR


tool: D34:   0.25 scaleY mul gt {.2 scaleY mul setR} if


tool: D832:   .6 mm setr


tool: D11:   0 PageHeight translate       %% go to top of page


tool: D722:   BorderWidth scaleX 2 div add


tool: D364:   BorderWidth scaleY add


tool: D587:   neg translate                %% go to left top of drawing


tool: D724: /node {                        %% stack: (id), x, y


tool: D743:   scaleY mul sety


tool: D64:   scaleX mul setx


tool: D174:   %% draw node


tool: D515:   x y neg R 0 360 arc


tool: D240:   %% draw then edge


tool: D262:   .5 sqrt R mul settmp         %% tmp = sqrt(2) * R


tool: D272:   x tmp sub setfx              %% fx = X(x) - tmp


tool: D709:   y tmp add setfy              %% fy = Y(y) - sqrt 2 * R


tool: D387:   x R sub settx                %% tx = X(x) - R


tool: D999:   y R add setty                %% ty = Y(y) + R


tool: D420:   %% draw else edge


tool: D929:   x tmp add setfx              %% fx = X(x) + tmp


tool: D203:   x R add settx                %% tx = X(x) + R


tool: D315:   %% draw string


tool: D591:   dup stringwidth pop


tool: D445:   2 div neg x add


tool: D899:   y FontHeight 3 div add


tool: D1158:   neg moveto show


tool: D393: /edge {                        %% stack: (polarity), fx, tx, ty


tool: D1089:   %% draw initial edge


tool: D1121:   scaleY mul R sub setty       %% ty = Y(y) - R


tool: D835:   0 setfy                      %% fy = Y(0)


tool: D534:   scaleX mul settx             %% tx = X(tx)


tool: D1084:   scaleX mul setfx             %% fx = X(fx)


tool: D953:   0.5 scaleY mul setfy         %% fy = Y(0.5)


tool: D104:   fx fy neg lineto


tool: D29:   %% draw negation if necessary


tool: D294:   (n) eq {


tool: D905:     fx tx add 2 div            %% fx = (fx+tx)/2


tool: D757:     fy ty add 2 div            %% fy = (fy+ty)/2


tool: D186:     neg r 0 360 arc


tool: D419:     0 setgray fill


tool: D827:   }if


tool: D737: /then { %%stack: (polarity), fx, fy, tx, ty


tool: D341:   scaleY mul R sub setty       %% ty = Y(ty) - R


tool: D141:   scaleY mul R add setfy       %% fy = Y(fy) + R


tool: D773:   scaleX mul R sub setfx       %% fx = X(fx) - R


tool: D609: /else { %%stack: (polarity), fx, fy, tx, ty


tool: D358:   scaleX mul R add setfx       %% fx = X(fx) + R


tool: D1022:   scaleY mul FontHeight 2 div add


tool: D1126:   newpath neg moveto dup stringwidth


tool: D1082:   pop 2 div neg 0 rmoveto show


tool: D915:   exch scaleX mul exch


tool: D370: /const {                       %% stack: (const), x, y


tool: D77: /void {                       %% stack: (void), x, y


tool: D971:   newpath neg moveto dup stringwidth pop


tool: D535: /name {                       %% stack: (name), x, y


tool: D943:   scaleY mul FontHeight sub


tool: D990:   R 0.025 scaleY mul add


tool: D156:   FontHeight add               %% y = Y(y) + R + 0.025*scaleY + FH


tool: D557:   neg rmoveto show


tool: D8: /then_const {                  %% stack: (const), x, y


tool: D1123:   scaleY mul exch


tool: D105:   scaleX mul exch


tool: D881:   2 div R add neg              %% x = X(x) - R - fw/2


tool: D687: /else_const {                  %% stack: (const), x, y


tool: D909:   2 div neg R add              %% x = X(x) + R - fw/2


tool: D1079: %d %d rescale


assistant: ```c
void draw_start(FILE *fp, int max_x, int max_y) {
  fprintf(fp, "%%!\n");
  fprintf(fp, "/mm {72 mul 25.4 div} def\n");
  fprintf(fp, "/PageWidth  210 mm def %% const\n");
  fprintf(fp, "/PageHeight 297 mm def %% const\n");
  fprintf(fp, "/BorderWidth  7 mm def %% const\n");
  fprintf(fp, "/FontHeight     10 def %% const\n");
  fprintf(fp, "/setR {/R exch def} def\n");
  fprintf(fp, "/setr {/r exch def} def\n");
  fprintf(fp, "/setscaleX {/scaleX exch def} def\n");
  fprintf(fp, "/setscaleY {/scaleY exch def} def\n");
  fprintf(fp, "/setx {/x exch def} def\n");
  fprintf(fp, "/sety {/y exch def} def\n");
  fprintf(fp, "/setfx {/fx exch def} def\n");
  fprintf(fp, "/setfy {/fy exch def} def\n");
  fprintf(fp, "/settx {/tx exch def} def\n");
  fprintf(fp, "/setty {/ty exch def} def\n");
  fprintf(fp, "/settmp {/tmp exch def} def\n");
  fprintf(fp, "/Times-Roman findfont FontHeight scalefont setfont\n");
  fprintf(fp, "\n");
  fprintf(fp, "/rescale {                     %% stack: max_pos, max_level\n");
  fprintf(fp, "  PageHeight 2 BorderWidth mul\n");
  fprintf(fp, "  sub exch 1 add div setscaleY %% scaleY = (PH-2BW)/(max_level+1)\n");
  fprintf(fp, "  PageWidth 2 BorderWidth mul\n");
  fprintf(fp, "  sub exch div setscaleX       %% scaleX = (PH-2BW)/(max_pos)\n");
  fprintf(fp, "  scaleX .33 mul dup setR\n");
  fprintf(fp, "  0.25 scaleY mul gt {.2 scaleY mul setR} if\n");
  fprintf(fp, "  .6 mm setr\n");
  fprintf(fp, "  0 PageHeight translate       %% go to top of page\n");
  fprintf(fp, "  BorderWidth scaleX 2 div add\n");
  fprintf(fp, "  BorderWidth scaleY add\n");
  fprintf(fp, "  neg translate                %% go to left top of drawing\n");
  fprintf(fp, "} def\n");
  fprintf(fp, "\n");
  fprintf(fp, "/node {                        %% stack: (id), x, y\n");
  fprintf(fp, "  scaleY mul sety\n");
  fprintf(fp, "  scaleX mul setx\n");
  fprintf(fp, "  newpath\n");
  fprintf(fp, "  %% draw node\n");
  fprintf(fp, "  x y neg R 0 360 arc\n");
  fprintf(fp, "  %% draw then edge\n");
  fprintf(fp, "  .5 sqrt R mul settmp         %% tmp = sqrt(2) * R\n");
  fprintf(fp, "  x tmp sub setfx              %% fx = X(x) - tmp\n");
  fprintf(fp, "  y tmp add setfy              %% fy = Y(y) - sqrt 2 * R\n");
  fprintf(fp, "  x R sub settx                %% tx = X(x) - R\n");
  fprintf(fp, "  y R add setty                %% ty = Y(y) + R\n");
  fprintf(fp, "  fx fy neg moveto\n");
  fprintf(fp, "  tx ty neg lineto\n");
  fprintf(fp, "  %% draw else edge\n");
  fprintf(fp, "  x tmp add setfx              %% fx = X(x) + tmp\n");
  fprintf(fp, "  x R add settx                %% tx = X(x) + R\n");
  fprintf(fp, "  fx fy neg moveto\n");
  fprintf(fp, "  tx ty neg lineto\n");
  fprintf(fp, "  stroke\n");
  fprintf(fp, "  %% draw string\n");
  fprintf(fp, "  dup stringwidth pop\n");
  fprintf(fp, "  2 div neg x add\n");
  fprintf(fp, "  y FontHeight 3 div add\n");
  fprintf(fp, "  neg moveto show\n");
  fprintf(fp, "} def\n");
  fprintf(fp, "\n");
  fprintf(fp, "/edge {                        %% stack: (polarity), fx, tx, ty\n");
  fprintf(fp, "  %% draw initial edge\n");
  fprintf(fp, "  scaleY mul R sub setty       %% ty = Y(y) - R\n");
  fprintf(fp, "  0 setfy                      %% fy = Y(0)\n");
  fprintf(fp, "  scaleX mul settx             %% tx = X(tx)\n");
  fprintf(fp, "  scaleX mul setfx             %% fx = X(fx)\n");
  fprintf(fp, "  newpath\n");
  fprintf(fp, "  fx fy neg moveto\n");
  fprintf(fp, "  0.5 scaleY mul setfy         %% fy = Y(0.5)\n");
  fprintf(fp, "  fx fy neg lineto\n");
  fprintf(fp, "  tx ty neg lineto\n");
  fprintf(fp, "  stroke\n");
  fprintf(fp, "  %% draw negation if necessary\n");
  fprintf(fp, "  (n) eq {\n");
  fprintf(fp, "    fx tx add 2 div            %% fx = (fx+tx)/2\n");
  fprintf(fp, "    fy ty add 2 div            %% fy = (fy+ty)/2\n");
  fprintf(fp, "    neg r 0 360 arc\n");
  fprintf(fp, "    0 setgray fill\n");
  fprintf(fp, "  }if\n");
  fprintf(fp, "} def\n");
  fprintf(fp, "\n");
  fprintf(fp, "/then { %%stack: (polarity), fx, fy, tx, ty\n");
  fprintf(fp, "  %% draw then edge\n");
  fprintf(fp, "  scaleY mul R sub setty       %% ty = Y(ty) - R\n");
  fprintf(fp, "  scaleX mul settx             %% tx = X(tx)\n");
  fprintf(fp, "  scaleY mul R add setfy       %% fy = Y(fy) + R\n");
  fprintf(fp, "  scaleX mul R sub setfx       %% fx = X(fx) - R\n");
  fprintf(fp, "  newpath\n");
  fprintf(fp, "  fx fy neg moveto\n");
  fprintf(fp, "  tx ty neg lineto\n");
  fprintf(fp, "  stroke\n");
  fprintf(fp, "  %% draw negation if necessary\n");
  fprintf(fp, "  (n) eq {\n");
  fprintf(fp, "    fx tx add 2 div            %% fx = (fx+tx)/2\n");
  fprintf(fp, "    fy ty add 2 div            %% fy = (fy+ty)/2\n");
  fprintf(fp, "    neg r 0 360 arc\n");
  fprintf(fp, "    0 setgray fill\n");
  fprintf(fp, "  }if\n");
  fprintf(fp, "} def\n");
  fprintf(fp, "\n");
  fprintf(fp, "/else { %%stack: (polarity), fx, fy, tx, ty\n");
  fprintf(fp, "  %% draw else edge\n");
  fprintf(fp, "  scaleY mul R sub setty       %% ty = Y(ty) - R\n");
  fprintf(fp, "  scaleX mul settx             %% tx = X(tx)\n");
  fprintf(fp, "  scaleY mul R add setfy       %% fy = Y(fy) + R\n");
  fprintf(fp, "  scaleX mul R add setfx       %% fx = X(fx) + R\n");
  fprintf(fp, "  newpath\n");
  fprintf(fp, "  fx fy neg moveto\n");
  fprintf(fp, "  tx ty neg lineto\n");
  fprintf(fp, "  stroke\n");
  fprintf(fp, "  %% draw negation if necessary\n");
  fprintf(fp, "  (n) eq {\n");
  fprintf(fp, "    fx tx add 2 div            %% fx = (fx+tx)/2\n");
  fprintf(fp, "    fy ty add 2 div            %% fy = (fy+ty)/2\n");
  fprintf(fp, "    neg r 0 360 arc\n");
  fprintf(fp, "    0 setgray fill\n");
  fprintf(fp, "  }if\n");
  fprintf(fp, "} def\n");
  fprintf(fp, "\n");
  fprintf(fp, "/const {                       %% stack: (const), x, y\n");
  fprintf(fp, "  scaleY mul FontHeight 2 div add\n");
  fprintf(fp, "  exch scaleX mul exch\n");
  fprintf(fp, "  newpath neg moveto dup stringwidth\n");
  fprintf(fp, "  pop 2 div neg 0 rmoveto show\n");
  fprintf(fp, "} def\n");
  fprintf(fp, "\n");
  fprintf(fp, "/void {                       %% stack: (void), x, y\n");
  fprintf(fp, "  scaleY mul FontHeight 2 div add\n");
  fprintf(fp, "  exch scaleX mul exch\n");
  fprintf(fp, "  newpath neg moveto dup stringwidth\n");
  fprintf(fp, "  pop 2 div neg 0 rmoveto show\n");
  fprintf(fp, "} def\n");
  fprintf(fp, "\n");
  fprintf(fp, "/name {                       %% stack: (name), x, y\n");
  fprintf(fp, "  scaleY mul FontHeight sub\n");
  fprintf(fp, "  exch scaleX mul exch\n");
  fprintf(fp, "  newpath neg moveto dup stringwidth\n");
  fprintf(fp, "  pop 2 div neg 0 rmoveto show\n");
  fprintf(fp, "} def\n");
  fprintf(fp, "\n");
  fprintf(fp, "/then_const {                  %% stack: (const), x, y\n");
  fprintf(fp, "  scaleY mul exch\n");
  fprintf(fp, "  scaleX mul exch\n");
  fprintf(fp, "  newpath neg moveto dup stringwidth pop\n");
  fprintf(fp, "  2 div R add neg              %% x = X(x) - R - fw/2\n");
  fprintf(fp, "  R 0.025 scaleY mul add\n");
  fprintf(fp, "  FontHeight add               %% y = Y(y) + R + 0.025*scaleY + FH\n");
  fprintf(fp, "  neg rmoveto show\n");
  fprintf(fp, "} def\n");
  fprintf(fp, "\n");
  fprintf(fp, "/else_const {                  %% stack: (const), x, y\n");
  fprintf(fp, "  scaleY mul exch\n");
  fprintf(fp, "  scaleX mul exch\n");
  fprintf(fp, "  newpath neg moveto dup stringwidth pop\n");
  fprintf(fp, "  2 div neg R add              %% x = X(x) + R - fw/2\n");
  fprintf(fp, "  R 0.025 scaleY mul add\n");
  fprintf(fp, "  FontHeight add               %% y = Y(y) + R + 0.025*scaleY + FH\n");
  fprintf(fp, "  neg rmoveto show\n");
  fprintf(fp, "} def\n");
  fprintf(fp, "\n");
  fprintf(fp, "%d %d rescale\n", max_x, max_y);
}
```