user: 请显示与下面列出的汇编代码相匹配的C语言实现:

```asm
<main>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x290,%rsp
  mov    %rdi,-0x1f8(%rbp)
  mov    %rsi,-0x200(%rbp)
  mov    %rdx,-0x208(%rbp)
  mov    %rcx,-0x210(%rbp)
  mov    %r8d,-0x214(%rbp)
  mov    %r9d,-0x218(%rbp)
  mov    0x10(%rbp),%rax
  mov    %rax,-0x220(%rbp)
  mov    0x18(%rbp),%rax
  mov    %rax,-0x228(%rbp)
  mov    0x20(%rbp),%rax
  mov    %rax,-0x230(%rbp)
  mov    0x28(%rbp),%rax
  mov    %rax,-0x238(%rbp)
  mov    0x30(%rbp),%rax
  mov    %rax,-0x240(%rbp)
  mov    0x38(%rbp),%rax
  mov    %rax,-0x248(%rbp)
  mov    0x40(%rbp),%rax
  mov    %rax,-0x250(%rbp)
  mov    0x48(%rbp),%rax
  mov    %rax,-0x258(%rbp)
  mov    0x50(%rbp),%rax
  mov    %rax,-0x260(%rbp)
  mov    0x58(%rbp),%rax
  mov    %rax,-0x268(%rbp)
  mov    0x60(%rbp),%rax
  mov    %rax,-0x270(%rbp)
  mov    0x68(%rbp),%rax
  mov    %rax,-0x278(%rbp)
  mov    0x70(%rbp),%rax
  mov    %rax,-0x280(%rbp)
  mov    0x78(%rbp),%rax
  mov    %rax,-0x288(%rbp)
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  movl   $0x0,-0x30(%rbp)
  movl   $0x0,-0x2c(%rbp)
  movl   $0x0,-0x28(%rbp)
  movl   $0x0,-0x24(%rbp)
  movl   $0x0,-0x20(%rbp)
  movl   $0x0,-0x1c(%rbp)
  movl   $0x0,-0x18(%rbp)
  movl   $0x0,-0x14(%rbp)
  mov    -0x208(%rbp),%rax
  add    $0x4b0,%rax
  mov    %rax,-0x1d8(%rbp)
  mov    -0x208(%rbp),%rax
  add    $0x184,%rax
  mov    %rax,-0x1d0(%rbp)
  mov    -0x208(%rbp),%rax
  add    $0x28,%rax
  mov    %rax,-0x1c8(%rbp)
  mov    -0x208(%rbp),%rax
  add    $0x2c,%rax
  mov    %rax,-0x1c0(%rbp)
  mov    -0x208(%rbp),%rax
  add    $0x30,%rax
  mov    %rax,-0x1b8(%rbp)
  mov    -0x208(%rbp),%rax
  add    $0x34,%rax
  mov    %rax,-0x1b0(%rbp)
  mov    -0x208(%rbp),%rax
  add    $0x38,%rax
  mov    %rax,-0x1a8(%rbp)
  mov    -0x208(%rbp),%rax
  add    $0x3c,%rax
  mov    %rax,-0x1a0(%rbp)
  mov    -0x208(%rbp),%rax
  add    $0x40,%rax
  mov    %rax,-0x198(%rbp)
  mov    -0x208(%rbp),%rax
  add    $0x44,%rax
  mov    %rax,-0x190(%rbp)
  mov    -0x208(%rbp),%rax
  add    $0x48,%rax
  mov    %rax,-0x188(%rbp)
  mov    -0x208(%rbp),%rax
  add    $0x4c,%rax
  mov    %rax,-0x180(%rbp)
  mov    -0x208(%rbp),%rax
  add    $0x50,%rax
  mov    %rax,-0x178(%rbp)
  mov    -0x208(%rbp),%rax
  add    $0x140,%rax
  mov    %rax,-0x170(%rbp)
  mov    -0x208(%rbp),%rax
  add    $0x144,%rax
  mov    %rax,-0x168(%rbp)
  mov    -0x208(%rbp),%rax
  add    $0x188,%rax
  mov    %rax,-0x160(%rbp)
  mov    -0x208(%rbp),%rax
  add    $0x18c,%rax
  mov    %rax,-0x158(%rbp)
  mov    -0x208(%rbp),%rax
  add    $0x190,%rax
  mov    %rax,-0x150(%rbp)
  mov    -0x208(%rbp),%rax
  add    $0x194,%rax
  mov    %rax,-0x148(%rbp)
  mov    -0x208(%rbp),%rax
  add    $0x198,%rax
  mov    %rax,-0x140(%rbp)
  mov    -0x208(%rbp),%rax
  add    $0x19c,%rax
  mov    %rax,-0x138(%rbp)
  mov    -0x208(%rbp),%rax
  add    $0x1a4,%rax
  mov    %rax,-0x130(%rbp)
  mov    -0x208(%rbp),%rax
  add    $0x1a8,%rax
  mov    %rax,-0x128(%rbp)
  mov    -0x208(%rbp),%rax
  add    $0x1ac,%rax
  mov    %rax,-0x120(%rbp)
  mov    -0x208(%rbp),%rax
  add    $0x1b0,%rax
  mov    %rax,-0x118(%rbp)
  mov    -0x208(%rbp),%rax
  add    $0x1b4,%rax
  mov    %rax,-0x110(%rbp)
  mov    -0x208(%rbp),%rax
  add    $0x1b8,%rax
  mov    %rax,-0x108(%rbp)
  mov    -0x208(%rbp),%rax
  add    $0x1bc,%rax
  mov    %rax,-0x100(%rbp)
  mov    -0x208(%rbp),%rax
  add    $0x1dc,%rax
  mov    %rax,-0xf8(%rbp)
  mov    -0x208(%rbp),%rax
  add    $0x1c0,%rax
  mov    %rax,-0xf0(%rbp)
  mov    -0x208(%rbp),%rax
  add    $0x1c4,%rax
  mov    %rax,-0xe8(%rbp)
  mov    -0x208(%rbp),%rax
  add    $0x1e0,%rax
  mov    %rax,-0xe0(%rbp)
  mov    -0x208(%rbp),%rax
  add    $0x1c8,%rax
  mov    %rax,-0xd8(%rbp)
  mov    -0x208(%rbp),%rax
  add    $0x1cc,%rax
  mov    %rax,-0xd0(%rbp)
  mov    -0x208(%rbp),%rax
  add    $0x1d0,%rax
  mov    %rax,-0xc8(%rbp)
  mov    -0x208(%rbp),%rax
  add    $0x1d4,%rax
  mov    %rax,-0xc0(%rbp)
  mov    -0x208(%rbp),%rax
  add    $0x1d8,%rax
  mov    %rax,-0xb8(%rbp)
  mov    -0x210(%rbp),%rax
  mov    %rax,-0xb0(%rbp)
  mov    -0x210(%rbp),%rax
  add    $0x4,%rax
  mov    %rax,-0xa8(%rbp)
  mov    -0x210(%rbp),%rax
  add    $0x8,%rax
  mov    %rax,-0xa0(%rbp)
  mov    -0x210(%rbp),%rax
  add    $0xc,%rax
  mov    %rax,-0x98(%rbp)
  mov    -0x210(%rbp),%rax
  add    $0x10,%rax
  mov    %rax,-0x90(%rbp)
  mov    -0x210(%rbp),%rax
  add    $0x14,%rax
  mov    %rax,-0x88(%rbp)
  mov    -0x210(%rbp),%rax
  add    $0x18,%rax
  mov    %rax,-0x80(%rbp)
  mov    -0x210(%rbp),%rax
  add    $0x1c,%rax
  mov    %rax,-0x78(%rbp)
  mov    -0x210(%rbp),%rax
  add    $0x20,%rax
  mov    %rax,-0x70(%rbp)
  mov    -0x210(%rbp),%rax
  add    $0x24,%rax
  mov    %rax,-0x68(%rbp)
  mov    -0x210(%rbp),%rax
  add    $0x28,%rax
  mov    %rax,-0x60(%rbp)
  mov    -0x210(%rbp),%rax
  add    $0x2c,%rax
  mov    %rax,-0x58(%rbp)
  mov    -0x210(%rbp),%rax
  add    $0x30,%rax
  mov    %rax,-0x50(%rbp)
  mov    -0x210(%rbp),%rax
  add    $0x34,%rax
  mov    %rax,-0x48(%rbp)
  mov    -0x210(%rbp),%rax
  add    $0x38,%rax
  mov    %rax,-0x40(%rbp)
  mov    -0x210(%rbp),%rax
  add    $0x3c,%rax
  mov    %rax,-0x38(%rbp)
  cmpl   $0x0,-0x214(%rbp)
  jne    L3498
  cmpl   $0x0,-0x218(%rbp)
  jne    L3498
  mov    $0x1,%eax
  jmp    L354
L3498:
  mov    $0x0,%eax
L354:
  mov    %eax,-0x1e4(%rbp)
  cmpl   $0x0,-0x214(%rbp)
  jne    L3516
  cmpl   $0x0,-0x218(%rbp)
  jne    L3516
  mov    $0x1,%eax
  jmp    L2783
L3516:
  mov    $0x0,%eax
L2783:
  mov    %eax,-0x1e0(%rbp)
  cmpl   $0x0,-0x214(%rbp)
  jne    L3724
  cmpl   $0x0,-0x218(%rbp)
  jne    L3724
  mov    $0x1,%eax
  jmp    L719
L3724:
  mov    $0x0,%eax
L719:
  mov    %eax,-0x1dc(%rbp)
  mov    -0x1d8(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jle    L3637
  mov    -0x208(%rbp),%rax
  add    $0x4b0,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jle    L3637
  mov    -0x1d8(%rbp),%rax
  mov    (%rax),%eax
  sub    $0x1,%eax
  shl    $0x2,%eax
  add    $0x12d,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x208(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  mov    %eax,-0x20(%rbp)
  mov    -0x1d8(%rbp),%rax
  mov    (%rax),%eax
  sub    $0x1,%eax
  shl    $0x2,%eax
  add    $0x12d,%eax
  cltq
  add    $0x1,%rax
  lea    0x0(,%rax,4),%rdx
  mov    -0x208(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  mov    %eax,-0x1c(%rbp)
  mov    -0x1d8(%rbp),%rax
  mov    (%rax),%eax
  sub    $0x1,%eax
  shl    $0x2,%eax
  add    $0x12d,%eax
  cltq
  add    $0x2,%rax
  lea    0x0(,%rax,4),%rdx
  mov    -0x208(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  mov    %eax,-0x18(%rbp)
  mov    -0x1d8(%rbp),%rax
  mov    (%rax),%eax
  sub    $0x1,%eax
  shl    $0x2,%eax
  add    $0x12d,%eax
  cltq
  add    $0x3,%rax
  lea    0x0(,%rax,4),%rdx
  mov    -0x208(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  mov    %eax,-0x14(%rbp)
L3637:
  mov    -0x1d0(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jne    L1331
  mov    -0xf8(%rbp),%rax
  movl   $0x1,(%rax)
  mov    -0xe0(%rbp),%rax
  movl   $0x1,(%rax)
  mov    -0x140(%rbp),%rax
  movl   $0x1,(%rax)
  mov    -0x138(%rbp),%rax
  movl   $0x1,(%rax)
  mov    -0x238(%rbp),%rax
  mov    $0x1388,%esi
  mov    $0x7,%edi
  call   *%rax
L1331:
  mov    -0x220(%rbp),%rax
  mov    $0x2711,%esi
  mov    $0x1,%edi
  call   *%rax
  cmp    $0x1,%eax
  jne    L950
  mov    -0x130(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jne    L950
  mov    -0x1c8(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jne    L950
  mov    -0x130(%rbp),%rax
  movl   $0x1,(%rax)
  mov    -0x1c8(%rbp),%rax
  movl   $0x1,(%rax)
L950:
  mov    -0x220(%rbp),%rax
  mov    $0x2711,%esi
  mov    $0x1,%edi
  call   *%rax
  cmp    $0x1,%eax
  jne    L3700
  mov    -0x130(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  jne    L3700
  mov    -0x1c8(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jne    L3700
  mov    -0x130(%rbp),%rax
  movl   $0x0,(%rax)
  mov    -0x1c8(%rbp),%rax
  movl   $0x1,(%rax)
L3700:
  mov    -0x220(%rbp),%rax
  mov    $0x2711,%esi
  mov    $0x1,%edi
  call   *%rax
  cmp    $0x1,%eax
  jne    L2176
  mov    -0x128(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jne    L2176
  mov    -0x1c0(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jne    L2176
  mov    -0x128(%rbp),%rax
  movl   $0x1,(%rax)
  mov    -0x1c0(%rbp),%rax
  movl   $0x1,(%rax)
L2176:
  mov    -0x220(%rbp),%rax
  mov    $0x2711,%esi
  mov    $0x1,%edi
  call   *%rax
  cmp    $0x1,%eax
  jne    L1700
  mov    -0x128(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  jne    L1700
  mov    -0x1c0(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jne    L1700
  mov    -0x128(%rbp),%rax
  movl   $0x0,(%rax)
  mov    -0x1c0(%rbp),%rax
  movl   $0x1,(%rax)
L1700:
  mov    -0x220(%rbp),%rax
  mov    $0x2712,%esi
  mov    $0x1,%edi
  call   *%rax
  cmp    $0x1,%eax
  jne    L3889
  mov    -0x120(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jne    L3889
  mov    -0x1b8(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jne    L3889
  mov    -0x120(%rbp),%rax
  movl   $0x1,(%rax)
  mov    -0x1b8(%rbp),%rax
  movl   $0x1,(%rax)
L3889:
  mov    -0x220(%rbp),%rax
  mov    $0x2712,%esi
  mov    $0x1,%edi
  call   *%rax
  cmp    $0x1,%eax
  jne    L1791
  mov    -0x120(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  jne    L1791
  mov    -0x1b8(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jne    L1791
  mov    -0x120(%rbp),%rax
  movl   $0x0,(%rax)
  mov    -0x1b8(%rbp),%rax
  movl   $0x1,(%rax)
L1791:
  mov    -0x220(%rbp),%rax
  mov    $0x2712,%esi
  mov    $0x1,%edi
  call   *%rax
  cmp    $0x1,%eax
  jne    L367
  mov    -0x118(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jne    L367
  mov    -0x1b0(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jne    L367
  mov    -0x118(%rbp),%rax
  movl   $0x1,(%rax)
  mov    -0x1b0(%rbp),%rax
  movl   $0x1,(%rax)
L367:
  mov    -0x220(%rbp),%rax
  mov    $0x2712,%esi
  mov    $0x1,%edi
  call   *%rax
  cmp    $0x1,%eax
  jne    L3776
  mov    -0x118(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  jne    L3776
  mov    -0x1b0(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jne    L3776
  mov    -0x118(%rbp),%rax
  movl   $0x0,(%rax)
  mov    -0x1b0(%rbp),%rax
  movl   $0x1,(%rax)
L3776:
  mov    -0x220(%rbp),%rax
  mov    $0x2714,%esi
  mov    $0x4,%edi
  call   *%rax
  cmp    $0x1,%eax
  jne    L2567
  mov    -0x110(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jne    L2567
  mov    -0x1a8(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jne    L2567
  mov    -0x110(%rbp),%rax
  movl   $0x1,(%rax)
  mov    -0x1a8(%rbp),%rax
  movl   $0x1,(%rax)
L2567:
  mov    -0x220(%rbp),%rax
  mov    $0x2714,%esi
  mov    $0x4,%edi
  call   *%rax
  cmp    $0x1,%eax
  jne    L933
  mov    -0x110(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  jne    L933
  mov    -0x1a8(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jne    L933
  mov    -0x110(%rbp),%rax
  movl   $0x0,(%rax)
  mov    -0x1a8(%rbp),%rax
  movl   $0x1,(%rax)
L933:
  mov    -0x220(%rbp),%rax
  mov    $0x2713,%esi
  mov    $0x1,%edi
  call   *%rax
  cmp    $0x1,%eax
  jne    L1328
  mov    -0x108(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jne    L1328
  mov    -0x1a0(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jne    L1328
  mov    -0x108(%rbp),%rax
  movl   $0x1,(%rax)
  mov    -0x1a0(%rbp),%rax
  movl   $0x1,(%rax)
L1328:
  mov    -0x220(%rbp),%rax
  mov    $0x2713,%esi
  mov    $0x1,%edi
  call   *%rax
  cmp    $0x1,%eax
  jne    L526
  mov    -0x108(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  jne    L526
  mov    -0x1a0(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jne    L526
  mov    -0x108(%rbp),%rax
  movl   $0x0,(%rax)
  mov    -0x1a0(%rbp),%rax
  movl   $0x1,(%rax)
L526:
  mov    -0x220(%rbp),%rax
  mov    $0x2711,%esi
  mov    $0x2,%edi
  call   *%rax
  cmp    $0x1,%eax
  jne    L688
  mov    -0xf0(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jne    L688
  mov    -0x198(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jne    L688
  mov    -0xf0(%rbp),%rax
  movl   $0x1,(%rax)
  mov    -0x198(%rbp),%rax
  movl   $0x1,(%rax)
L688:
  mov    -0x220(%rbp),%rax
  mov    $0x2711,%esi
  mov    $0x2,%edi
  call   *%rax
  cmp    $0x1,%eax
  jne    L95
  mov    -0xf0(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  jne    L95
  mov    -0x198(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jne    L95
  mov    -0xf0(%rbp),%rax
  movl   $0x0,(%rax)
  mov    -0x198(%rbp),%rax
  movl   $0x1,(%rax)
L95:
  mov    -0x220(%rbp),%rax
  mov    $0x2712,%esi
  mov    $0x2,%edi
  call   *%rax
  cmp    $0x1,%eax
  jne    L2299
  mov    -0xd0(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jne    L2299
  mov    -0x190(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jne    L2299
  mov    -0xd0(%rbp),%rax
  movl   $0x1,(%rax)
  mov    -0x190(%rbp),%rax
  movl   $0x1,(%rax)
L2299:
  mov    -0x220(%rbp),%rax
  mov    $0x2712,%esi
  mov    $0x2,%edi
  call   *%rax
  cmp    $0x1,%eax
  jne    L3656
  mov    -0xd0(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  jne    L3656
  mov    -0x190(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jne    L3656
  mov    -0xd0(%rbp),%rax
  movl   $0x0,(%rax)
  mov    -0x190(%rbp),%rax
  movl   $0x1,(%rax)
L3656:
  mov    -0x220(%rbp),%rax
  mov    $0x2713,%esi
  mov    $0x2,%edi
  call   *%rax
  cmp    $0x1,%eax
  jne    L3247
  mov    -0xc8(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jne    L3247
  mov    -0x188(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jne    L3247
  mov    -0xc8(%rbp),%rax
  movl   $0x1,(%rax)
  mov    -0x188(%rbp),%rax
  movl   $0x1,(%rax)
  mov    -0x238(%rbp),%rax
  mov    $0x46,%esi
  mov    $0x6,%edi
  call   *%rax
L3247:
  mov    -0x220(%rbp),%rax
  mov    $0x2713,%esi
  mov    $0x2,%edi
  call   *%rax
  cmp    $0x1,%eax
  jne    L1616
  mov    -0xc8(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  jne    L1616
  mov    -0x188(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jne    L1616
  mov    -0xc8(%rbp),%rax
  movl   $0x0,(%rax)
  mov    -0x188(%rbp),%rax
  movl   $0x1,(%rax)
  mov    -0x238(%rbp),%rax
  mov    $0x46,%esi
  mov    $0x6,%edi
  call   *%rax
L1616:
  mov    -0x230(%rbp),%rax
  mov    $0x6,%edi
  call   *%rax
  test   %eax,%eax
  jne    L1439
  mov    -0xc0(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  jne    L1439
  mov    -0x180(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  je     L3840
  mov    -0x178(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  jne    L1439
L3840:
  mov    -0xc8(%rbp),%rax
  movl   $0x1,(%rax)
  mov    -0x238(%rbp),%rax
  mov    $0xffffffff,%esi
  mov    $0x6,%edi
  call   *%rax
L1439:
  mov    -0x230(%rbp),%rax
  mov    $0x6,%edi
  call   *%rax
  test   %eax,%eax
  jne    L967
  mov    -0xc0(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jne    L967
  mov    -0x180(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  je     L500
  mov    -0x178(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  jne    L967
L500:
  mov    -0xc8(%rbp),%rax
  movl   $0x0,(%rax)
  mov    -0x238(%rbp),%rax
  mov    $0xffffffff,%esi
  mov    $0x6,%edi
  call   *%rax
L967:
  mov    -0x220(%rbp),%rax
  mov    $0x2714,%esi
  mov    $0x1,%edi
  call   *%rax
  cmp    $0x1,%eax
  jne    L529
  mov    -0xc0(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jne    L529
  mov    -0x180(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jne    L529
  mov    -0xc0(%rbp),%rax
  movl   $0x1,(%rax)
  mov    -0x180(%rbp),%rax
  movl   $0x1,(%rax)
  mov    -0x238(%rbp),%rax
  mov    $0x46,%esi
  mov    $0x6,%edi
  call   *%rax
L529:
  mov    -0x220(%rbp),%rax
  mov    $0x2714,%esi
  mov    $0x1,%edi
  call   *%rax
  cmp    $0x1,%eax
  jne    L1409
  mov    -0xc0(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  jne    L1409
  mov    -0x180(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jne    L1409
  mov    -0xc0(%rbp),%rax
  movl   $0x0,(%rax)
  mov    -0x180(%rbp),%rax
  movl   $0x1,(%rax)
  mov    -0x238(%rbp),%rax
  mov    $0x46,%esi
  mov    $0x6,%edi
  call   *%rax
L1409:
  mov    -0x230(%rbp),%rax
  mov    $0x6,%edi
  call   *%rax
  test   %eax,%eax
  jne    L2096
  mov    -0xc8(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  jne    L2096
  mov    -0xc0(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jne    L2096
  mov    -0x188(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  jne    L2096
  mov    -0xc0(%rbp),%rax
  movl   $0x1,(%rax)
  mov    -0x238(%rbp),%rax
  mov    $0xffffffff,%esi
  mov    $0x6,%edi
  call   *%rax
L2096:
  mov    -0x230(%rbp),%rax
  mov    $0x6,%edi
  call   *%rax
  test   %eax,%eax
  jne    L1073
  mov    -0xc8(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jne    L1073
  mov    -0xc0(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  jne    L1073
  mov    -0x188(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  jne    L1073
  mov    -0xc0(%rbp),%rax
  movl   $0x0,(%rax)
  mov    -0x238(%rbp),%rax
  mov    $0xffffffff,%esi
  mov    $0x6,%edi
  call   *%rax
L1073:
  mov    -0x220(%rbp),%rax
  mov    $0x2714,%esi
  mov    $0x1,%edi
  call   *%rax
  cmp    $0x1,%eax
  jne    L308
  mov    -0xb8(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jne    L308
  mov    -0x178(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jne    L308
  mov    -0xb8(%rbp),%rax
  movl   $0x1,(%rax)
  mov    -0x178(%rbp),%rax
  movl   $0x1,(%rax)
  mov    -0x238(%rbp),%rax
  mov    $0x46,%esi
  mov    $0x6,%edi
  call   *%rax
L308:
  mov    -0x220(%rbp),%rax
  mov    $0x2714,%esi
  mov    $0x1,%edi
  call   *%rax
  cmp    $0x1,%eax
  jne    L2447
  mov    -0xb8(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  jne    L2447
  mov    -0x178(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jne    L2447
  mov    -0xb8(%rbp),%rax
  movl   $0x0,(%rax)
  mov    -0x178(%rbp),%rax
  movl   $0x1,(%rax)
  mov    -0x238(%rbp),%rax
  mov    $0x46,%esi
  mov    $0x6,%edi
  call   *%rax
L2447:
  mov    -0x230(%rbp),%rax
  mov    $0x6,%edi
  call   *%rax
  test   %eax,%eax
  jne    L2644
  mov    -0xc8(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  jne    L2644
  mov    -0xb8(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jne    L2644
  mov    -0x188(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  jne    L2644
  mov    -0xb8(%rbp),%rax
  movl   $0x1,(%rax)
  mov    -0x238(%rbp),%rax
  mov    $0xffffffff,%esi
  mov    $0x6,%edi
  call   *%rax
L2644:
  mov    -0x230(%rbp),%rax
  mov    $0x6,%edi
  call   *%rax
  test   %eax,%eax
  jne    L2505
  mov    -0xc8(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jne    L2505
  mov    -0xb8(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  jne    L2505
  mov    -0x188(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  jne    L2505
  mov    -0xb8(%rbp),%rax
  movl   $0x0,(%rax)
  mov    -0x238(%rbp),%rax
  mov    $0xffffffff,%esi
  mov    $0x6,%edi
  call   *%rax
L2505:
  mov    -0x220(%rbp),%rax
  mov    $0x2711,%esi
  mov    $0x1,%edi
  call   *%rax
  test   %eax,%eax
  jne    L2264
  mov    -0x1c8(%rbp),%rax
  movl   $0x0,(%rax)
L2264:
  mov    -0x220(%rbp),%rax
  mov    $0x2711,%esi
  mov    $0x1,%edi
  call   *%rax
  test   %eax,%eax
  jne    L1377
  mov    -0x1c0(%rbp),%rax
  movl   $0x0,(%rax)
L1377:
  mov    -0x220(%rbp),%rax
  mov    $0x2712,%esi
  mov    $0x1,%edi
  call   *%rax
  test   %eax,%eax
  jne    L3293
  mov    -0x1b8(%rbp),%rax
  movl   $0x0,(%rax)
L3293:
  mov    -0x220(%rbp),%rax
  mov    $0x2712,%esi
  mov    $0x1,%edi
  call   *%rax
  test   %eax,%eax
  jne    L3116
  mov    -0x1b0(%rbp),%rax
  movl   $0x0,(%rax)
L3116:
  mov    -0x220(%rbp),%rax
  mov    $0x2714,%esi
  mov    $0x4,%edi
  call   *%rax
  test   %eax,%eax
  jne    L447
  mov    -0x1a8(%rbp),%rax
  movl   $0x0,(%rax)
L447:
  mov    -0x220(%rbp),%rax
  mov    $0x2713,%esi
  mov    $0x1,%edi
  call   *%rax
  test   %eax,%eax
  jne    L841
  mov    -0x1a0(%rbp),%rax
  movl   $0x0,(%rax)
L841:
  mov    -0x220(%rbp),%rax
  mov    $0x2711,%esi
  mov    $0x2,%edi
  call   *%rax
  test   %eax,%eax
  jne    L1545
  mov    -0x198(%rbp),%rax
  movl   $0x0,(%rax)
L1545:
  mov    -0x220(%rbp),%rax
  mov    $0x2712,%esi
  mov    $0x2,%edi
  call   *%rax
  test   %eax,%eax
  jne    L121
  mov    -0x190(%rbp),%rax
  movl   $0x0,(%rax)
L121:
  mov    -0x220(%rbp),%rax
  mov    $0x2713,%esi
  mov    $0x2,%edi
  call   *%rax
  test   %eax,%eax
  jne    L2136
  mov    -0x188(%rbp),%rax
  movl   $0x0,(%rax)
L2136:
  mov    -0x220(%rbp),%rax
  mov    $0x2714,%esi
  mov    $0x1,%edi
  call   *%rax
  test   %eax,%eax
  jne    L1042
  mov    -0x180(%rbp),%rax
  movl   $0x0,(%rax)
L1042:
  mov    -0x220(%rbp),%rax
  mov    $0x2714,%esi
  mov    $0x1,%edi
  call   *%rax
  test   %eax,%eax
  jne    L3302
  mov    -0x178(%rbp),%rax
  movl   $0x0,(%rax)
L3302:
  mov    -0x230(%rbp),%rax
  mov    $0x17,%edi
  call   *%rax
  cmp    $0xffffffff,%eax
  jne    L3815
  mov    -0x38(%rbp),%rax
  movss  (%rax),%xmm0
  pxor   %xmm1,%xmm1
  comiss %xmm1,%xmm0
  jbe    L1989
  mov    -0x48(%rbp),%rax
  movss  (%rax),%xmm0
  mov    -0x38(%rbp),%rax
  movss  (%rax),%xmm2
  movaps %xmm0,%xmm1
  divss  %xmm2,%xmm1
  movss  D96(%rip),%xmm0
  mulss  %xmm1,%xmm0
  jmp    L3743
L1989:
  pxor   %xmm0,%xmm0
L3743:
  mov    -0x40(%rbp),%rax
  movss  %xmm0,(%rax)
  mov    -0x48(%rbp),%rax
  pxor   %xmm0,%xmm0
  movss  %xmm0,(%rax)
  mov    -0x38(%rbp),%rax
  pxor   %xmm0,%xmm0
  movss  %xmm0,(%rax)
  mov    -0x238(%rbp),%rax
  mov    $0x1770,%esi
  mov    $0x17,%edi
  call   *%rax
  jmp    L2846
L3815:
  mov    -0x220(%rbp),%rax
  mov    $0x9c41,%esi
  mov    $0x1,%edi
  call   *%rax
  mov    %eax,%edx
  mov    -0x48(%rbp),%rax
  movss  (%rax),%xmm1
  pxor   %xmm0,%xmm0
  cvtsi2ss %edx,%xmm0
  addss  %xmm1,%xmm0
  mov    -0x48(%rbp),%rax
  movss  %xmm0,(%rax)
  mov    -0x38(%rbp),%rax
  movss  (%rax),%xmm1
  movss  D20(%rip),%xmm0
  addss  %xmm1,%xmm0
  mov    -0x38(%rbp),%rax
  movss  %xmm0,(%rax)
L2846:
  push   $0x1
  push   $0xff
  mov    -0x258(%rbp),%rax
  mov    $0x0,%r9d
  mov    $0x0,%r8d
  mov    $0x0,%ecx
  mov    $0xff,%edx
  mov    $0xff,%esi
  mov    $0xff,%edi
  call   *%rax
  add    $0x10,%rsp
  test   %eax,%eax
  jne    L1829
  mov    -0x170(%rbp),%rax
  movl   $0x0,(%rax)
L1829:
  push   $0x3
  push   $0xff
  mov    -0x258(%rbp),%rax
  mov    $0x0,%r9d
  mov    $0x0,%r8d
  mov    $0x10,%ecx
  mov    $0xff,%edx
  mov    $0xff,%esi
  mov    $0xff,%edi
  call   *%rax
  add    $0x10,%rsp
  test   %eax,%eax
  jne    L2402
  mov    -0x150(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jne    L2402
  mov    -0x170(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jne    L2402
  mov    -0x40(%rbp),%rax
  movss  (%rax),%xmm0
  pxor   %xmm1,%xmm1
  cvtss2sd %xmm0,%xmm1
  movsd  D659(%rip),%xmm0
  comisd %xmm1,%xmm0
  jbe    L2402
  mov    -0x170(%rbp),%rax
  movl   $0x1,(%rax)
  mov    -0x130(%rbp),%rax
  movl   $0x1,(%rax)
L2402:
  mov    -0x220(%rbp),%rax
  mov    $0x2712,%esi
  mov    $0x7,%edi
  call   *%rax
  test   %eax,%eax
  jne    L2568
  mov    -0x238(%rbp),%rax
  mov    $0xfa0,%esi
  mov    $0xa,%edi
  call   *%rax
L2568:
  mov    -0x220(%rbp),%rax
  mov    $0x2712,%esi
  mov    $0x7,%edi
  call   *%rax
  test   %eax,%eax
  jne    L1518
  mov    -0xe8(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jne    L1518
  mov    -0xe0(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  jne    L1518
  mov    -0xe8(%rbp),%rax
  movl   $0x1,(%rax)
L1518:
  mov    -0xe8(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  jne    L1676
  mov    -0x230(%rbp),%rax
  mov    $0xa,%edi
  call   *%rax
  test   %eax,%eax
  je     L1929
  mov    -0xe0(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jne    L1676
L1929:
  mov    -0xe8(%rbp),%rax
  movl   $0x0,(%rax)
L1676:
  mov    -0x220(%rbp),%rax
  mov    $0x2713,%esi
  mov    $0x7,%edi
  call   *%rax
  test   %eax,%eax
  jne    L1548
  mov    -0x238(%rbp),%rax
  mov    $0xbb8,%esi
  mov    $0xb,%edi
  call   *%rax
  mov    -0x168(%rbp),%rax
  movl   $0x1,(%rax)
L1548:
  mov    -0x220(%rbp),%rax
  mov    $0x2713,%esi
  mov    $0x7,%edi
  call   *%rax
  test   %eax,%eax
  jne    L2549
  mov    -0x100(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jne    L2549
  mov    -0xf8(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  jne    L2549
  mov    -0x100(%rbp),%rax
  movl   $0x1,(%rax)
L2549:
  mov    -0x100(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  jne    L1546
  mov    -0x230(%rbp),%rax
  mov    $0xb,%edi
  call   *%rax
  test   %eax,%eax
  je     L1783
  mov    -0xf8(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jne    L1546
L1783:
  mov    -0x100(%rbp),%rax
  movl   $0x0,(%rax)
L1546:
  cmpl   $0x1,-0x1e4(%rbp)
  je     L2733
  cmpl   $0x1,-0x1e0(%rbp)
  je     L2733
  cmpl   $0x1,-0x1dc(%rbp)
  jne    L4137
L2733:
  mov    -0x150(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jne    L4137
  mov    -0x230(%rbp),%rax
  mov    $0x0,%edi
  call   *%rax
  cmp    $0xffffffff,%eax
  jne    L4137
  mov    -0x150(%rbp),%rax
  movl   $0x1,(%rax)
L4137:
  mov    -0x150(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  jne    L2799
  mov    -0x220(%rbp),%rax
  mov    $0x2711,%esi
  mov    $0x7,%edi
  call   *%rax
  cmp    $0x1,%eax
  jne    L3445
  mov    -0x220(%rbp),%rax
  mov    $0x2712,%esi
  mov    $0x7,%edi
  call   *%rax
  cmp    $0x1,%eax
  jne    L3445
  mov    -0x220(%rbp),%rax
  mov    $0x2711,%esi
  mov    $0x3,%edi
  call   *%rax
  cmp    $0x1,%eax
  jne    L3445
  mov    -0x220(%rbp),%rax
  mov    $0x2712,%esi
  mov    $0x3,%edi
  call   *%rax
  cmp    $0x1,%eax
  jne    L3445
  mov    -0x238(%rbp),%rax
  mov    $0xffffffff,%esi
  mov    $0xa,%edi
  call   *%rax
  mov    -0x130(%rbp),%rax
  movl   $0x0,(%rax)
  mov    -0x128(%rbp),%rax
  movl   $0x0,(%rax)
  mov    -0x120(%rbp),%rax
  movl   $0x0,(%rax)
  mov    -0x118(%rbp),%rax
  movl   $0x0,(%rax)
  mov    -0x110(%rbp),%rax
  movl   $0x0,(%rax)
  mov    -0xf0(%rbp),%rax
  movl   $0x0,(%rax)
  mov    -0xe8(%rbp),%rax
  movl   $0x0,(%rax)
  mov    -0xd8(%rbp),%rax
  movl   $0x0,(%rax)
  mov    -0xd0(%rbp),%rax
  movl   $0x0,(%rax)
  mov    -0xc8(%rbp),%rax
  movl   $0x0,(%rax)
  mov    -0xc0(%rbp),%rax
  movl   $0x0,(%rax)
  mov    -0xb8(%rbp),%rax
  movl   $0x0,(%rax)
  mov    -0x150(%rbp),%rax
  movl   $0x2,(%rax)
  mov    -0x238(%rbp),%rax
  mov    $0xbb8,%esi
  mov    $0x0,%edi
  call   *%rax
  mov    -0x238(%rbp),%rax
  mov    $0x64,%esi
  mov    $0x1,%edi
  call   *%rax
  movl   $0x2,-0x30(%rbp)
  cmpl   $0x1,-0x1e4(%rbp)
  jne    L1406
  movl   $0x1,-0x2c(%rbp)
  jmp    L2799
L1406:
  cmpl   $0x1,-0x1e0(%rbp)
  jne    L1550
  movl   $0x2,-0x2c(%rbp)
  jmp    L2799
L1550:
  cmpl   $0x1,-0x1dc(%rbp)
  jne    L312
  movl   $0x3,-0x2c(%rbp)
  jmp    L2799
L312:
  movl   $0x0,-0x2c(%rbp)
  jmp    L2799
L3445:
  mov    -0x150(%rbp),%rax
  movl   $0x0,(%rax)
  mov    -0x238(%rbp),%rax
  mov    $0x12c,%esi
  mov    $0x0,%edi
  call   *%rax
  mov    -0x238(%rbp),%rax
  mov    $0xa0,%esi
  mov    $0x2,%edi
  call   *%rax
  movl   $0x1,-0x30(%rbp)
  mov    -0x220(%rbp),%rax
  mov    $0x2711,%esi
  mov    $0x7,%edi
  call   *%rax
  test   %eax,%eax
  jne    L1121
  movl   $0x1,-0x2c(%rbp)
L1121:
  mov    -0x220(%rbp),%rax
  mov    $0x2712,%esi
  mov    $0x7,%edi
  call   *%rax
  test   %eax,%eax
  jne    L94
  movl   $0x2,-0x2c(%rbp)
L94:
  mov    -0x220(%rbp),%rax
  mov    $0x2711,%esi
  mov    $0x3,%edi
  call   *%rax
  test   %eax,%eax
  jne    L3184
  movl   $0x3,-0x2c(%rbp)
L3184:
  mov    -0x220(%rbp),%rax
  mov    $0x2712,%esi
  mov    $0x3,%edi
  call   *%rax
  test   %eax,%eax
  jne    L2799
  movl   $0x4,-0x2c(%rbp)
L2799:
  mov    -0x230(%rbp),%rax
  mov    $0x1,%edi
  call   *%rax
  cmp    $0x64,%eax
  jne    L1646
  mov    -0x148(%rbp),%rax
  movl   $0x1,(%rax)
L1646:
  mov    -0x230(%rbp),%rax
  mov    $0x1,%edi
  call   *%rax
  cmp    $0x50,%eax
  jne    L2829
  mov    -0x148(%rbp),%rax
  movl   $0x0,(%rax)
L2829:
  mov    -0x230(%rbp),%rax
  mov    $0x1,%edi
  call   *%rax
  cmp    $0x3c,%eax
  jne    L3393
  mov    -0x148(%rbp),%rax
  movl   $0x1,(%rax)
L3393:
  mov    -0x230(%rbp),%rax
  mov    $0x1,%edi
  call   *%rax
  cmp    $0x28,%eax
  jne    L79
  mov    -0x148(%rbp),%rax
  movl   $0x0,(%rax)
L79:
  mov    -0x230(%rbp),%rax
  mov    $0x1,%edi
  call   *%rax
  cmp    $0x14,%eax
  jne    L2944
  mov    -0x148(%rbp),%rax
  movl   $0x1,(%rax)
L2944:
  mov    -0x230(%rbp),%rax
  mov    $0x1,%edi
  call   *%rax
  test   %eax,%eax
  jne    L1959
  mov    -0x148(%rbp),%rax
  movl   $0x0,(%rax)
L1959:
  mov    -0x230(%rbp),%rax
  mov    $0x2,%edi
  call   *%rax
  cmp    $0xa0,%eax
  jne    L960
  mov    -0x148(%rbp),%rax
  movl   $0x1,(%rax)
L960:
  mov    -0x230(%rbp),%rax
  mov    $0x2,%edi
  call   *%rax
  cmp    $0x96,%eax
  jne    L1508
  mov    -0x148(%rbp),%rax
  movl   $0x0,(%rax)
L1508:
  mov    -0x230(%rbp),%rax
  mov    $0x2,%edi
  call   *%rax
  cmp    $0x82,%eax
  jne    L1476
  mov    -0x148(%rbp),%rax
  movl   $0x1,(%rax)
L1476:
  mov    -0x230(%rbp),%rax
  mov    $0x2,%edi
  call   *%rax
  cmp    $0x5a,%eax
  jne    L2064
  mov    -0x148(%rbp),%rax
  movl   $0x0,(%rax)
L2064:
  mov    -0x230(%rbp),%rax
  mov    $0x2,%edi
  call   *%rax
  cmp    $0x46,%eax
  jne    L671
  mov    -0x148(%rbp),%rax
  movl   $0x1,(%rax)
L671:
  mov    -0x230(%rbp),%rax
  mov    $0x2,%edi
  call   *%rax
  cmp    $0x3c,%eax
  jne    L1136
  mov    -0x148(%rbp),%rax
  movl   $0x0,(%rax)
L1136:
  mov    -0x230(%rbp),%rax
  mov    $0x2,%edi
  call   *%rax
  cmp    $0x28,%eax
  jne    L2780
  mov    -0x148(%rbp),%rax
  movl   $0x1,(%rax)
L2780:
  mov    -0x230(%rbp),%rax
  mov    $0x2,%edi
  call   *%rax
  test   %eax,%eax
  jne    L259
  mov    -0x148(%rbp),%rax
  movl   $0x0,(%rax)
L259:
  mov    -0x150(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x2,%eax
  jne    L2506
  mov    -0x230(%rbp),%rax
  mov    $0x0,%edi
  call   *%rax
  cmp    $0xffffffff,%eax
  jne    L2506
  mov    -0x238(%rbp),%rax
  mov    $0xffffffff,%esi
  mov    $0xb,%edi
  call   *%rax
  mov    -0x108(%rbp),%rax
  movl   $0x0,(%rax)
  mov    -0x100(%rbp),%rax
  movl   $0x0,(%rax)
  mov    -0x150(%rbp),%rax
  movl   $0x3,(%rax)
  mov    -0x238(%rbp),%rax
  mov    $0x32,%esi
  mov    $0x2,%edi
  call   *%rax
  mov    -0x20(%rbp),%eax
  cmp    $0x2,%eax
  jne    L2089
  mov    -0x1c(%rbp),%eax
  cmp    $0x1,%eax
  jne    L2089
  mov    -0x248(%rbp),%rax
  mov    $0x0,%ecx
  mov    $0x0,%edx
  lea    D544(%rip),%rsi
  lea    D590(%rip),%rdi
  call   *%rax
  jmp    L2506
L2089:
  mov    -0x20(%rbp),%eax
  cmp    $0x2,%eax
  jne    L1453
  mov    -0x1c(%rbp),%eax
  cmp    $0x2,%eax
  jne    L1453
  mov    -0x248(%rbp),%rax
  mov    $0x0,%ecx
  mov    $0x0,%edx
  lea    D544(%rip),%rsi
  lea    D590(%rip),%rdi
  call   *%rax
  jmp    L2506
L1453:
  mov    -0x20(%rbp),%eax
  cmp    $0x2,%eax
  jne    L2506
  mov    -0x248(%rbp),%rax
  mov    $0x0,%ecx
  mov    $0x0,%edx
  lea    D544(%rip),%rsi
  lea    D590(%rip),%rdi
  call   *%rax
L2506:
  cmpl   $0x1,-0x1e4(%rbp)
  je     L2653
  cmpl   $0x1,-0x1e0(%rbp)
  je     L2653
  cmpl   $0x1,-0x1dc(%rbp)
  jne    L2265
L2653:
  mov    -0x150(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x2,%eax
  jle    L2265
  mov    -0x150(%rbp),%rax
  movl   $0x0,(%rax)
  mov    -0x148(%rbp),%rax
  movl   $0x0,(%rax)
  mov    -0x238(%rbp),%rax
  mov    $0x12c,%esi
  mov    $0x0,%edi
  call   *%rax
  mov    -0x238(%rbp),%rax
  mov    $0x6e,%esi
  mov    $0x1,%edi
  call   *%rax
  movl   $0x3,-0x30(%rbp)
  cmpl   $0x1,-0x1e4(%rbp)
  jne    L318
  movl   $0x1,-0x2c(%rbp)
  jmp    L2265
L318:
  cmpl   $0x1,-0x1e0(%rbp)
  jne    L537
  movl   $0x2,-0x2c(%rbp)
  jmp    L2265
L537:
  cmpl   $0x1,-0x1dc(%rbp)
  jne    L2948
  movl   $0x3,-0x2c(%rbp)
  jmp    L2265
L2948:
  movl   $0x0,-0x2c(%rbp)
L2265:
  mov    -0x220(%rbp),%rax
  mov    $0x2711,%esi
  mov    $0x7,%edi
  call   *%rax
  test   %eax,%eax
  je     L2715
  mov    -0x220(%rbp),%rax
  mov    $0x2712,%esi
  mov    $0x7,%edi
  call   *%rax
  test   %eax,%eax
  je     L2715
  mov    -0x220(%rbp),%rax
  mov    $0x2713,%esi
  mov    $0x7,%edi
  call   *%rax
  test   %eax,%eax
  je     L2715
  mov    -0x220(%rbp),%rax
  mov    $0x2711,%esi
  mov    $0x3,%edi
  call   *%rax
  test   %eax,%eax
  je     L2715
  mov    -0x220(%rbp),%rax
  mov    $0x2712,%esi
  mov    $0x3,%edi
  call   *%rax
  test   %eax,%eax
  jne    L4192
L2715:
  mov    -0x230(%rbp),%rax
  mov    $0x0,%edi
  call   *%rax
  cmp    $0xffffffff,%eax
  jne    L4192
  mov    -0x150(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x3,%eax
  jne    L4192
  mov    -0x150(%rbp),%rax
  movl   $0x4,(%rax)
  mov    -0x238(%rbp),%rax
  mov    $0x3e8,%esi
  mov    $0x0,%edi
  call   *%rax
  movl   $0x5,-0x30(%rbp)
  mov    -0x220(%rbp),%rax
  mov    $0x2711,%esi
  mov    $0x7,%edi
  call   *%rax
  test   %eax,%eax
  jne    L2165
  movl   $0x1,-0x2c(%rbp)
L2165:
  mov    -0x220(%rbp),%rax
  mov    $0x2712,%esi
  mov    $0x7,%edi
  call   *%rax
  test   %eax,%eax
  jne    L3673
  movl   $0x2,-0x2c(%rbp)
L3673:
  mov    -0x220(%rbp),%rax
  mov    $0x2713,%esi
  mov    $0x7,%edi
  call   *%rax
  test   %eax,%eax
  jne    L3280
  movl   $0x3,-0x2c(%rbp)
L3280:
  mov    -0x220(%rbp),%rax
  mov    $0x2711,%esi
  mov    $0x3,%edi
  call   *%rax
  test   %eax,%eax
  jne    L2757
  movl   $0x4,-0x2c(%rbp)
L2757:
  mov    -0x220(%rbp),%rax
  mov    $0x2712,%esi
  mov    $0x3,%edi
  call   *%rax
  test   %eax,%eax
  jne    L4192
  movl   $0x5,-0x2c(%rbp)
L4192:
  mov    -0x220(%rbp),%rax
  mov    $0x2711,%esi
  mov    $0x4,%edi
  call   *%rax
  cmp    $0x1,%eax
  je     L2594
  mov    -0x220(%rbp),%rax
  mov    $0x2712,%esi
  mov    $0x4,%edi
  call   *%rax
  cmp    $0x1,%eax
  je     L2594
  mov    -0x220(%rbp),%rax
  mov    $0x2713,%esi
  mov    $0x4,%edi
  call   *%rax
  cmp    $0x1,%eax
  jne    L929
L2594:
  mov    -0x150(%rbp),%rax
  movl   $0x4,(%rax)
  mov    -0x238(%rbp),%rax
  mov    $0x3e8,%esi
  mov    $0x0,%edi
  call   *%rax
  movl   $0x5,-0x30(%rbp)
  mov    -0x220(%rbp),%rax
  mov    $0x2712,%esi
  mov    $0x4,%edi
  call   *%rax
  cmp    $0x1,%eax
  jne    L2227
  movl   $0x6,-0x2c(%rbp)
L2227:
  mov    -0x220(%rbp),%rax
  mov    $0x2711,%esi
  mov    $0x4,%edi
  call   *%rax
  cmp    $0x1,%eax
  jne    L3038
  movl   $0x7,-0x2c(%rbp)
L3038:
  mov    -0x220(%rbp),%rax
  mov    $0x2713,%esi
  mov    $0x4,%edi
  call   *%rax
  cmp    $0x1,%eax
  jne    L929
  movl   $0x8,-0x2c(%rbp)
L929:
  mov    -0x230(%rbp),%rax
  mov    $0x0,%edi
  call   *%rax
  cmp    $0xffffffff,%eax
  jne    L2297
  mov    -0x150(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x4,%eax
  jne    L2297
  mov    -0x150(%rbp),%rax
  movl   $0x5,(%rax)
  movl   $0x4,-0x30(%rbp)
  mov    -0x220(%rbp),%rax
  mov    $0x2711,%esi
  mov    $0x7,%edi
  call   *%rax
  test   %eax,%eax
  jne    L1285
  movl   $0x1,-0x2c(%rbp)
  jmp    L2297
L1285:
  mov    -0x220(%rbp),%rax
  mov    $0x2712,%esi
  mov    $0x7,%edi
  call   *%rax
  test   %eax,%eax
  jne    L2643
  movl   $0x2,-0x2c(%rbp)
  jmp    L2297
L2643:
  mov    -0x220(%rbp),%rax
  mov    $0x2713,%esi
  mov    $0x7,%edi
  call   *%rax
  test   %eax,%eax
  jne    L3360
  movl   $0x3,-0x2c(%rbp)
  jmp    L2297
L3360:
  mov    -0x220(%rbp),%rax
  mov    $0x2711,%esi
  mov    $0x3,%edi
  call   *%rax
  test   %eax,%eax
  jne    L327
  movl   $0x4,-0x2c(%rbp)
  jmp    L2297
L327:
  mov    -0x220(%rbp),%rax
  mov    $0x2712,%esi
  mov    $0x3,%edi
  call   *%rax
  test   %eax,%eax
  jne    L1820
  movl   $0x5,-0x2c(%rbp)
  jmp    L2297
L1820:
  mov    -0x220(%rbp),%rax
  mov    $0x2712,%esi
  mov    $0x4,%edi
  call   *%rax
  cmp    $0x1,%eax
  jne    L2225
  movl   $0x6,-0x2c(%rbp)
  jmp    L2297
L2225:
  mov    -0x220(%rbp),%rax
  mov    $0x2711,%esi
  mov    $0x4,%edi
  call   *%rax
  cmp    $0x1,%eax
  jne    L2865
  movl   $0x7,-0x2c(%rbp)
  jmp    L2297
L2865:
  mov    -0x220(%rbp),%rax
  mov    $0x2713,%esi
  mov    $0x4,%edi
  call   *%rax
  cmp    $0x1,%eax
  jne    L4044
  movl   $0x8,-0x2c(%rbp)
  jmp    L2297
L4044:
  mov    -0x20(%rbp),%eax
  cmp    $0x5,%eax
  jne    L2297
  mov    -0x1c(%rbp),%eax
  mov    %eax,-0x2c(%rbp)
L2297:
  mov    -0x230(%rbp),%rax
  mov    $0x0,%edi
  call   *%rax
  cmp    $0xffffffff,%eax
  jne    L460
  mov    -0x150(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x5,%eax
  jne    L460
  mov    -0x238(%rbp),%rax
  mov    $0x1d4c0,%esi
  mov    $0x0,%edi
  call   *%rax
L460:
  mov    -0x230(%rbp),%rax
  mov    $0x0,%edi
  call   *%rax
  cmp    $0x1d4bf,%eax
  jne    L3719
  mov    -0x150(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x5,%eax
  jne    L3719
  mov    -0x20(%rbp),%eax
  cmp    $0x4,%eax
  je     L2797
  mov    -0x20(%rbp),%eax
  cmp    $0x5,%eax
  jne    L1722
L2797:
  mov    -0x1c(%rbp),%eax
  cmp    $0x1,%eax
  jne    L1722
  mov    -0x248(%rbp),%rax
  mov    $0x0,%ecx
  mov    $0x0,%edx
  lea    D569(%rip),%rsi
  lea    D590(%rip),%rdi
  call   *%rax
  jmp    L3719
L1722:
  mov    -0x20(%rbp),%eax
  cmp    $0x4,%eax
  je     L3788
  mov    -0x20(%rbp),%eax
  cmp    $0x5,%eax
  jne    L2277
L3788:
  mov    -0x1c(%rbp),%eax
  cmp    $0x2,%eax
  jne    L2277
  mov    -0x248(%rbp),%rax
  mov    $0x0,%ecx
  mov    $0x0,%edx
  lea    D0(%rip),%rsi
  lea    D590(%rip),%rdi
  call   *%rax
  jmp    L3719
L2277:
  mov    -0x20(%rbp),%eax
  cmp    $0x4,%eax
  je     L3327
  mov    -0x20(%rbp),%eax
  cmp    $0x5,%eax
  jne    L1233
L3327:
  mov    -0x1c(%rbp),%eax
  cmp    $0x3,%eax
  jne    L1233
  mov    -0x248(%rbp),%rax
  mov    $0x0,%ecx
  mov    $0x0,%edx
  lea    D315(%rip),%rsi
  lea    D590(%rip),%rdi
  call   *%rax
  jmp    L3719
L1233:
  mov    -0x20(%rbp),%eax
  cmp    $0x4,%eax
  je     L2308
  mov    -0x20(%rbp),%eax
  cmp    $0x5,%eax
  jne    L3940
L2308:
  mov    -0x1c(%rbp),%eax
  cmp    $0x4,%eax
  jne    L3940
  mov    -0x248(%rbp),%rax
  mov    $0x0,%ecx
  mov    $0x0,%edx
  lea    D10(%rip),%rsi
  lea    D590(%rip),%rdi
  call   *%rax
  jmp    L3719
L3940:
  mov    -0x20(%rbp),%eax
  cmp    $0x4,%eax
  je     L1433
  mov    -0x20(%rbp),%eax
  cmp    $0x5,%eax
  jne    L1512
L1433:
  mov    -0x1c(%rbp),%eax
  cmp    $0x5,%eax
  jne    L1512
  mov    -0x248(%rbp),%rax
  mov    $0x0,%ecx
  mov    $0x0,%edx
  lea    D298(%rip),%rsi
  lea    D590(%rip),%rdi
  call   *%rax
  jmp    L3719
L1512:
  mov    -0x20(%rbp),%eax
  cmp    $0x4,%eax
  je     L3575
  mov    -0x20(%rbp),%eax
  cmp    $0x5,%eax
  jne    L2626
L3575:
  mov    -0x1c(%rbp),%eax
  cmp    $0x6,%eax
  jne    L2626
  mov    -0x248(%rbp),%rax
  mov    $0x0,%ecx
  mov    $0x0,%edx
  lea    D423(%rip),%rsi
  lea    D590(%rip),%rdi
  call   *%rax
  jmp    L3719
L2626:
  mov    -0x20(%rbp),%eax
  cmp    $0x4,%eax
  je     L2457
  mov    -0x20(%rbp),%eax
  cmp    $0x5,%eax
  jne    L545
L2457:
  mov    -0x1c(%rbp),%eax
  cmp    $0x7,%eax
  jne    L545
  mov    -0x248(%rbp),%rax
  mov    $0x0,%ecx
  mov    $0x0,%edx
  lea    D434(%rip),%rsi
  lea    D590(%rip),%rdi
  call   *%rax
  jmp    L3719
L545:
  mov    -0x20(%rbp),%eax
  cmp    $0x4,%eax
  je     L3887
  mov    -0x20(%rbp),%eax
  cmp    $0x5,%eax
  jne    L3590
L3887:
  mov    -0x1c(%rbp),%eax
  cmp    $0x8,%eax
  jne    L3590
  mov    -0x248(%rbp),%rax
  mov    $0x0,%ecx
  mov    $0x0,%edx
  lea    D487(%rip),%rsi
  lea    D590(%rip),%rdi
  call   *%rax
  jmp    L3719
L3590:
  mov    -0x20(%rbp),%eax
  cmp    $0x4,%eax
  je     L2831
  mov    -0x20(%rbp),%eax
  cmp    $0x5,%eax
  jne    L3719
L2831:
  mov    -0x248(%rbp),%rax
  mov    $0x0,%ecx
  mov    $0x0,%edx
  lea    D345(%rip),%rsi
  lea    D590(%rip),%rdi
  call   *%rax
L3719:
  mov    -0x230(%rbp),%rax
  mov    $0x0,%edi
  call   *%rax
  cmp    $0x1c907,%eax
  jne    L2348
  mov    -0x150(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x5,%eax
  jne    L2348
  mov    -0x20(%rbp),%eax
  cmp    $0x4,%eax
  je     L1671
  mov    -0x20(%rbp),%eax
  cmp    $0x5,%eax
  jne    L3812
L1671:
  mov    -0x1c(%rbp),%eax
  cmp    $0x1,%eax
  jne    L3812
  mov    -0x248(%rbp),%rax
  mov    $0x0,%ecx
  mov    $0x0,%edx
  lea    D569(%rip),%rsi
  lea    D590(%rip),%rdi
  call   *%rax
  jmp    L2348
L3812:
  mov    -0x20(%rbp),%eax
  cmp    $0x4,%eax
  je     L1686
  mov    -0x20(%rbp),%eax
  cmp    $0x5,%eax
  jne    L391
L1686:
  mov    -0x1c(%rbp),%eax
  cmp    $0x2,%eax
  jne    L391
  mov    -0x248(%rbp),%rax
  mov    $0x0,%ecx
  mov    $0x0,%edx
  lea    D0(%rip),%rsi
  lea    D590(%rip),%rdi
  call   *%rax
  jmp    L2348
L391:
  mov    -0x20(%rbp),%eax
  cmp    $0x4,%eax
  je     L3229
  mov    -0x20(%rbp),%eax
  cmp    $0x5,%eax
  jne    L554
L3229:
  mov    -0x1c(%rbp),%eax
  cmp    $0x3,%eax
  jne    L554
  mov    -0x248(%rbp),%rax
  mov    $0x0,%ecx
  mov    $0x0,%edx
  lea    D315(%rip),%rsi
  lea    D590(%rip),%rdi
  call   *%rax
  jmp    L2348
L554:
  mov    -0x20(%rbp),%eax
  cmp    $0x4,%eax
  je     L2632
  mov    -0x20(%rbp),%eax
  cmp    $0x5,%eax
  jne    L916
L2632:
  mov    -0x1c(%rbp),%eax
  cmp    $0x4,%eax
  jne    L916
  mov    -0x248(%rbp),%rax
  mov    $0x0,%ecx
  mov    $0x0,%edx
  lea    D10(%rip),%rsi
  lea    D590(%rip),%rdi
  call   *%rax
  jmp    L2348
L916:
  mov    -0x20(%rbp),%eax
  cmp    $0x4,%eax
  je     L1327
  mov    -0x20(%rbp),%eax
  cmp    $0x5,%eax
  jne    L1931
L1327:
  mov    -0x1c(%rbp),%eax
  cmp    $0x5,%eax
  jne    L1931
  mov    -0x248(%rbp),%rax
  mov    $0x0,%ecx
  mov    $0x0,%edx
  lea    D298(%rip),%rsi
  lea    D590(%rip),%rdi
  call   *%rax
  jmp    L2348
L1931:
  mov    -0x20(%rbp),%eax
  cmp    $0x4,%eax
  je     L2871
  mov    -0x20(%rbp),%eax
  cmp    $0x5,%eax
  jne    L4023
L2871:
  mov    -0x1c(%rbp),%eax
  cmp    $0x6,%eax
  jne    L4023
  mov    -0x248(%rbp),%rax
  mov    $0x0,%ecx
  mov    $0x0,%edx
  lea    D423(%rip),%rsi
  lea    D590(%rip),%rdi
  call   *%rax
  jmp    L2348
L4023:
  mov    -0x20(%rbp),%eax
  cmp    $0x4,%eax
  je     L4160
  mov    -0x20(%rbp),%eax
  cmp    $0x5,%eax
  jne    L1416
L4160:
  mov    -0x1c(%rbp),%eax
  cmp    $0x7,%eax
  jne    L1416
  mov    -0x248(%rbp),%rax
  mov    $0x0,%ecx
  mov    $0x0,%edx
  lea    D434(%rip),%rsi
  lea    D590(%rip),%rdi
  call   *%rax
  jmp    L2348
L1416:
  mov    -0x20(%rbp),%eax
  cmp    $0x4,%eax
  je     L1670
  mov    -0x20(%rbp),%eax
  cmp    $0x5,%eax
  jne    L2931
L1670:
  mov    -0x1c(%rbp),%eax
  cmp    $0x8,%eax
  jne    L2931
  mov    -0x248(%rbp),%rax
  mov    $0x0,%ecx
  mov    $0x0,%edx
  lea    D487(%rip),%rsi
  lea    D590(%rip),%rdi
  call   *%rax
  jmp    L2348
L2931:
  mov    -0x20(%rbp),%eax
  cmp    $0x4,%eax
  je     L2570
  mov    -0x20(%rbp),%eax
  cmp    $0x5,%eax
  jne    L2348
L2570:
  mov    -0x248(%rbp),%rax
  mov    $0x0,%ecx
  mov    $0x0,%edx
  lea    D345(%rip),%rsi
  lea    D590(%rip),%rdi
  call   *%rax
L2348:
  mov    -0x150(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x4,%eax
  jne    L3477
  mov    -0x230(%rbp),%rax
  mov    $0x0,%edi
  call   *%rax
  movslq %eax,%rdx
  imul   $0x51eb851f,%rdx,%rdx
  shr    $0x20,%rdx
  sar    $0x5,%edx
  mov    %eax,%ecx
  sar    $0x1f,%ecx
  sub    %ecx,%edx
  imul   $0x64,%edx,%ecx
  sub    %ecx,%eax
  mov    %eax,%edx
  test   %edx,%edx
  jne    L2901
  mov    -0x148(%rbp),%rax
  movl   $0x1,(%rax)
L2901:
  mov    -0x230(%rbp),%rax
  mov    $0x0,%edi
  call   *%rax
  lea    -0x32(%rax),%edx
  movslq %edx,%rax
  imul   $0x51eb851f,%rax,%rax
  shr    $0x20,%rax
  sar    $0x5,%eax
  mov    %edx,%ecx
  sar    $0x1f,%ecx
  sub    %ecx,%eax
  imul   $0x64,%eax,%ecx
  mov    %edx,%eax
  sub    %ecx,%eax
  test   %eax,%eax
  jne    L3477
  mov    -0x148(%rbp),%rax
  movl   $0x0,(%rax)
L3477:
  mov    -0x150(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x5,%eax
  jne    L3833
  mov    -0x230(%rbp),%rax
  mov    $0x0,%edi
  call   *%rax
  cmp    $0x1bd50,%eax
  jle    L3833
  mov    -0x230(%rbp),%rax
  mov    $0x0,%edi
  call   *%rax
  movslq %eax,%rdx
  imul   $0x1b4e81b5,%rdx,%rdx
  shr    $0x20,%rdx
  sar    $0x5,%edx
  mov    %eax,%ecx
  sar    $0x1f,%ecx
  sub    %ecx,%edx
  imul   $0x12c,%edx,%ecx
  sub    %ecx,%eax
  mov    %eax,%edx
  test   %edx,%edx
  jne    L3914
  mov    -0x148(%rbp),%rax
  movl   $0x1,(%rax)
L3914:
  mov    -0x230(%rbp),%rax
  mov    $0x0,%edi
  call   *%rax
  lea    -0x64(%rax),%edx
  movslq %edx,%rax
  imul   $0x1b4e81b5,%rax,%rax
  shr    $0x20,%rax
  sar    $0x5,%eax
  mov    %edx,%ecx
  sar    $0x1f,%ecx
  sub    %ecx,%eax
  imul   $0x12c,%eax,%ecx
  mov    %edx,%eax
  sub    %ecx,%eax
  test   %eax,%eax
  jne    L2950
  mov    -0x148(%rbp),%rax
  movl   $0x0,(%rax)
  jmp    L2950
L3833:
  mov    -0x150(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x5,%eax
  jne    L2950
  mov    -0x148(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  jne    L2950
  mov    -0x148(%rbp),%rax
  movl   $0x0,(%rax)
L2950:
  mov    -0x230(%rbp),%rax
  mov    $0x14,%edi
  call   *%rax
  cmp    $0xffffffff,%eax
  jne    L14
  mov    -0x80(%rbp),%rax
  movss  (%rax),%xmm0
  pxor   %xmm1,%xmm1
  comiss %xmm1,%xmm0
  jbe    L3610
  mov    -0x90(%rbp),%rax
  movss  (%rax),%xmm0
  mov    -0x80(%rbp),%rax
  movss  (%rax),%xmm2
  movaps %xmm0,%xmm1
  divss  %xmm2,%xmm1
  movss  D96(%rip),%xmm0
  mulss  %xmm1,%xmm0
  jmp    L2168
L3610:
  pxor   %xmm0,%xmm0
L2168:
  mov    -0x88(%rbp),%rax
  movss  %xmm0,(%rax)
  mov    -0x90(%rbp),%rax
  pxor   %xmm0,%xmm0
  movss  %xmm0,(%rax)
  mov    -0x80(%rbp),%rax
  pxor   %xmm0,%xmm0
  movss  %xmm0,(%rax)
  mov    -0x238(%rbp),%rax
  mov    $0x1770,%esi
  mov    $0x14,%edi
  call   *%rax
  jmp    L615
L14:
  mov    -0x220(%rbp),%rax
  mov    $0x9c42,%esi
  mov    $0x2,%edi
  call   *%rax
  mov    %eax,%edx
  mov    -0x90(%rbp),%rax
  movss  (%rax),%xmm1
  pxor   %xmm0,%xmm0
  cvtsi2ss %edx,%xmm0
  addss  %xmm1,%xmm0
  mov    -0x90(%rbp),%rax
  movss  %xmm0,(%rax)
  mov    -0x80(%rbp),%rax
  movss  (%rax),%xmm1
  movss  D20(%rip),%xmm0
  addss  %xmm1,%xmm0
  mov    -0x80(%rbp),%rax
  movss  %xmm0,(%rax)
L615:
  mov    -0x230(%rbp),%rax
  mov    $0x15,%edi
  call   *%rax
  cmp    $0xffffffff,%eax
  jne    L1310
  mov    -0x68(%rbp),%rax
  movss  (%rax),%xmm0
  pxor   %xmm1,%xmm1
  comiss %xmm1,%xmm0
  jbe    L2880
  mov    -0x78(%rbp),%rax
  movss  (%rax),%xmm0
  mov    -0x68(%rbp),%rax
  movss  (%rax),%xmm2
  movaps %xmm0,%xmm1
  divss  %xmm2,%xmm1
  movss  D96(%rip),%xmm0
  mulss  %xmm1,%xmm0
  jmp    L2320
L2880:
  pxor   %xmm0,%xmm0
L2320:
  mov    -0x70(%rbp),%rax
  movss  %xmm0,(%rax)
  mov    -0x78(%rbp),%rax
  pxor   %xmm0,%xmm0
  movss  %xmm0,(%rax)
  mov    -0x68(%rbp),%rax
  pxor   %xmm0,%xmm0
  movss  %xmm0,(%rax)
  mov    -0x238(%rbp),%rax
  mov    $0x1770,%esi
  mov    $0x15,%edi
  call   *%rax
  jmp    L1407
L1310:
  mov    -0x220(%rbp),%rax
  mov    $0x9c43,%esi
  mov    $0x2,%edi
  call   *%rax
  mov    %eax,%edx
  mov    -0x78(%rbp),%rax
  movss  (%rax),%xmm1
  pxor   %xmm0,%xmm0
  cvtsi2ss %edx,%xmm0
  addss  %xmm1,%xmm0
  mov    -0x78(%rbp),%rax
  movss  %xmm0,(%rax)
  mov    -0x68(%rbp),%rax
  movss  (%rax),%xmm1
  movss  D20(%rip),%xmm0
  addss  %xmm1,%xmm0
  mov    -0x68(%rbp),%rax
  movss  %xmm0,(%rax)
L1407:
  mov    -0x230(%rbp),%rax
  mov    $0x16,%edi
  call   *%rax
  cmp    $0xffffffff,%eax
  jne    L3226
  mov    -0x50(%rbp),%rax
  movss  (%rax),%xmm0
  pxor   %xmm1,%xmm1
  comiss %xmm1,%xmm0
  jbe    L3271
  mov    -0x60(%rbp),%rax
  movss  (%rax),%xmm0
  mov    -0x50(%rbp),%rax
  movss  (%rax),%xmm2
  movaps %xmm0,%xmm1
  divss  %xmm2,%xmm1
  movss  D96(%rip),%xmm0
  mulss  %xmm1,%xmm0
  jmp    L3731
L3271:
  pxor   %xmm0,%xmm0
L3731:
  mov    -0x58(%rbp),%rax
  movss  %xmm0,(%rax)
  mov    -0x60(%rbp),%rax
  pxor   %xmm0,%xmm0
  movss  %xmm0,(%rax)
  mov    -0x50(%rbp),%rax
  pxor   %xmm0,%xmm0
  movss  %xmm0,(%rax)
  mov    -0x238(%rbp),%rax
  mov    $0x1770,%esi
  mov    $0x16,%edi
  call   *%rax
  jmp    L2699
L3226:
  mov    -0x220(%rbp),%rax
  mov    $0x9c41,%esi
  mov    $0x7,%edi
  call   *%rax
  mov    %eax,%edx
  mov    -0x60(%rbp),%rax
  movss  (%rax),%xmm1
  pxor   %xmm0,%xmm0
  cvtsi2ss %edx,%xmm0
  addss  %xmm1,%xmm0
  mov    -0x60(%rbp),%rax
  movss  %xmm0,(%rax)
  mov    -0x50(%rbp),%rax
  movss  (%rax),%xmm1
  movss  D20(%rip),%xmm0
  addss  %xmm1,%xmm0
  mov    -0x50(%rbp),%rax
  movss  %xmm0,(%rax)
L2699:
  mov    -0x220(%rbp),%rax
  mov    $0x9c41,%esi
  mov    $0x5,%edi
  call   *%rax
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm1
  movsd  D69(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  D617(%rip),%xmm1
  subsd  %xmm1,%xmm0
  cvtsd2ss %xmm0,%xmm0
  mov    -0xa8(%rbp),%rax
  movss  %xmm0,(%rax)
  mov    -0xa8(%rbp),%rax
  movss  (%rax),%xmm1
  pxor   %xmm0,%xmm0
  comiss %xmm1,%xmm0
  jb     L4053
  mov    -0x230(%rbp),%rax
  mov    $0x7,%edi
  call   *%rax
  test   %eax,%eax
  jne    L4053
  mov    -0x140(%rbp),%rax
  movl   $0x0,(%rax)
L4053:
  mov    -0xb0(%rbp),%rax
  movss  (%rax),%xmm1
  movss  D327(%rip),%xmm0
  comiss %xmm1,%xmm0
  ja     L2519
  mov    -0xb0(%rbp),%rax
  movss  (%rax),%xmm0
  comiss D149(%rip),%xmm0
  jbe    L3949
L2519:
  mov    -0xb0(%rbp),%rax
  movss  D255(%rip),%xmm0
  movss  %xmm0,(%rax)
L3949:
  mov    -0xa8(%rbp),%rax
  movss  (%rax),%xmm1
  mov    -0xb0(%rbp),%rax
  movss  (%rax),%xmm0
  movss  D20(%rip),%xmm2
  subss  %xmm2,%xmm0
  comiss %xmm1,%xmm0
  jbe    L3792
  mov    -0x140(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  jne    L3792
  mov    -0x160(%rbp),%rax
  movl   $0x1,(%rax)
L3792:
  mov    -0xa8(%rbp),%rax
  movss  (%rax),%xmm0
  mov    -0xb0(%rbp),%rax
  movss  (%rax),%xmm2
  movss  D20(%rip),%xmm1
  addss  %xmm2,%xmm1
  comiss %xmm1,%xmm0
  jbe    L896
  mov    -0x140(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  jne    L896
  mov    -0x160(%rbp),%rax
  movl   $0x0,(%rax)
L896:
  mov    -0x140(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jne    L2276
  mov    -0x160(%rbp),%rax
  movl   $0x0,(%rax)
L2276:
  mov    -0x220(%rbp),%rax
  mov    $0x9c41,%esi
  mov    $0x6,%edi
  call   *%rax
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm1
  movsd  D69(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  D617(%rip),%xmm1
  subsd  %xmm1,%xmm0
  cvtsd2ss %xmm0,%xmm0
  mov    -0x98(%rbp),%rax
  movss  %xmm0,(%rax)
  mov    -0x98(%rbp),%rax
  movss  (%rax),%xmm1
  movss  D327(%rip),%xmm0
  comiss %xmm1,%xmm0
  jbe    L198
  mov    -0x230(%rbp),%rax
  mov    $0x7,%edi
  call   *%rax
  test   %eax,%eax
  jne    L198
  mov    -0x138(%rbp),%rax
  movl   $0x0,(%rax)
L198:
  mov    -0xa0(%rbp),%rax
  movss  (%rax),%xmm1
  movss  D327(%rip),%xmm0
  comiss %xmm1,%xmm0
  ja     L3110
  mov    -0xa0(%rbp),%rax
  movss  (%rax),%xmm0
  comiss D149(%rip),%xmm0
  jbe    L541
L3110:
  mov    -0xa0(%rbp),%rax
  movss  D542(%rip),%xmm0
  movss  %xmm0,(%rax)
L541:
  mov    -0x98(%rbp),%rax
  movss  (%rax),%xmm1
  mov    -0xa0(%rbp),%rax
  movss  (%rax),%xmm0
  movss  D20(%rip),%xmm2
  subss  %xmm2,%xmm0
  comiss %xmm1,%xmm0
  jbe    L1469
  mov    -0x138(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  jne    L1469
  mov    -0x158(%rbp),%rax
  movl   $0x1,(%rax)
L1469:
  mov    -0x98(%rbp),%rax
  movss  (%rax),%xmm0
  mov    -0xa0(%rbp),%rax
  movss  (%rax),%xmm2
  movss  D20(%rip),%xmm1
  addss  %xmm2,%xmm1
  comiss %xmm1,%xmm0
  jbe    L3706
  mov    -0x138(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  jne    L3706
  mov    -0x158(%rbp),%rax
  movl   $0x0,(%rax)
L3706:
  mov    -0x138(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jne    L1324
  mov    -0x158(%rbp),%rax
  movl   $0x0,(%rax)
L1324:
  mov    -0x130(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  jne    L3225
  mov    -0x220(%rbp),%rax
  mov    $0x1,%esi
  mov    $0x1,%edi
  call   *%rax
  test   %eax,%eax
  jne    L192
  mov    -0x228(%rbp),%rax
  mov    $0x1,%edx
  mov    $0x1,%esi
  mov    $0x1,%edi
  call   *%rax
  jmp    L192
L3225:
  mov    -0x130(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jne    L192
  mov    -0x220(%rbp),%rax
  mov    $0x1,%esi
  mov    $0x1,%edi
  call   *%rax
  cmp    $0x1,%eax
  jne    L192
  mov    -0x228(%rbp),%rax
  mov    $0x0,%edx
  mov    $0x1,%esi
  mov    $0x1,%edi
  call   *%rax
L192:
  mov    -0x120(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  jne    L610
  mov    -0x220(%rbp),%rax
  mov    $0x2,%esi
  mov    $0x1,%edi
  call   *%rax
  test   %eax,%eax
  jne    L3795
  mov    -0x228(%rbp),%rax
  mov    $0x1,%edx
  mov    $0x2,%esi
  mov    $0x1,%edi
  call   *%rax
  jmp    L3795
L610:
  mov    -0x120(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jne    L3795
  mov    -0x220(%rbp),%rax
  mov    $0x2,%esi
  mov    $0x1,%edi
  call   *%rax
  cmp    $0x1,%eax
  jne    L3795
  mov    -0x228(%rbp),%rax
  mov    $0x0,%edx
  mov    $0x2,%esi
  mov    $0x1,%edi
  call   *%rax
L3795:
  mov    -0x110(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  jne    L3963
  mov    -0x220(%rbp),%rax
  mov    $0x2,%esi
  mov    $0x7,%edi
  call   *%rax
  test   %eax,%eax
  jne    L1037
  mov    -0x228(%rbp),%rax
  mov    $0x1,%edx
  mov    $0x2,%esi
  mov    $0x7,%edi
  call   *%rax
  jmp    L1037
L3963:
  mov    -0x110(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jne    L1037
  mov    -0x220(%rbp),%rax
  mov    $0x2,%esi
  mov    $0x7,%edi
  call   *%rax
  cmp    $0x1,%eax
  jne    L1037
  mov    -0x228(%rbp),%rax
  mov    $0x0,%edx
  mov    $0x2,%esi
  mov    $0x7,%edi
  call   *%rax
L1037:
  mov    -0x108(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  je     L3705
  mov    -0x100(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  jne    L2836
L3705:
  mov    -0x108(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  je     L1342
  push   $0x3
  push   $0xff
  mov    -0x258(%rbp),%rax
  mov    $0x0,%r9d
  mov    $0x0,%r8d
  mov    $0x12,%ecx
  mov    $0xff,%edx
  mov    $0xff,%esi
  mov    $0xff,%edi
  call   *%rax
  add    $0x10,%rsp
  test   %eax,%eax
  jne    L653
  push   $0x4
  push   $0xff
  mov    -0x258(%rbp),%rax
  mov    $0x0,%r9d
  mov    $0x1e,%r8d
  mov    $0x17,%ecx
  mov    $0xff,%edx
  mov    $0xff,%esi
  mov    $0xff,%edi
  call   *%rax
  add    $0x10,%rsp
  test   %eax,%eax
  je     L1342
L653:
  mov    -0x150(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x3,%eax
  jle    L567
L1342:
  mov    -0x220(%rbp),%rax
  mov    $0x4,%esi
  mov    $0x1,%edi
  call   *%rax
  test   %eax,%eax
  jne    L567
  mov    -0x228(%rbp),%rax
  mov    $0x1,%edx
  mov    $0x4,%esi
  mov    $0x1,%edi
  call   *%rax
L567:
  mov    -0x108(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  je     L1424
  push   $0x3
  push   $0xff
  mov    -0x258(%rbp),%rax
  mov    $0x0,%r9d
  mov    $0x0,%r8d
  mov    $0x12,%ecx
  mov    $0xff,%edx
  mov    $0xff,%esi
  mov    $0xff,%edi
  call   *%rax
  add    $0x10,%rsp
  test   %eax,%eax
  jne    L1230
  push   $0x4
  push   $0xff
  mov    -0x258(%rbp),%rax
  mov    $0x0,%r9d
  mov    $0x1e,%r8d
  mov    $0x17,%ecx
  mov    $0xff,%edx
  mov    $0xff,%esi
  mov    $0xff,%edi
  call   *%rax
  add    $0x10,%rsp
  test   %eax,%eax
  je     L1424
L1230:
  push   $0x3
  push   $0xff
  mov    -0x258(%rbp),%rax
  mov    $0x0,%r9d
  mov    $0x1e,%r8d
  mov    $0x17,%ecx
  mov    $0xff,%edx
  mov    $0xff,%esi
  mov    $0xff,%edi
  call   *%rax
  add    $0x10,%rsp
  test   %eax,%eax
  je     L1424
  push   $0x4
  push   $0xff
  mov    -0x258(%rbp),%rax
  mov    $0x0,%r9d
  mov    $0x0,%r8d
  mov    $0x7,%ecx
  mov    $0xff,%edx
  mov    $0xff,%esi
  mov    $0xff,%edi
  call   *%rax
  add    $0x10,%rsp
  test   %eax,%eax
  je     L1424
  mov    -0x150(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x3,%eax
  jle    L3186
L1424:
  mov    -0x220(%rbp),%rax
  mov    $0x3,%esi
  mov    $0x2,%edi
  call   *%rax
  test   %eax,%eax
  jne    L3186
  mov    -0x228(%rbp),%rax
  mov    $0x1,%edx
  mov    $0x3,%esi
  mov    $0x2,%edi
  call   *%rax
  jmp    L3186
L2836:
  mov    -0x108(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jne    L1152
  mov    -0x100(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jne    L1152
  mov    -0x220(%rbp),%rax
  mov    $0x4,%esi
  mov    $0x1,%edi
  call   *%rax
  cmp    $0x1,%eax
  jne    L2224
  mov    -0x228(%rbp),%rax
  mov    $0x0,%edx
  mov    $0x4,%esi
  mov    $0x1,%edi
  call   *%rax
L2224:
  mov    -0x220(%rbp),%rax
  mov    $0x3,%esi
  mov    $0x2,%edi
  call   *%rax
  cmp    $0x1,%eax
  jne    L1152
  mov    -0x228(%rbp),%rax
  mov    $0x0,%edx
  mov    $0x3,%esi
  mov    $0x2,%edi
  call   *%rax
  jmp    L1152
L3186:
  nop
L1152:
  mov    -0xf0(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  je     L4028
  mov    -0xe8(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  jne    L1913
L4028:
  mov    -0xf0(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  je     L416
  push   $0x3
  push   $0xff
  mov    -0x258(%rbp),%rax
  mov    $0x0,%r9d
  mov    $0x0,%r8d
  mov    $0x7,%ecx
  mov    $0xff,%edx
  mov    $0xff,%esi
  mov    $0xff,%edi
  call   *%rax
  add    $0x10,%rsp
  test   %eax,%eax
  jne    L3966
L416:
  mov    -0x220(%rbp),%rax
  mov    $0x1,%esi
  mov    $0x7,%edi
  call   *%rax
  test   %eax,%eax
  jne    L3966
  mov    -0x228(%rbp),%rax
  mov    $0x1,%edx
  mov    $0x1,%esi
  mov    $0x7,%edi
  call   *%rax
L3966:
  mov    -0x220(%rbp),%rax
  mov    $0x1,%esi
  mov    $0x2,%edi
  call   *%rax
  test   %eax,%eax
  jne    L2705
  mov    -0x228(%rbp),%rax
  mov    $0x1,%edx
  mov    $0x1,%esi
  mov    $0x2,%edi
  call   *%rax
  jmp    L2705
L1913:
  mov    -0xf0(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jne    L2705
  mov    -0xe8(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jne    L2705
  mov    -0x220(%rbp),%rax
  mov    $0x1,%esi
  mov    $0x7,%edi
  call   *%rax
  cmp    $0x1,%eax
  jne    L2816
  mov    -0x228(%rbp),%rax
  mov    $0x0,%edx
  mov    $0x1,%esi
  mov    $0x7,%edi
  call   *%rax
L2816:
  mov    -0x220(%rbp),%rax
  mov    $0x1,%esi
  mov    $0x2,%edi
  call   *%rax
  cmp    $0x1,%eax
  jne    L2705
  mov    -0x228(%rbp),%rax
  mov    $0x0,%edx
  mov    $0x1,%esi
  mov    $0x2,%edi
  call   *%rax
L2705:
  mov    -0xd0(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  jne    L188
  mov    -0x220(%rbp),%rax
  mov    $0x1,%esi
  mov    $0x3,%edi
  call   *%rax
  test   %eax,%eax
  jne    L46
  mov    -0x228(%rbp),%rax
  mov    $0x1,%edx
  mov    $0x1,%esi
  mov    $0x3,%edi
  call   *%rax
  jmp    L46
L188:
  mov    -0xd0(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jne    L46
  mov    -0x220(%rbp),%rax
  mov    $0x1,%esi
  mov    $0x3,%edi
  call   *%rax
  cmp    $0x1,%eax
  jne    L46
  mov    -0x228(%rbp),%rax
  mov    $0x0,%edx
  mov    $0x1,%esi
  mov    $0x3,%edi
  call   *%rax
L46:
  mov    -0xc8(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  jne    L1726
  mov    -0x220(%rbp),%rax
  mov    $0x4,%esi
  mov    $0x7,%edi
  call   *%rax
  test   %eax,%eax
  jne    L3039
  mov    -0x228(%rbp),%rax
  mov    $0x1,%edx
  mov    $0x4,%esi
  mov    $0x7,%edi
  call   *%rax
  jmp    L3039
L1726:
  mov    -0xc8(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jne    L3039
  mov    -0x220(%rbp),%rax
  mov    $0x4,%esi
  mov    $0x7,%edi
  call   *%rax
  cmp    $0x1,%eax
  jne    L3039
  mov    -0x228(%rbp),%rax
  mov    $0x0,%edx
  mov    $0x4,%esi
  mov    $0x7,%edi
  call   *%rax
L3039:
  mov    -0xc0(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  jne    L4191
  mov    -0x220(%rbp),%rax
  mov    $0x2,%esi
  mov    $0x2,%edi
  call   *%rax
  test   %eax,%eax
  jne    L1195
  mov    -0x228(%rbp),%rax
  mov    $0x1,%edx
  mov    $0x2,%esi
  mov    $0x2,%edi
  call   *%rax
  jmp    L1195
L4191:
  mov    -0xc0(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jne    L1195
  mov    -0x220(%rbp),%rax
  mov    $0x2,%esi
  mov    $0x2,%edi
  call   *%rax
  cmp    $0x1,%eax
  jne    L1195
  mov    -0x228(%rbp),%rax
  mov    $0x0,%edx
  mov    $0x2,%esi
  mov    $0x2,%edi
  call   *%rax
L1195:
  mov    -0x148(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  jne    L359
  mov    -0x220(%rbp),%rax
  mov    $0x4,%esi
  mov    $0x2,%edi
  call   *%rax
  test   %eax,%eax
  jne    L2300
  mov    -0x228(%rbp),%rax
  mov    $0x1,%edx
  mov    $0x4,%esi
  mov    $0x2,%edi
  call   *%rax
  jmp    L2300
L359:
  mov    -0x148(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jne    L2300
  mov    -0x220(%rbp),%rax
  mov    $0x4,%esi
  mov    $0x2,%edi
  call   *%rax
  cmp    $0x1,%eax
  jne    L2300
  mov    -0x228(%rbp),%rax
  mov    $0x0,%edx
  mov    $0x4,%esi
  mov    $0x2,%edi
  call   *%rax
L2300:
  mov    -0x160(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  jne    L251
  mov    -0x220(%rbp),%rax
  mov    $0x3,%esi
  mov    $0x7,%edi
  call   *%rax
  test   %eax,%eax
  jne    L1698
  mov    -0x228(%rbp),%rax
  mov    $0x1,%edx
  mov    $0x3,%esi
  mov    $0x7,%edi
  call   *%rax
  jmp    L1698
L251:
  mov    -0x160(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jne    L1698
  mov    -0x220(%rbp),%rax
  mov    $0x3,%esi
  mov    $0x7,%edi
  call   *%rax
  cmp    $0x1,%eax
  jne    L1698
  mov    -0x228(%rbp),%rax
  mov    $0x0,%edx
  mov    $0x3,%esi
  mov    $0x7,%edi
  call   *%rax
L1698:
  mov    -0x158(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  jne    L244
  mov    -0x220(%rbp),%rax
  mov    $0x3,%esi
  mov    $0x1,%edi
  call   *%rax
  test   %eax,%eax
  jne    L4106
  mov    -0x228(%rbp),%rax
  mov    $0x1,%edx
  mov    $0x3,%esi
  mov    $0x1,%edi
  call   *%rax
  jmp    L4106
L244:
  mov    -0x158(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jne    L4106
  mov    -0x220(%rbp),%rax
  mov    $0x3,%esi
  mov    $0x1,%edi
  call   *%rax
  cmp    $0x1,%eax
  jne    L4106
  mov    -0x228(%rbp),%rax
  mov    $0x0,%edx
  mov    $0x3,%esi
  mov    $0x1,%edi
  call   *%rax
L4106:
  mov    -0x30(%rbp),%eax
  test   %eax,%eax
  jle    L3756
  mov    -0x1d8(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x13,%eax
  jle    L1180
  mov    -0x1d8(%rbp),%rax
  movl   $0x0,(%rax)
L1180:
  mov    -0x1d8(%rbp),%rax
  mov    (%rax),%eax
  shl    $0x2,%eax
  add    $0x12d,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x208(%rbp),%rax
  add    %rax,%rdx
  mov    -0x30(%rbp),%eax
  mov    %eax,(%rdx)
  mov    -0x1d8(%rbp),%rax
  mov    (%rax),%eax
  shl    $0x2,%eax
  add    $0x12d,%eax
  cltq
  add    $0x1,%rax
  lea    0x0(,%rax,4),%rdx
  mov    -0x208(%rbp),%rax
  add    %rax,%rdx
  mov    -0x2c(%rbp),%eax
  mov    %eax,(%rdx)
  mov    -0x1d8(%rbp),%rax
  mov    (%rax),%eax
  shl    $0x2,%eax
  add    $0x12d,%eax
  cltq
  add    $0x2,%rax
  lea    0x0(,%rax,4),%rdx
  mov    -0x208(%rbp),%rax
  add    %rax,%rdx
  mov    -0x28(%rbp),%eax
  mov    %eax,(%rdx)
  mov    -0x1d8(%rbp),%rax
  mov    (%rax),%eax
  shl    $0x2,%eax
  add    $0x12d,%eax
  cltq
  add    $0x3,%rax
  lea    0x0(,%rax,4),%rdx
  mov    -0x208(%rbp),%rax
  add    %rax,%rdx
  mov    -0x24(%rbp),%eax
  mov    %eax,(%rdx)
  mov    -0x1d8(%rbp),%rax
  mov    (%rax),%eax
  lea    0x1(%rax),%edx
  mov    -0x1d8(%rbp),%rax
  mov    %edx,(%rax)
L3756:
  mov    -0x1d0(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jne    L3034
  mov    -0x1d0(%rbp),%rax
  movl   $0x1,(%rax)
L3034:
  nop
  mov    -0x8(%rbp),%rax
  sub    %fs:0x28,%rax
  je     L792
  call   <__stack_chk_fail@plt>
L792:
  leave
  ret
```

tool_calls: name: read_data
arguments: tag: D96
type: f32
name: read_data
arguments: tag: D20
type: byte[4]
name: read_data
arguments: tag: D659
type: f64
name: read_data
arguments: tag: D544
type: string
name: read_data
arguments: tag: D590
type: string
name: read_data
arguments: tag: D569
type: string
name: read_data
arguments: tag: D0
type: string
name: read_data
arguments: tag: D315
type: string
name: read_data
arguments: tag: D10
type: string
name: read_data
arguments: tag: D298
type: string
name: read_data
arguments: tag: D423
type: string
name: read_data
arguments: tag: D434
type: string
name: read_data
arguments: tag: D487
type: string
name: read_data
arguments: tag: D345
type: string
name: read_data
arguments: tag: D69
type: f64
name: read_data
arguments: tag: D617
type: f64
name: read_data
arguments: tag: D327
type: byte[4]
name: read_data
arguments: tag: D149
type: byte[4]
name: read_data
arguments: tag: D255
type: byte[4]
name: read_data
arguments: tag: D542
type: byte[4]

tool: D96: 0.0234375

tool: {"D20": [0x00,0x00,0x80,0x3f]}

tool: D659: 0.02

tool: D544: 041F043E044104420430043D043E0432043A04300020043D04300020043E044504400430043D0443

tool: D590: +791........

tool: D569: 0422044004350432043E043304300021002004140432043804360435043D043804350020043200200433043E044104420438043D043D043E0439

tool: D0: 0422044004350432043E043304300021002004140432043804360435043D0438043500200432002004320430043D043D043E0439

tool: D315: 0422044004350432043E043304300021002004140432043804360435043D04380435002004320020043A043E044004380434043E04400435

tool: D10: 0422044004350432043E043304300021002004140432043804360435043D04380435002004320020043A043004310438043D043504420435

tool: D298: 0422044004350432043E043304300021002004140432043804360435043D043804350020043200200441043F0430043B044C043D0435

tool: D423: 0422044004350432043E0433043000210020041F0440043E044204350447043A043000200432002004320430043D043D043E04390020043F043E0434002004320430043D043D043E0439

tool: D434: 0422044004350432043E0433043000210020041F0440043E044204350447043A043000200432002004320430043D043D043E04390020043D0430002004410442043E044F043A0435

tool: D487: 0422044004350432043E0433043000210020041F0440043E044204350447043A04300020043D04300020043A04430445043D0435

tool: D345: 0422044004350432043E043304300021

tool: D69: 0.01

tool: D617: 327.67

tool: {"D327": [0x00,0x00,0x20,0x41]}

tool: {"D149": [0x00,0x00,0x20,0x42]}

tool: {"D255": [0x00,0x00,0xf0,0x41]}

tool: {"D542": [0x00,0x00,0xf8,0x41]}

assistant: ```c
void main(int *pTmpInt, float *pTmpFlt, int(*pInts), float(*pFloats), int(pKeyH), int(pKeyL), int (*pGetNodeVar)(unsigned short dev_addr, unsigned short reg_addr), int (*pSetNodeVar)(unsigned short dev_addr, unsigned short reg_addr, unsigned short val), int (*pGetTimer)(unsigned short TimerNum), int (*pSetTimer)(unsigned short TimerNum, int TimerVal), int (*pReceiveSMS)(const char *smsnum, const char *smstext, int *parInt, float *parFlt), int (*pSendSMS)(const char *smsnum, const char *smstext, int *parInt, float *parFlt), int (*pSendCom2)(const char *TxData, unsigned short TxLen, const char *RxData, unsigned short RxLen), int (*pTimeCmp)(unsigned char date, unsigned char month, unsigned char year, unsigned char hour, unsigned char minute, unsigned char second, unsigned char day, unsigned char act), float (*pSinf)(float _X), float (*pCosf)(float _X), float (*pLogf)(float _X), float (*pExpf)(float _X), float (*pPowf)(float _X1, float _X2), float (*pSqrtf)(float _X)) {
  int put2log[4] = {0, 0, 0, 0};
  int lastlog[4] = {0, 0, 0, 0};
  int *LogCounter = &pInts[300];
  int *GlobalInit = &pInts[97];
  int *Livingroom1ButtonPressed = &pInts[10];
  int *Livingroom2ButtonPressed = &pInts[11];
  int *Kitchen1ButtonPressed = &pInts[12];
  int *Kitchen2ButtonPressed = &pInts[13];
  int *ClosetButtonPressed = &pInts[14];
  int *CorridorButtonPressed = &pInts[15];
  int *BathroomButtonPressed = &pInts[16];
  int *StudyButtonPressed = &pInts[17];
  int *Bedroom1ButtonPressed = &pInts[18];
  int *Bedroom2ButtonPressed = &pInts[19];
  int *Bedroom3ButtonPressed = &pInts[20];
  int *Livingroom1LightSensorWorked = &pInts[80];
  int *CorridorMoveDetected = &pInts[81];
  int *BathroomFloorStatus = &pInts[98];
  int *KitchenFloorStatus = &pInts[99];
  int *GuardStatus = &pInts[100];
  int *BuzzerStatus = &pInts[101];
  int *BathroomFloorEnabled = &pInts[102];
  int *KitchenFloorEnabled = &pInts[103];
  int *Livingroom1LightStatus = &pInts[105];
  int *Livingroom2LightStatus = &pInts[106];
  int *Kitchen1LightStatus = &pInts[107];
  int *Kitchen2LightStatus = &pInts[108];
  int *ClosetLightStatus = &pInts[109];
  int *CorridorLightStatus = &pInts[110];
  int *CorridorLightStatusMove = &pInts[111];
  int *CorridorLightStatusMoveEnabled = &pInts[119];
  int *BathroomLightStatus = &pInts[112];
  int *BathroomLightStatusMove = &pInts[113];
  int *BathroomLightStatusMoveEnabled = &pInts[120];
  int *BathroomVentStatus = &pInts[114];
  int *StudyLightStatus = &pInts[115];
  int *Bedroom1LightStatus = &pInts[116];
  int *Bedroom2LightStatus = &pInts[117];
  int *Bedroom3LightStatus = &pInts[118];
  float *BathroomFloorTempExpected = &pFloats[0];
  float *BathroomFloorTempCurrent = &pFloats[1];
  float *KitchenFloorTempExpected = &pFloats[2];
  float *KitchenFloorTempCurrent = &pFloats[3];
  float *BathroomWaterSum1 = &pFloats[4];
  float *BathroomWaterAvg1 = &pFloats[5];
  float *BathroomWaterCount1 = &pFloats[6];
  float *BathroomWaterSum2 = &pFloats[7];
  float *BathroomWaterAvg2 = &pFloats[8];
  float *BathroomWaterCount2 = &pFloats[9];
  float *KitchenWaterSum = &pFloats[10];
  float *KitchenWaterAvg = &pFloats[11];
  float *KitchenWaterCount = &pFloats[12];
  float *LivingroomLightSum = &pFloats[13];
  float *LivingroomLightAvg = &pFloats[14];
  float *LivingroomLightCount = &pFloats[15];
  int KeyIgor = (pKeyH == 0 && pKeyL == 0) ? 1 : 0;
  int KeyOlga = (pKeyH == 0 && pKeyL == 0) ? 1 : 0;
  int KeyReserve = (pKeyH == 0 && pKeyL == 0) ? 1 : 0;
  if (*LogCounter > 0 && pInts[300] > 0) {
    lastlog[0] = pInts[300 + 1 + (*LogCounter - 1) * 4];
    lastlog[1] = pInts[300 + 1 + (*LogCounter - 1) * 4 + 1];
    lastlog[2] = pInts[300 + 1 + (*LogCounter - 1) * 4 + 2];
    lastlog[3] = pInts[300 + 1 + (*LogCounter - 1) * 4 + 3];
  }
  if ((*GlobalInit) == 0) {
    *CorridorLightStatusMoveEnabled = 1;
    *BathroomLightStatusMoveEnabled = 1;
    *BathroomFloorEnabled = 1;
    *KitchenFloorEnabled = 1;
    pSetTimer(7, 5000);
  }
  if ((pGetNodeVar(1, 10001) == 1) && *Livingroom1LightStatus == 0 && (*Livingroom1ButtonPressed == 0)) {
    *Livingroom1LightStatus = 1;
    *Livingroom1ButtonPressed = 1;
  }
  if ((pGetNodeVar(1, 10001) == 1) && *Livingroom1LightStatus == 1 && (*Livingroom1ButtonPressed == 0)) {
    *Livingroom1LightStatus = 0;
    *Livingroom1ButtonPressed = 1;
  }
  if ((pGetNodeVar(1, 10001) == 1) && *Livingroom2LightStatus == 0 && (*Livingroom2ButtonPressed == 0)) {
    *Livingroom2LightStatus = 1;
    *Livingroom2ButtonPressed = 1;
  }
  if ((pGetNodeVar(1, 10001) == 1) && *Livingroom2LightStatus == 1 && (*Livingroom2ButtonPressed == 0)) {
    *Livingroom2LightStatus = 0;
    *Livingroom2ButtonPressed = 1;
  }
  if ((pGetNodeVar(1, 10002) == 1) && *Kitchen1LightStatus == 0 && (*Kitchen1ButtonPressed == 0)) {
    *Kitchen1LightStatus = 1;
    *Kitchen1ButtonPressed = 1;
  }
  if ((pGetNodeVar(1, 10002) == 1) && *Kitchen1LightStatus == 1 && (*Kitchen1ButtonPressed == 0)) {
    *Kitchen1LightStatus = 0;
    *Kitchen1ButtonPressed = 1;
  }
  if ((pGetNodeVar(1, 10002) == 1) && *Kitchen2LightStatus == 0 && (*Kitchen2ButtonPressed == 0)) {
    *Kitchen2LightStatus = 1;
    *Kitchen2ButtonPressed = 1;
  }
  if ((pGetNodeVar(1, 10002) == 1) && *Kitchen2LightStatus == 1 && (*Kitchen2ButtonPressed == 0)) {
    *Kitchen2LightStatus = 0;
    *Kitchen2ButtonPressed = 1;
  }
  if ((pGetNodeVar(4, 10004) == 1) && *ClosetLightStatus == 0 && (*ClosetButtonPressed == 0)) {
    *ClosetLightStatus = 1;
    *ClosetButtonPressed = 1;
  }
  if ((pGetNodeVar(4, 10004) == 1) && *ClosetLightStatus == 1 && (*ClosetButtonPressed == 0)) {
    *ClosetLightStatus = 0;
    *ClosetButtonPressed = 1;
  }
  if ((pGetNodeVar(1, 10003) == 1) && *CorridorLightStatus == 0 && (*CorridorButtonPressed == 0)) {
    *CorridorLightStatus = 1;
    *CorridorButtonPressed = 1;
  }
  if ((pGetNodeVar(1, 10003) == 1) && *CorridorLightStatus == 1 && (*CorridorButtonPressed == 0)) {
    *CorridorLightStatus = 0;
    *CorridorButtonPressed = 1;
  }
  if ((pGetNodeVar(2, 10001) == 1) && *BathroomLightStatus == 0 && (*BathroomButtonPressed == 0)) {
    *BathroomLightStatus = 1;
    *BathroomButtonPressed = 1;
  }
  if ((pGetNodeVar(2, 10001) == 1) && *BathroomLightStatus == 1 && (*BathroomButtonPressed == 0)) {
    *BathroomLightStatus = 0;
    *BathroomButtonPressed = 1;
  }
  if ((pGetNodeVar(2, 10002) == 1) && *StudyLightStatus == 0 && (*StudyButtonPressed == 0)) {
    *StudyLightStatus = 1;
    *StudyButtonPressed = 1;
  }
  if ((pGetNodeVar(2, 10002) == 1) && *StudyLightStatus == 1 && (*StudyButtonPressed == 0)) {
    *StudyLightStatus = 0;
    *StudyButtonPressed = 1;
  }
  if ((pGetNodeVar(2, 10003) == 1) && *Bedroom1LightStatus == 0 && (*Bedroom1ButtonPressed == 0)) {
    *Bedroom1LightStatus = 1;
    *Bedroom1ButtonPressed = 1;
    pSetTimer(6, 70);
  }
  if ((pGetNodeVar(2, 10003) == 1) && *Bedroom1LightStatus == 1 && (*Bedroom1ButtonPressed == 0)) {
    *Bedroom1LightStatus = 0;
    *Bedroom1ButtonPressed = 1;
    pSetTimer(6, 70);
  }
  if (pGetTimer(6) == 0 && (*Bedroom2LightStatus == 1) && ((*Bedroom2ButtonPressed == 1) || (*Bedroom3ButtonPressed == 1))) {
    *Bedroom1LightStatus = 1;
    pSetTimer(6, -1);
  }
  if (pGetTimer(6) == 0 && (*Bedroom2LightStatus == 0) && ((*Bedroom2ButtonPressed == 1) || (*Bedroom3ButtonPressed == 1))) {
    *Bedroom1LightStatus = 0;
    pSetTimer(6, -1);
  }
  if ((pGetNodeVar(1, 10004) == 1) && *Bedroom2LightStatus == 0 && (*Bedroom2ButtonPressed == 0)) {
    *Bedroom2LightStatus = 1;
    *Bedroom2ButtonPressed = 1;
    pSetTimer(6, 70);
  }
  if ((pGetNodeVar(1, 10004) == 1) && *Bedroom2LightStatus == 1 && (*Bedroom2ButtonPressed == 0)) {
    *Bedroom2LightStatus = 0;
    *Bedroom2ButtonPressed = 1;
    pSetTimer(6, 70);
  }
  if (pGetTimer(6) == 0 && (*Bedroom1LightStatus == 1) && (*Bedroom2LightStatus == 0) && (*Bedroom1ButtonPressed == 1)) {
    *Bedroom2LightStatus = 1;
    pSetTimer(6, -1);
  }
  if (pGetTimer(6) == 0 && (*Bedroom1LightStatus == 0) && (*Bedroom2LightStatus == 1) && (*Bedroom1ButtonPressed == 1)) {
    *Bedroom2LightStatus = 0;
    pSetTimer(6, -1);
  }
  if ((pGetNodeVar(1, 10004) == 1) && *Bedroom3LightStatus == 0 && (*Bedroom3ButtonPressed == 0)) {
    *Bedroom3LightStatus = 1;
    *Bedroom3ButtonPressed = 1;
    pSetTimer(6, 70);
  }
  if ((pGetNodeVar(1, 10004) == 1) && *Bedroom3LightStatus == 1 && (*Bedroom3ButtonPressed == 0)) {
    *Bedroom3LightStatus = 0;
    *Bedroom3ButtonPressed = 1;
    pSetTimer(6, 70);
  }
  if (pGetTimer(6) == 0 && (*Bedroom1LightStatus == 1) && (*Bedroom3LightStatus == 0) && (*Bedroom1ButtonPressed == 1)) {
    *Bedroom3LightStatus = 1;
    pSetTimer(6, -1);
  }
  if (pGetTimer(6) == 0 && (*Bedroom1LightStatus == 0) && (*Bedroom3LightStatus == 1) && (*Bedroom1ButtonPressed == 1)) {
    *Bedroom3LightStatus = 0;
    pSetTimer(6, -1);
  }
  if ((pGetNodeVar(1, 10001) == 0)) {
    *Livingroom1ButtonPressed = 0;
  }
  if ((pGetNodeVar(1, 10001) == 0)) {
    *Livingroom2ButtonPressed = 0;
  }
  if ((pGetNodeVar(1, 10002) == 0)) {
    *Kitchen1ButtonPressed = 0;
  }
  if ((pGetNodeVar(1, 10002) == 0)) {
    *Kitchen2ButtonPressed = 0;
  }
  if ((pGetNodeVar(4, 10004) == 0)) {
    *ClosetButtonPressed = 0;
  }
  if ((pGetNodeVar(1, 10003) == 0)) {
    *CorridorButtonPressed = 0;
  }
  if ((pGetNodeVar(2, 10001) == 0)) {
    *BathroomButtonPressed = 0;
  }
  if ((pGetNodeVar(2, 10002) == 0)) {
    *StudyButtonPressed = 0;
  }
  if ((pGetNodeVar(2, 10003) == 0)) {
    *Bedroom1ButtonPressed = 0;
  }
  if ((pGetNodeVar(1, 10004) == 0)) {
    *Bedroom2ButtonPressed = 0;
  }
  if ((pGetNodeVar(1, 10004) == 0)) {
    *Bedroom3ButtonPressed = 0;
  }
  if (pGetTimer(23) == -1) {
    *LivingroomLightAvg = *LivingroomLightCount > 0 ? *LivingroomLightSum / (*LivingroomLightCount) * 0.0234375 : 0;
    *LivingroomLightSum = 0;
    *LivingroomLightCount = 0;
    pSetTimer(23, 6000);
  } else {
    *LivingroomLightSum += pGetNodeVar(1, 40001);
    (*LivingroomLightCount)++;
  }
  if (pTimeCmp(0xFF, 0xFF, 0xFF, 0, 0, 0, 0xFF, 1) == 0)
    *Livingroom1LightSensorWorked = 0;
  if (pTimeCmp(0xFF, 0xFF, 0xFF, 16, 0, 0, 0xFF, 3) == 0 && *GuardStatus == 0 && *Livingroom1LightSensorWorked == 0 && *LivingroomLightAvg < 0.02) {
    *Livingroom1LightSensorWorked = 1;
    *Livingroom1LightStatus = 1;
  }
  if ((pGetNodeVar(7, 10002) == 0)) {
    pSetTimer(10, 4000);
  }
  if ((pGetNodeVar(7, 10002) == 0) && (*BathroomLightStatusMove == 0) && (*BathroomLightStatusMoveEnabled == 1)) {
    *BathroomLightStatusMove = 1;
  }
  if ((*BathroomLightStatusMove == 1) && ((pGetTimer(10) == 0) || (*BathroomLightStatusMoveEnabled == 0))) {
    *BathroomLightStatusMove = 0;
  }
  if ((pGetNodeVar(7, 10003) == 0)) {
    pSetTimer(11, 3000);
    *CorridorMoveDetected = 1;
  }
  if ((pGetNodeVar(7, 10003) == 0) && (*CorridorLightStatusMove == 0) && (*CorridorLightStatusMoveEnabled == 1)) {
    *CorridorLightStatusMove = 1;
  }
  if ((*CorridorLightStatusMove == 1) && ((pGetTimer(11) == 0) || (*CorridorLightStatusMoveEnabled == 0))) {
    *CorridorLightStatusMove = 0;
  }
  if ((KeyIgor == 1 || KeyOlga == 1 || KeyReserve == 1) && *GuardStatus == 0 && (pGetTimer(0) == -1)) {
    *GuardStatus = 1;
  }
  if (*GuardStatus == 1) {
    if (pGetNodeVar(7, 10001) == 1 && pGetNodeVar(7, 10002) == 1 && pGetNodeVar(3, 10001) == 1 && pGetNodeVar(3, 10002) == 1) {
      pSetTimer(10, -1);
      *Livingroom1LightStatus = 0;
      *Livingroom2LightStatus = 0;
      *Kitchen1LightStatus = 0;
      *Kitchen2LightStatus = 0;
      *ClosetLightStatus = 0;
      *BathroomLightStatus = 0;
      *BathroomLightStatusMove = 0;
      *BathroomVentStatus = 0;
      *StudyLightStatus = 0;
      *Bedroom1LightStatus = 0;
      *Bedroom2LightStatus = 0;
      *Bedroom3LightStatus = 0;
      *GuardStatus = 2;
      pSetTimer(0, 3000);
      pSetTimer(1, 100);
      put2log[0] = 2;
      if (KeyIgor == 1)
        put2log[1] = 1;
      else if (KeyOlga == 1)
        put2log[1] = 2;
      else if (KeyReserve == 1)
        put2log[1] = 3;
      else
        put2log[1] = 0;
    } else {
      *GuardStatus = 0;
      pSetTimer(0, 300);
      pSetTimer(2, 160);
      put2log[0] = 1;
      if (pGetNodeVar(7, 10001) == 0)
        put2log[1] = 1;
      if (pGetNodeVar(7, 10002) == 0)
        put2log[1] = 2;
      if (pGetNodeVar(3, 10001) == 0)
        put2log[1] = 3;
      if (pGetNodeVar(3, 10002) == 0)
        put2log[1] = 4;
    }
  }
  if (pGetTimer(1) == 100)
    *BuzzerStatus = 1;
  if (pGetTimer(1) == 80)
    *BuzzerStatus = 0;
  if (pGetTimer(1) == 60)
    *BuzzerStatus = 1;
  if (pGetTimer(1) == 40)
    *BuzzerStatus = 0;
  if (pGetTimer(1) == 20)
    *BuzzerStatus = 1;
  if (pGetTimer(1) == 0)
    *BuzzerStatus = 0;
  if (pGetTimer(2) == 160)
    *BuzzerStatus = 1;
  if (pGetTimer(2) == 150)
    *BuzzerStatus = 0;
  if (pGetTimer(2) == 130)
    *BuzzerStatus = 1;
  if (pGetTimer(2) == 90)
    *BuzzerStatus = 0;
  if (pGetTimer(2) == 70)
    *BuzzerStatus = 1;
  if (pGetTimer(2) == 60)
    *BuzzerStatus = 0;
  if (pGetTimer(2) == 40)
    *BuzzerStatus = 1;
  if (pGetTimer(2) == 0)
    *BuzzerStatus = 0;
  if ((*GuardStatus == 2) && (pGetTimer(0) == -1)) {
    pSetTimer(11, -1);
    *CorridorLightStatus = 0;
    *CorridorLightStatusMove = 0;
    *GuardStatus = 3;
    pSetTimer(2, 50);
    if (lastlog[0] == 2 && lastlog[1] == 1)
      pSendSMS("+791........", "041F043E044104420430043D043E0432043A04300020043D04300020043E044504400430043D0443", ((void *)0x00000000), ((void *)0x00000000));
    else if (lastlog[0] == 2 && lastlog[1] == 2)
      pSendSMS("+791........", "041F043E044104420430043D043E0432043A04300020043D04300020043E044504400430043D0443", ((void *)0x00000000), ((void *)0x00000000));
    else if (lastlog[0] == 2)
      pSendSMS("+791........", "041F043E044104420430043D043E0432043A04300020043D04300020043E044504400430043D0443", ((void *)0x00000000), ((void *)0x00000000));
  }
  if ((KeyIgor == 1 || KeyOlga == 1 || KeyReserve == 1) && *GuardStatus >= 3) {
    *GuardStatus = 0;
    *BuzzerStatus = 0;
    pSetTimer(0, 300);
    pSetTimer(1, 110);
    put2log[0] = 3;
    if (KeyIgor == 1)
      put2log[1] = 1;
    else if (KeyOlga == 1)
      put2log[1] = 2;
    else if (KeyReserve == 1)
      put2log[1] = 3;
    else
      put2log[1] = 0;
  }
  if ((pGetNodeVar(7, 10001) == 0 || pGetNodeVar(7, 10002) == 0 || pGetNodeVar(7, 10003) == 0 || pGetNodeVar(3, 10001) == 0 || pGetNodeVar(3, 10002) == 0) && pGetTimer(0) == -1 && *GuardStatus == 3) {
    *GuardStatus = 4;
    pSetTimer(0, 1000);
    put2log[0] = 5;
    if (pGetNodeVar(7, 10001) == 0)
      put2log[1] = 1;
    if (pGetNodeVar(7, 10002) == 0)
      put2log[1] = 2;
    if (pGetNodeVar(7, 10003) == 0)
      put2log[1] = 3;
    if (pGetNodeVar(3, 10001) == 0)
      put2log[1] = 4;
    if (pGetNodeVar(3, 10002) == 0)
      put2log[1] = 5;
  }
  if (pGetNodeVar(4, 10001) == 1 || pGetNodeVar(4, 10002) == 1 || pGetNodeVar(4, 10003) == 1) {
    *GuardStatus = 4;
    pSetTimer(0, 1000);
    put2log[0] = 5;
    if (pGetNodeVar(4, 10002) == 1)
      put2log[1] = 6;
    if (pGetNodeVar(4, 10001) == 1)
      put2log[1] = 7;
    if (pGetNodeVar(4, 10003) == 1)
      put2log[1] = 8;
  }
  if ((pGetTimer(0) == -1) && (*GuardStatus == 4)) {
    *GuardStatus = 5;
    put2log[0] = 4;
    if (pGetNodeVar(7, 10001) == 0)
      put2log[1] = 1;
    else if (pGetNodeVar(7, 10002) == 0)
      put2log[1] = 2;
    else if (pGetNodeVar(7, 10003) == 0)
      put2log[1] = 3;
    else if (pGetNodeVar(3, 10001) == 0)
      put2log[1] = 4;
    else if (pGetNodeVar(3, 10002) == 0)
      put2log[1] = 5;
    else if (pGetNodeVar(4, 10002) == 1)
      put2log[1] = 6;
    else if (pGetNodeVar(4, 10001) == 1)
      put2log[1] = 7;
    else if (pGetNodeVar(4, 10003) == 1)
      put2log[1] = 8;
    else if (lastlog[0] == 5)
      put2log[1] = lastlog[1];
  }
  if ((pGetTimer(0) == -1) && (*GuardStatus == 5)) {
    pSetTimer(0, 120000);
  }
  if ((pGetTimer(0) == 119999) && (*GuardStatus == 5)) {
    if ((lastlog[0] == 4 || lastlog[0] == 5) && lastlog[1] == 1) {
      pSendSMS("+791........", "0422044004350432043E043304300021002004140432043804360435043D043804350020043200200433043E044104420438043D043D043E0439", ((void *)0x00000000), ((void *)0x00000000));
    } else if ((lastlog[0] == 4 || lastlog[0] == 5) && lastlog[1] == 2) {
      pSendSMS("+791........", "0422044004350432043E043304300021002004140432043804360435043D0438043500200432002004320430043D043D043E0439", ((void *)0x00000000), ((void *)0x00000000));
    } else if ((lastlog[0] == 4 || lastlog[0] == 5) && lastlog[1] == 3) {
      pSendSMS("+791........", "0422044004350432043E043304300021002004140432043804360435043D04380435002004320020043A043E044004380434043E04400435", ((void *)0x00000000), ((void *)0x00000000));
    } else if ((lastlog[0] == 4 || lastlog[0] == 5) && lastlog[1] == 4) {
      pSendSMS("+791........", "0422044004350432043E043304300021002004140432043804360435043D04380435002004320020043A043004310438043D043504420435", ((void *)0x00000000), ((void *)0x00000000));
    } else if ((lastlog[0] == 4 || lastlog[0] == 5) && lastlog[1] == 5) {
      pSendSMS("+791........", "0422044004350432043E043304300021002004140432043804360435043D043804350020043200200441043F0430043B044C043D0435", ((void *)0x00000000), ((void *)0x00000000));
    } else if ((lastlog[0] == 4 || lastlog[0] == 5) && lastlog[1] == 6) {
      pSendSMS("+791........", "0422044004350432043E0433043000210020041F0440043E044204350447043A043000200432002004320430043D043D043E04390020043F043E0434002004320430043D043D043E0439", ((void *)0x00000000), ((void *)0x00000000));
    } else if ((lastlog[0] == 4 || lastlog[0] == 5) && lastlog[1] == 7) {
      pSendSMS("+791........", "0422044004350432043E0433043000210020041F0440043E044204350447043A043000200432002004320430043D043D043E04390020043D0430002004410442043E044F043A0435", ((void *)0x00000000), ((void *)0x00000000));
    } else if ((lastlog[0] == 4 || lastlog[0] == 5) && lastlog[1] == 8) {
      pSendSMS("+791........", "0422044004350432043E0433043000210020041F0440043E044204350447043A04300020043D04300020043A04430445043D0435", ((void *)0x00000000), ((void *)0x00000000));
    } else if (lastlog[0] == 4 || lastlog[0] == 5) {
      pSendSMS("+791........", "0422044004350432043E043304300021", ((void *)0x00000000), ((void *)0x00000000));
    }
  }
  if ((pGetTimer(0) == 116999) && (*GuardStatus == 5)) {
    if ((lastlog[0] == 4 || lastlog[0] == 5) && lastlog[1] == 1) {
      pSendSMS("+791........", "0422044004350432043E043304300021002004140432043804360435043D043804350020043200200433043E044104420438043D043D043E0439", ((void *)0x00000000), ((void *)0x00000000));
    } else if ((lastlog[0] == 4 || lastlog[0] == 5) && lastlog[1] == 2) {
      pSendSMS("+791........", "0422044004350432043E043304300021002004140432043804360435043D0438043500200432002004320430043D043D043E0439", ((void *)0x00000000), ((void *)0x00000000));
    } else if ((lastlog[0] == 4 || lastlog[0] == 5) && lastlog[1] == 3) {
      pSendSMS("+791........", "0422044004350432043E043304300021002004140432043804360435043D04380435002004320020043A043E044004380434043E04400435", ((void *)0x00000000), ((void *)0x00000000));
    } else if ((lastlog[0] == 4 || lastlog[0] == 5) && lastlog[1] == 4) {
      pSendSMS("+791........", "0422044004350432043E043304300021002004140432043804360435043D04380435002004320020043A043004310438043D043504420435", ((void *)0x00000000), ((void *)0x00000000));
    } else if ((lastlog[0] == 4 || lastlog[0] == 5) && lastlog[1] == 5) {
      pSendSMS("+791........", "0422044004350432043E043304300021002004140432043804360435043D043804350020043200200441043F0430043B044C043D0435", ((void *)0x00000000), ((void *)0x00000000));
    } else if ((lastlog[0] == 4 || lastlog[0] == 5) && lastlog[1] == 6) {
      pSendSMS("+791........", "0422044004350432043E0433043000210020041F0440043E044204350447043A043000200432002004320430043D043D043E04390020043F043E0434002004320430043D043D043E0439", ((void *)0x00000000), ((void *)0x00000000));
    } else if ((lastlog[0] == 4 || lastlog[0] == 5) && lastlog[1] == 7) {
      pSendSMS("+791........", "0422044004350432043E0433043000210020041F0440043E044204350447043A043000200432002004320430043D043D043E04390020043D0430002004410442043E044F043A0435", ((void *)0x00000000), ((void *)0x00000000));
    } else if ((lastlog[0] == 4 || lastlog[0] == 5) && lastlog[1] == 8) {
      pSendSMS("+791........", "0422044004350432043E0433043000210020041F0440043E044204350447043A04300020043D04300020043A04430445043D0435", ((void *)0x00000000), ((void *)0x00000000));
    } else if (lastlog[0] == 4 || lastlog[0] == 5) {
      pSendSMS("+791........", "0422044004350432043E043304300021", ((void *)0x00000000), ((void *)0x00000000));
    }
  }
  if (*GuardStatus == 4) {
    if (pGetTimer(0) % 100 == 0)
      *BuzzerStatus = 1;
    if ((pGetTimer(0) - 50) % 100 == 0)
      *BuzzerStatus = 0;
  }
  if (*GuardStatus == 5 && pGetTimer(0) > 114000) {
    if (pGetTimer(0) % 300 == 0)
      *BuzzerStatus = 1;
    if ((pGetTimer(0) - 100) % 300 == 0)
      *BuzzerStatus = 0;
  } else if (*GuardStatus == 5 && *BuzzerStatus == 1) {
    *BuzzerStatus = 0;
  }
  if (pGetTimer(20) == -1) {
    *BathroomWaterAvg1 = *BathroomWaterCount1 > 0 ? *BathroomWaterSum1 / (*BathroomWaterCount1) * 0.0234375 : 0;
    *BathroomWaterSum1 = 0;
    *BathroomWaterCount1 = 0;
    pSetTimer(20, 6000);
  } else {
    *BathroomWaterSum1 += pGetNodeVar(2, 40002);
    (*BathroomWaterCount1)++;
  }
  if (pGetTimer(21) == -1) {
    *BathroomWaterAvg2 = *BathroomWaterCount2 > 0 ? *BathroomWaterSum2 / (*BathroomWaterCount2) * 0.0234375 : 0;
    *BathroomWaterSum2 = 0;
    *BathroomWaterCount2 = 0;
    pSetTimer(21, 6000);
  } else {
    *BathroomWaterSum2 += pGetNodeVar(2, 40003);
    (*BathroomWaterCount2)++;
  }
  if (pGetTimer(22) == -1) {
    *KitchenWaterAvg = *KitchenWaterCount > 0 ? *KitchenWaterSum / (*KitchenWaterCount) * 0.0234375 : 0;
    *KitchenWaterSum = 0;
    *KitchenWaterCount = 0;
    pSetTimer(22, 6000);
  } else {
    *KitchenWaterSum += pGetNodeVar(7, 40001);
    (*KitchenWaterCount)++;
  }
  *BathroomFloorTempCurrent = pGetNodeVar(5, 40001) * 0.01 - 327.67;
  if (*BathroomFloorTempCurrent <= 0 && pGetTimer(7) == 0)
    *BathroomFloorEnabled = 0;
  if (*BathroomFloorTempExpected < 10 || *BathroomFloorTempExpected > 40) {
    *BathroomFloorTempExpected = 30;
  }
  if (*BathroomFloorTempCurrent < *BathroomFloorTempExpected - 1 && *BathroomFloorEnabled == 1) {
    *BathroomFloorStatus = 1;
  }
  if (*BathroomFloorTempCurrent > *BathroomFloorTempExpected + 1 && *BathroomFloorEnabled == 1) {
    *BathroomFloorStatus = 0;
  }
  if (*BathroomFloorEnabled == 0) {
    *BathroomFloorStatus = 0;
  }
  *KitchenFloorTempCurrent = pGetNodeVar(6, 40001) * 0.01 - 327.67;
  if (*KitchenFloorTempCurrent < 10 && pGetTimer(7) == 0)
    *KitchenFloorEnabled = 0;
  if (*KitchenFloorTempExpected < 10 || *KitchenFloorTempExpected > 40) {
    *KitchenFloorTempExpected = 31;
  }
  if (*KitchenFloorTempCurrent < *KitchenFloorTempExpected - 1 && *KitchenFloorEnabled == 1) {
    *KitchenFloorStatus = 1;
  }
  if (*KitchenFloorTempCurrent > *KitchenFloorTempExpected + 1 && *KitchenFloorEnabled == 1) {
    *KitchenFloorStatus = 0;
  }
  if (*KitchenFloorEnabled == 0) {
    *KitchenFloorStatus = 0;
  }
  if (*Livingroom1LightStatus == 1) {
    if (pGetNodeVar(1, 1) == 0) {
      pSetNodeVar(1, 1, 1);
    }
  } else if (*Livingroom1LightStatus == 0) {
    if (pGetNodeVar(1, 1) == 1)
      pSetNodeVar(1, 1, 0);
  }
  if (*Kitchen1LightStatus == 1) {
    if (pGetNodeVar(1, 2) == 0)
      pSetNodeVar(1, 2, 1);
  } else if (*Kitchen1LightStatus == 0) {
    if (pGetNodeVar(1, 2) == 1)
      pSetNodeVar(1, 2, 0);
  }
  if (*ClosetLightStatus == 1) {
    if (pGetNodeVar(7, 2) == 0)
      pSetNodeVar(7, 2, 1);
  } else if (*ClosetLightStatus == 0) {
    if (pGetNodeVar(7, 2) == 1)
      pSetNodeVar(7, 2, 0);
  }
  if (*CorridorLightStatus == 1 || *CorridorLightStatusMove == 1) {
    if ((*CorridorLightStatus == 1 || pTimeCmp(0xFF, 0xFF, 0xFF, 18, 0, 0, 0xFF, 3) == 0 && pTimeCmp(0xFF, 0xFF, 0xFF, 23, 30, 0, 0xFF, 4) == 0 || *GuardStatus > 3) && pGetNodeVar(1, 4) == 0)
      pSetNodeVar(1, 4, 1);
    if ((*CorridorLightStatus == 1 || pTimeCmp(0xFF, 0xFF, 0xFF, 18, 0, 0, 0xFF, 3) == 0 && pTimeCmp(0xFF, 0xFF, 0xFF, 23, 30, 0, 0xFF, 4) == 0 || pTimeCmp(0xFF, 0xFF, 0xFF, 23, 30, 0, 0xFF, 3) == 0 || pTimeCmp(0xFF, 0xFF, 0xFF, 7, 0, 0, 0xFF, 4) == 0 || *GuardStatus > 3) && pGetNodeVar(2, 3) == 0)
      pSetNodeVar(2, 3, 1);
  } else if (*CorridorLightStatus == 0 && *CorridorLightStatusMove == 0) {
    if (pGetNodeVar(1, 4) == 1)
      pSetNodeVar(1, 4, 0);
    if (pGetNodeVar(2, 3) == 1)
      pSetNodeVar(2, 3, 0);
  }
  if (*BathroomLightStatus == 1 || *BathroomLightStatusMove == 1) {
    if ((*BathroomLightStatus == 1 || pTimeCmp(0xFF, 0xFF, 0xFF, 7, 0, 0, 0xFF, 3) == 0) && pGetNodeVar(7, 1) == 0)
      pSetNodeVar(7, 1, 1);
    if (pGetNodeVar(2, 1) == 0)
      pSetNodeVar(2, 1, 1);
  } else if (*BathroomLightStatus == 0 && *BathroomLightStatusMove == 0) {
    if (pGetNodeVar(7, 1) == 1)
      pSetNodeVar(7, 1, 0);
    if (pGetNodeVar(2, 1) == 1)
      pSetNodeVar(2, 1, 0);
  }
  if (*StudyLightStatus == 1) {
    if (pGetNodeVar(3, 1) == 0)
      pSetNodeVar(3, 1, 1);
  } else if (*StudyLightStatus == 0) {
    if (pGetNodeVar(3, 1) == 1)
      pSetNodeVar(3, 1, 0);
  }
  if (*Bedroom1LightStatus == 1) {
    if (pGetNodeVar(7, 4) == 0)
      pSetNodeVar(7, 4, 1);
  } else if (*Bedroom1LightStatus == 0) {
    if (pGetNodeVar(7, 4) == 1)
      pSetNodeVar(7, 4, 0);
  }
  if (*Bedroom2LightStatus == 1) {
    if (pGetNodeVar(2, 2) == 0)
      pSetNodeVar(2, 2, 1);
  } else if (*Bedroom2LightStatus == 0) {
    if (pGetNodeVar(2, 2) == 1)
      pSetNodeVar(2, 2, 0);
  }
  if (*BuzzerStatus == 1) {
    if (pGetNodeVar(2, 4) == 0)
      pSetNodeVar(2, 4, 1);
  } else if (*BuzzerStatus == 0) {
    if (pGetNodeVar(2, 4) == 1)
      pSetNodeVar(2, 4, 0);
  }
  if (*BathroomFloorStatus == 1) {
    if (pGetNodeVar(7, 3) == 0)
      pSetNodeVar(7, 3, 1);
  } else if (*BathroomFloorStatus == 0) {
    if (pGetNodeVar(7, 3) == 1)
      pSetNodeVar(7, 3, 0);
  }
  if (*KitchenFloorStatus == 1) {
    if (pGetNodeVar(1, 3) == 0)
      pSetNodeVar(1, 3, 1);
  } else if (*KitchenFloorStatus == 0) {
    if (pGetNodeVar(1, 3) == 1)
      pSetNodeVar(1, 3, 0);
  }
  if (put2log[0] > 0) {
    if (*LogCounter >= 20) {
      *LogCounter = 0;
    }
    pInts[300 + 1 + *LogCounter * 4] = put2log[0];
    pInts[300 + 1 + *LogCounter * 4 + 1] = put2log[1];
    pInts[300 + 1 + *LogCounter * 4 + 2] = put2log[2];
    pInts[300 + 1 + *LogCounter * 4 + 3] = put2log[3];
    *LogCounter = *LogCounter + 1;
  }
  if ((*GlobalInit) == 0) {
    *GlobalInit = 1;
  }
}
```