user: What would the C source look like for the assembly code provided here?

```asm
<main>:
  endbr64
  push   %r15
  or     %r9d,%r8d
  push   %r14
  push   %r13
  mov    %rcx,%r13
  push   %r12
  push   %rbp
  push   %rbx
  mov    %rdx,%rbx
  sub    $0x28,%rsp
  mov    0x4b0(%rdx),%eax
  mov    0x60(%rsp),%rbp
  mov    0x70(%rsp),%r12
  mov    %r8d,0x14(%rsp)
  mov    0x78(%rsp),%r15
  test   %eax,%eax
  jle    L1748
  lea    -0x4(,%rax,4),%eax
  lea    0x12d(%rax),%edx
  cltq
  movslq %edx,%rdx
  mov    0x4b8(%rbx,%rax,4),%eax
  mov    (%rbx,%rdx,4),%ecx
  mov    %eax,0x18(%rsp)
  mov    %ecx,0x1c(%rsp)
L560:
  mov    0x184(%rbx),%eax
  test   %eax,%eax
  jne    L2698
  mov    D196(%rip),%rax
  mov    $0x1388,%esi
  mov    $0x7,%edi
  mov    %rax,0x1dc(%rbx)
  mov    %rax,0x198(%rbx)
  call   *%r15
L2698:
  mov    $0x2711,%esi
  mov    $0x1,%edi
  call   *%rbp
  cmp    $0x1,%eax
  je     L181
L3581:
  mov    $0x2711,%esi
  mov    $0x1,%edi
  call   *%rbp
  cmp    $0x1,%eax
  je     L1791
L2979:
  mov    $0x2711,%esi
  mov    $0x1,%edi
  call   *%rbp
  cmp    $0x1,%eax
  je     L3477
L318:
  mov    $0x2711,%esi
  mov    $0x1,%edi
  call   *%rbp
  cmp    $0x1,%eax
  je     L443
L1711:
  mov    $0x2712,%esi
  mov    $0x1,%edi
  call   *%rbp
  cmp    $0x1,%eax
  je     L3546
L1408:
  mov    $0x2712,%esi
  mov    $0x1,%edi
  call   *%rbp
  cmp    $0x1,%eax
  je     L321
L542:
  mov    $0x2712,%esi
  mov    $0x1,%edi
  call   *%rbp
  cmp    $0x1,%eax
  je     L2899
L1076:
  mov    $0x2712,%esi
  mov    $0x1,%edi
  call   *%rbp
  cmp    $0x1,%eax
  je     L3973
L1562:
  mov    $0x2714,%esi
  mov    $0x4,%edi
  call   *%rbp
  cmp    $0x1,%eax
  je     L445
L1009:
  mov    $0x2714,%esi
  mov    $0x4,%edi
  call   *%rbp
  cmp    $0x1,%eax
  je     L3837
L1108:
  mov    $0x2713,%esi
  mov    $0x1,%edi
  call   *%rbp
  cmp    $0x1,%eax
  je     L3026
L2466:
  mov    $0x2713,%esi
  mov    $0x1,%edi
  call   *%rbp
  cmp    $0x1,%eax
  je     L2590
L3845:
  mov    $0x2711,%esi
  mov    $0x2,%edi
  call   *%rbp
  cmp    $0x1,%eax
  je     L2520
L3609:
  mov    $0x2711,%esi
  mov    $0x2,%edi
  call   *%rbp
  cmp    $0x1,%eax
  je     L3333
L397:
  mov    $0x2712,%esi
  mov    $0x2,%edi
  call   *%rbp
  cmp    $0x1,%eax
  je     L3047
L3065:
  mov    $0x2712,%esi
  mov    $0x2,%edi
  call   *%rbp
  cmp    $0x1,%eax
  je     L3745
L330:
  mov    $0x2713,%esi
  mov    $0x2,%edi
  call   *%rbp
  cmp    $0x1,%eax
  je     L2703
L2630:
  mov    $0x2713,%esi
  mov    $0x2,%edi
  call   *%rbp
  cmp    $0x1,%eax
  je     L2129
L1148:
  mov    $0x6,%edi
  call   *%r12
  test   %eax,%eax
  jne    L2758
  cmpl   $0x1,0x1d4(%rbx)
  je     L2987
L2758:
  mov    $0x6,%edi
  call   *%r12
  test   %eax,%eax
  jne    L3806
  cmpl   $0x0,0x1d4(%rbx)
  je     L1773
L3806:
  mov    $0x2714,%esi
  mov    $0x1,%edi
  call   *%rbp
  cmp    $0x1,%eax
  je     L110
L3962:
  mov    $0x2714,%esi
  mov    $0x1,%edi
  call   *%rbp
  cmp    $0x1,%eax
  je     L275
L2517:
  mov    $0x6,%edi
  call   *%r12
  test   %eax,%eax
  jne    L2000
  cmpl   $0x1,0x1d0(%rbx)
  je     L3935
L2000:
  mov    $0x6,%edi
  call   *%r12
  test   %eax,%eax
  jne    L2718
  cmpl   $0x0,0x1d0(%rbx)
  je     L2474
L2718:
  mov    $0x2714,%esi
  mov    $0x1,%edi
  call   *%rbp
  cmp    $0x1,%eax
  je     L1257
L1749:
  mov    $0x2714,%esi
  mov    $0x1,%edi
  call   *%rbp
  cmp    $0x1,%eax
  je     L3381
L2388:
  mov    $0x6,%edi
  call   *%r12
  test   %eax,%eax
  jne    L2540
  cmpl   $0x1,0x1d0(%rbx)
  je     L2430
L2540:
  mov    $0x6,%edi
  call   *%r12
  test   %eax,%eax
  jne    L3412
  cmpl   $0x0,0x1d0(%rbx)
  je     L3177
L3412:
  mov    $0x2711,%esi
  mov    $0x1,%edi
  call   *%rbp
  test   %eax,%eax
  jne    L3509
  movl   $0x0,0x28(%rbx)
L3509:
  mov    $0x2711,%esi
  mov    $0x1,%edi
  call   *%rbp
  test   %eax,%eax
  jne    L3850
  movl   $0x0,0x2c(%rbx)
L3850:
  mov    $0x2712,%esi
  mov    $0x1,%edi
  call   *%rbp
  test   %eax,%eax
  jne    L2654
  movl   $0x0,0x30(%rbx)
L2654:
  mov    $0x2712,%esi
  mov    $0x1,%edi
  call   *%rbp
  test   %eax,%eax
  jne    L902
  movl   $0x0,0x34(%rbx)
L902:
  mov    $0x2714,%esi
  mov    $0x4,%edi
  call   *%rbp
  test   %eax,%eax
  jne    L1038
  movl   $0x0,0x38(%rbx)
L1038:
  mov    $0x2713,%esi
  mov    $0x1,%edi
  call   *%rbp
  test   %eax,%eax
  jne    L3119
  movl   $0x0,0x3c(%rbx)
L3119:
  mov    $0x2711,%esi
  mov    $0x2,%edi
  call   *%rbp
  test   %eax,%eax
  jne    L3852
  movl   $0x0,0x40(%rbx)
L3852:
  mov    $0x2712,%esi
  mov    $0x2,%edi
  call   *%rbp
  test   %eax,%eax
  jne    L3395
  movl   $0x0,0x44(%rbx)
L3395:
  mov    $0x2713,%esi
  mov    $0x2,%edi
  call   *%rbp
  test   %eax,%eax
  jne    L1790
  movl   $0x0,0x48(%rbx)
L1790:
  mov    $0x2714,%esi
  mov    $0x1,%edi
  call   *%rbp
  test   %eax,%eax
  jne    L3464
  movl   $0x0,0x4c(%rbx)
L3464:
  mov    $0x2714,%esi
  mov    $0x1,%edi
  call   *%rbp
  test   %eax,%eax
  jne    L1611
  movl   $0x0,0x50(%rbx)
L1611:
  mov    $0x17,%edi
  call   *%r12
  cmp    $0xffffffff,%eax
  je     L2518
  mov    $0x9c41,%esi
  mov    $0x1,%edi
  call   *%rbp
  pxor   %xmm0,%xmm0
  pxor   %xmm7,%xmm7
  cvtsi2ss %eax,%xmm0
  addss  0x34(%r13),%xmm0
  movss  %xmm7,0xc(%rsp)
  movss  %xmm0,0x34(%r13)
  movss  D130(%rip),%xmm0
  addss  0x3c(%r13),%xmm0
  movss  %xmm0,0x3c(%r13)
L3859:
  push   $0x1
  xor    %r9d,%r9d
  xor    %r8d,%r8d
  xor    %ecx,%ecx
  push   $0xff
  mov    $0xff,%edx
  mov    $0xff,%esi
  mov    $0xff,%edi
  call   *0xa8(%rsp)
  pop    %r11
  pop    %r14
  test   %eax,%eax
  jne    L2928
  movl   $0x0,0x140(%rbx)
L2928:
  push   $0x3
  xor    %r9d,%r9d
  xor    %r8d,%r8d
  mov    $0x10,%ecx
  push   $0xff
  mov    $0xff,%edx
  mov    $0xff,%esi
  mov    $0xff,%edi
  call   *0xa8(%rsp)
  pop    %r9
  pop    %r10
  test   %eax,%eax
  jne    L142
  cmpl   $0x0,0x190(%rbx)
  je     L3934
L142:
  mov    $0x2712,%esi
  mov    $0x7,%edi
  call   *%rbp
  test   %eax,%eax
  jne    L13
  mov    $0xfa0,%esi
  mov    $0xa,%edi
  call   *%r15
L13:
  mov    $0x2712,%esi
  mov    $0x7,%edi
  call   *%rbp
  test   %eax,%eax
  jne    L2394
  cmpl   $0x0,0x1c4(%rbx)
  jne    L2394
  cmpl   $0x1,0x1e0(%rbx)
  je     L950
  nopl   0x0(%rax)
L1091:
  mov    $0x2713,%esi
  mov    $0x7,%edi
  call   *%rbp
  test   %eax,%eax
  jne    L838
  mov    $0xbb8,%esi
  mov    $0xb,%edi
  call   *%r15
  movl   $0x1,0x144(%rbx)
L838:
  mov    $0x2713,%esi
  mov    $0x7,%edi
  call   *%rbp
  test   %eax,%eax
  jne    L2705
  cmpl   $0x0,0x1bc(%rbx)
  jne    L2705
  cmpl   $0x1,0x1dc(%rbx)
  je     L2027
  nopl   (%rax)
L3981:
  mov    0x14(%rsp),%eax
  or     0x190(%rbx),%eax
  jne    L1309
  xor    %edi,%edi
  call   *%r12
  add    $0x1,%eax
  je     L2116
L1309:
  xor    %r14d,%r14d
  cmpl   $0x1,0x190(%rbx)
  movl   $0x0,0x10(%rsp)
  je     L2211
L2334:
  mov    $0x1,%edi
  call   *%r12
  cmp    $0x64,%eax
  jne    L2790
  movl   $0x1,0x194(%rbx)
L2790:
  mov    $0x1,%edi
  call   *%r12
  cmp    $0x50,%eax
  jne    L2778
  movl   $0x0,0x194(%rbx)
L2778:
  mov    $0x1,%edi
  call   *%r12
  cmp    $0x3c,%eax
  jne    L1123
  movl   $0x1,0x194(%rbx)
L1123:
  mov    $0x1,%edi
  call   *%r12
  cmp    $0x28,%eax
  jne    L2952
  movl   $0x0,0x194(%rbx)
L2952:
  mov    $0x1,%edi
  call   *%r12
  cmp    $0x14,%eax
  jne    L317
  movl   $0x1,0x194(%rbx)
L317:
  mov    $0x1,%edi
  call   *%r12
  test   %eax,%eax
  jne    L2998
  movl   $0x0,0x194(%rbx)
L2998:
  mov    $0x2,%edi
  call   *%r12
  cmp    $0xa0,%eax
  jne    L773
  movl   $0x1,0x194(%rbx)
L773:
  mov    $0x2,%edi
  call   *%r12
  cmp    $0x96,%eax
  jne    L2289
  movl   $0x0,0x194(%rbx)
L2289:
  mov    $0x2,%edi
  call   *%r12
  cmp    $0x82,%eax
  jne    L829
  movl   $0x1,0x194(%rbx)
L829:
  mov    $0x2,%edi
  call   *%r12
  cmp    $0x5a,%eax
  jne    L2153
  movl   $0x0,0x194(%rbx)
L2153:
  mov    $0x2,%edi
  call   *%r12
  cmp    $0x46,%eax
  jne    L1852
  movl   $0x1,0x194(%rbx)
L1852:
  mov    $0x2,%edi
  call   *%r12
  cmp    $0x3c,%eax
  jne    L1154
  movl   $0x0,0x194(%rbx)
L1154:
  mov    $0x2,%edi
  call   *%r12
  cmp    $0x28,%eax
  jne    L3963
  movl   $0x1,0x194(%rbx)
L3963:
  mov    $0x2,%edi
  call   *%r12
  test   %eax,%eax
  jne    L2096
  movl   $0x0,0x194(%rbx)
L2096:
  cmpl   $0x2,0x190(%rbx)
  je     L3285
L3126:
  mov    0x14(%rsp),%r8d
  test   %r8d,%r8d
  jne    L2243
  cmpl   $0x2,0x190(%rbx)
  jg     L1659
L2243:
  mov    $0x2711,%esi
  mov    $0x7,%edi
  call   *%rbp
  test   %eax,%eax
  je     L1156
  mov    $0x2712,%esi
  mov    $0x7,%edi
  call   *%rbp
  test   %eax,%eax
  jne    L654
L1156:
  xor    %edi,%edi
  call   *%r12
  cmp    $0xffffffff,%eax
  je     L1830
L2803:
  mov    $0x2711,%esi
  mov    $0x4,%edi
  call   *%rbp
  cmp    $0x1,%eax
  je     L238
  mov    $0x2712,%esi
  mov    $0x4,%edi
  call   *%rbp
  sub    $0x1,%eax
  je     L238
  mov    $0x2713,%esi
  mov    $0x4,%edi
  call   *%rbp
  sub    $0x1,%eax
  jne    L735
L238:
  xor    %edi,%edi
  mov    $0x3e8,%esi
  movl   $0x4,0x190(%rbx)
  call   *%r15
  mov    $0x2712,%esi
  mov    $0x4,%edi
  call   *%rbp
  mov    $0x2711,%esi
  mov    $0x4,%edi
  cmp    $0x1,%eax
  mov    $0x6,%eax
  cmove  %eax,%r14d
  call   *%rbp
  mov    $0x2713,%esi
  mov    $0x4,%edi
  cmp    $0x1,%eax
  mov    $0x7,%eax
  cmove  %eax,%r14d
  call   *%rbp
  movl   $0x5,0x10(%rsp)
  cmp    $0x1,%eax
  mov    $0x8,%eax
  cmove  %eax,%r14d
L735:
  xor    %edi,%edi
  call   *%r12
  mov    0x10(%rsp),%ecx
  mov    %ecx,0x14(%rsp)
  cmp    $0xffffffff,%eax
  je     L3758
L3000:
  xor    %edi,%edi
  call   *%r12
  cmp    $0xffffffff,%eax
  je     L2781
L179:
  xor    %edi,%edi
  call   *%r12
  cmp    $0x1d4bf,%eax
  je     L2450
L1035:
  xor    %edi,%edi
  call   *%r12
  cmp    $0x1c907,%eax
  je     L895
L3390:
  cmpl   $0x4,0x190(%rbx)
  je     L2815
L2472:
  cmpl   $0x5,0x190(%rbx)
  je     L460
L3874:
  mov    $0x14,%edi
  call   *%r12
  cmp    $0xffffffff,%eax
  je     L3054
  mov    $0x9c42,%esi
  mov    $0x2,%edi
  call   *%rbp
  pxor   %xmm0,%xmm0
  cvtsi2ss %eax,%xmm0
  addss  0x10(%r13),%xmm0
  movss  %xmm0,0x10(%r13)
  movss  D130(%rip),%xmm0
  addss  0x18(%r13),%xmm0
  movss  %xmm0,0x18(%r13)
L3724:
  mov    $0x15,%edi
  call   *%r12
  cmp    $0xffffffff,%eax
  je     L946
  mov    $0x9c43,%esi
  mov    $0x2,%edi
  call   *%rbp
  pxor   %xmm0,%xmm0
  cvtsi2ss %eax,%xmm0
  addss  0x1c(%r13),%xmm0
  movss  %xmm0,0x1c(%r13)
  movss  D130(%rip),%xmm0
  addss  0x24(%r13),%xmm0
  movss  %xmm0,0x24(%r13)
L912:
  mov    $0x16,%edi
  call   *%r12
  cmp    $0xffffffff,%eax
  je     L1444
  mov    $0x9c41,%esi
  mov    $0x7,%edi
  call   *%rbp
  pxor   %xmm0,%xmm0
  cvtsi2ss %eax,%xmm0
  addss  0x28(%r13),%xmm0
  movss  %xmm0,0x28(%r13)
  movss  D130(%rip),%xmm0
  addss  0x30(%r13),%xmm0
  movss  %xmm0,0x30(%r13)
L3884:
  mov    $0x9c41,%esi
  mov    $0x5,%edi
  call   *%rbp
  pxor   %xmm0,%xmm0
  movss  0xc(%rsp),%xmm3
  cvtsi2sd %eax,%xmm0
  mulsd  D159(%rip),%xmm0
  subsd  D486(%rip),%xmm0
  cvtsd2ss %xmm0,%xmm0
  comiss %xmm0,%xmm3
  movss  %xmm0,0x4(%r13)
  jae    L1281
L95:
  movss  0x0(%r13),%xmm0
  movss  D396(%rip),%xmm4
  comiss %xmm0,%xmm4
  ja     L2360
  comiss D480(%rip),%xmm0
  jbe    L1867
L2360:
  movl   $0x41f00000,0x0(%r13)
  movss  D236(%rip),%xmm0
  movss  D588(%rip),%xmm2
L3977:
  movss  0x4(%r13),%xmm1
  mov    0x198(%rbx),%eax
  comiss %xmm1,%xmm2
  jbe    L3087
  cmp    $0x1,%eax
  je     L3649
L962:
  test   %eax,%eax
  jne    L2095
L2950:
  movl   $0x0,0x188(%rbx)
L2095:
  mov    $0x9c41,%esi
  mov    $0x6,%edi
  call   *%rbp
  pxor   %xmm0,%xmm0
  movss  D396(%rip),%xmm5
  cvtsi2sd %eax,%xmm0
  mulsd  D159(%rip),%xmm0
  subsd  D486(%rip),%xmm0
  cvtsd2ss %xmm0,%xmm0
  comiss %xmm0,%xmm5
  movss  %xmm0,0xc(%r13)
  jbe    L308
  mov    $0x7,%edi
  call   *%r12
  test   %eax,%eax
  je     L3700
L308:
  movss  0x8(%r13),%xmm0
  movss  D396(%rip),%xmm6
  comiss %xmm0,%xmm6
  ja     L2693
  comiss D480(%rip),%xmm0
  jbe    L3617
L2693:
  movl   $0x41f80000,0x8(%r13)
  movss  D93(%rip),%xmm0
  movss  D589(%rip),%xmm2
L3835:
  movss  0xc(%r13),%xmm1
  mov    0x19c(%rbx),%eax
  comiss %xmm1,%xmm2
  jbe    L2440
  cmp    $0x1,%eax
  je     L1844
L26:
  test   %eax,%eax
  jne    L331
L1698:
  movl   $0x0,0x18c(%rbx)
L331:
  mov    0x1a4(%rbx),%eax
  cmp    $0x1,%eax
  je     L1125
  test   %eax,%eax
  je     L3203
L3877:
  mov    0x1ac(%rbx),%eax
  cmp    $0x1,%eax
  je     L1684
  test   %eax,%eax
  je     L4040
L106:
  mov    0x1b4(%rbx),%eax
  cmp    $0x1,%eax
  je     L2924
  test   %eax,%eax
  je     L896
L1674:
  mov    0x1b8(%rbx),%eax
  cmp    $0x1,%eax
  je     L1669
  mov    0x1bc(%rbx),%edx
  cmp    $0x1,%edx
  je     L2557
  or     %edx,%eax
  je     L218
L3290:
  mov    0x1c0(%rbx),%eax
  cmp    $0x1,%eax
  je     L2594
  mov    0x1c4(%rbx),%edx
  cmp    $0x1,%edx
  je     L3948
  or     %edx,%eax
  je     L1126
L1332:
  mov    0x1cc(%rbx),%eax
  cmp    $0x1,%eax
  je     L2496
  test   %eax,%eax
  je     L2013
L1821:
  mov    0x1d0(%rbx),%eax
  cmp    $0x1,%eax
  je     L1415
  test   %eax,%eax
  je     L3459
L778:
  mov    0x1d4(%rbx),%eax
  cmp    $0x1,%eax
  je     L3787
  test   %eax,%eax
  je     L2125
L2071:
  mov    0x194(%rbx),%eax
  cmp    $0x1,%eax
  je     L668
  test   %eax,%eax
  je     L2838
L3956:
  mov    0x188(%rbx),%eax
  cmp    $0x1,%eax
  je     L3342
  test   %eax,%eax
  je     L1599
L3968:
  mov    0x18c(%rbx),%eax
  cmp    $0x1,%eax
  je     L2233
  test   %eax,%eax
  je     L2398
L2507:
  mov    0x14(%rsp),%edx
  test   %edx,%edx
  je     L2298
  cmpl   $0x13,0x4b0(%rbx)
  jg     L1462
L1934:
  mov    0x4b0(%rbx),%eax
  mov    0x14(%rsp),%ecx
  lea    0x12d(,%rax,4),%eax
  cltq
  mov    %ecx,(%rbx,%rax,4)
  mov    0x4b0(%rbx),%eax
  shl    $0x2,%eax
  cltq
  mov    %r14d,0x4b8(%rbx,%rax,4)
  mov    0x4b0(%rbx),%eax
  shl    $0x2,%eax
  cltq
  movl   $0x0,0x4bc(%rbx,%rax,4)
  mov    0x4b0(%rbx),%eax
  shl    $0x2,%eax
  cltq
  movl   $0x0,0x4c0(%rbx,%rax,4)
  addl   $0x1,0x4b0(%rbx)
L2298:
  mov    0x184(%rbx),%eax
  test   %eax,%eax
  jne    L126
  movl   $0x1,0x184(%rbx)
L126:
  add    $0x28,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
  nopl   0x0(%rax)
L2394:
  cmpl   $0x1,0x1c4(%rbx)
  jne    L1091
L2891:
  mov    $0xa,%edi
  call   *%r12
  test   %eax,%eax
  jne    L1024
L3256:
  movl   $0x0,0x1c4(%rbx)
  jmp    L1091
  nopl   0x0(%rax)
L2705:
  cmpl   $0x1,0x1bc(%rbx)
  jne    L3981
L3591:
  mov    $0xb,%edi
  call   *%r12
  test   %eax,%eax
  jne    L2812
L2637:
  movl   $0x0,0x1bc(%rbx)
  jmp    L3981
L2557:
  push   $0x3
  mov    $0xff,%esi
  mov    $0xff,%edi
  xor    %r9d,%r9d
  push   $0xff
  xor    %r8d,%r8d
  mov    $0x12,%ecx
  mov    $0xff,%edx
  call   *0xa8(%rsp)
  pop    %rsi
  pop    %rdi
  test   %eax,%eax
  je     L3159
L1558:
  cmpl   $0x3,0x190(%rbx)
  jle    L1034
L1669:
  mov    $0x4,%esi
  mov    $0x1,%edi
  call   *%rbp
  test   %eax,%eax
  jne    L1034
  mov    $0x1,%edx
  mov    $0x4,%esi
  mov    $0x1,%edi
  call   *0x68(%rsp)
L1034:
  cmpl   $0x1,0x1b8(%rbx)
  je     L2174
  push   $0x3
  xor    %r9d,%r9d
  xor    %r8d,%r8d
  mov    $0x12,%ecx
  push   $0xff
  mov    $0xff,%edx
  mov    $0xff,%esi
  mov    $0xff,%edi
  call   *0xa8(%rsp)
  pop    %r13
  pop    %r15
  test   %eax,%eax
  jne    L969
  push   $0x4
  xor    %r9d,%r9d
  mov    $0x1e,%r8d
  mov    $0x17,%ecx
  push   $0xff
  mov    $0xff,%edx
  mov    $0xff,%esi
  mov    $0xff,%edi
  call   *0xa8(%rsp)
  pop    %r9
  pop    %r10
  test   %eax,%eax
  jne    L969
L2174:
  mov    $0x3,%esi
  mov    $0x2,%edi
  call   *%rbp
  test   %eax,%eax
  jne    L3290
  mov    $0x1,%edx
  mov    $0x3,%esi
  mov    $0x2,%edi
  call   *0x68(%rsp)
  jmp    L3290
L3948:
  push   $0x3
  mov    $0x7,%ecx
  mov    $0xff,%esi
  xor    %r9d,%r9d
  push   $0xff
  xor    %r8d,%r8d
  mov    $0xff,%edx
  mov    $0xff,%edi
  call   *0xa8(%rsp)
  pop    %rcx
  pop    %rsi
  test   %eax,%eax
  jne    L3826
L2594:
  mov    $0x1,%esi
  mov    $0x7,%edi
  call   *%rbp
  test   %eax,%eax
  jne    L3826
  mov    $0x1,%edx
  mov    $0x1,%esi
  mov    $0x7,%edi
  call   *0x68(%rsp)
L3826:
  mov    $0x1,%esi
  mov    $0x2,%edi
  call   *%rbp
  test   %eax,%eax
  jne    L1332
  mov    $0x1,%edx
  mov    $0x1,%esi
  mov    $0x2,%edi
  call   *0x68(%rsp)
  jmp    L1332
L2440:
  comiss %xmm0,%xmm1
  jbe    L26
  cmp    $0x1,%eax
  jne    L26
  jmp    L1698
L3087:
  comiss %xmm0,%xmm1
  jbe    L962
  cmp    $0x1,%eax
  jne    L962
  jmp    L2950
L896:
  mov    $0x2,%esi
  mov    $0x7,%edi
  call   *%rbp
  sub    $0x1,%eax
  jne    L1674
  xor    %edx,%edx
  mov    $0x2,%esi
  mov    $0x7,%edi
  call   *0x68(%rsp)
  jmp    L1674
L3203:
  mov    $0x1,%esi
  mov    $0x1,%edi
  call   *%rbp
  sub    $0x1,%eax
  jne    L3877
  xor    %edx,%edx
  mov    $0x1,%esi
  mov    $0x1,%edi
  call   *0x68(%rsp)
  jmp    L3877
L4040:
  mov    $0x2,%esi
  mov    $0x1,%edi
  call   *%rbp
  sub    $0x1,%eax
  jne    L106
  xor    %edx,%edx
  mov    $0x2,%esi
  mov    $0x1,%edi
  call   *0x68(%rsp)
  jmp    L106
L2398:
  mov    $0x3,%esi
  mov    $0x1,%edi
  call   *%rbp
  sub    $0x1,%eax
  jne    L2507
  xor    %edx,%edx
  mov    $0x3,%esi
  mov    $0x1,%edi
  call   *0x68(%rsp)
  jmp    L2507
L1599:
  mov    $0x3,%esi
  mov    $0x7,%edi
  call   *%rbp
  sub    $0x1,%eax
  jne    L3968
  xor    %edx,%edx
  mov    $0x3,%esi
  mov    $0x7,%edi
  call   *0x68(%rsp)
  jmp    L3968
L2838:
  mov    $0x4,%esi
  mov    $0x2,%edi
  call   *%rbp
  sub    $0x1,%eax
  jne    L3956
  xor    %edx,%edx
  mov    $0x4,%esi
  mov    $0x2,%edi
  call   *0x68(%rsp)
  jmp    L3956
L2125:
  mov    $0x2,%esi
  mov    $0x2,%edi
  call   *%rbp
  sub    $0x1,%eax
  jne    L2071
  xor    %edx,%edx
  mov    $0x2,%esi
  mov    $0x2,%edi
  call   *0x68(%rsp)
  jmp    L2071
L3459:
  mov    $0x4,%esi
  mov    $0x7,%edi
  call   *%rbp
  sub    $0x1,%eax
  jne    L778
  xor    %edx,%edx
  mov    $0x4,%esi
  mov    $0x7,%edi
  call   *0x68(%rsp)
  jmp    L778
L2013:
  mov    $0x1,%esi
  mov    $0x3,%edi
  call   *%rbp
  sub    $0x1,%eax
  jne    L1821
  xor    %edx,%edx
  mov    $0x1,%esi
  mov    $0x3,%edi
  call   *0x68(%rsp)
  jmp    L1821
L3617:
  movss  D130(%rip),%xmm1
  movaps %xmm0,%xmm2
  subss  %xmm1,%xmm2
  addss  %xmm1,%xmm0
  jmp    L3835
L3934:
  cmpl   $0x0,0x140(%rbx)
  jne    L142
  movsd  D321(%rip),%xmm1
  pxor   %xmm0,%xmm0
  cvtss2sd 0x38(%r13),%xmm0
  comisd %xmm0,%xmm1
  jbe    L142
  movl   $0x1,0x140(%rbx)
  movl   $0x1,0x1a4(%rbx)
  jmp    L142
L3177:
  cmpl   $0x1,0x1d8(%rbx)
  jne    L3412
  cmpl   $0x1,0x48(%rbx)
  jne    L3412
  movl   $0x0,0x1d8(%rbx)
  or     $0xffffffff,%esi
  mov    $0x6,%edi
  call   *%r15
  jmp    L3412
L2474:
  cmpl   $0x1,0x1d4(%rbx)
  jne    L2718
  cmpl   $0x1,0x48(%rbx)
  jne    L2718
  movl   $0x0,0x1d4(%rbx)
  or     $0xffffffff,%esi
  mov    $0x6,%edi
  call   *%r15
  jmp    L2718
L1773:
  cmpl   $0x1,0x4c(%rbx)
  je     L2856
  cmpl   $0x1,0x50(%rbx)
  jne    L3806
L2856:
  movl   $0x0,0x1d0(%rbx)
  or     $0xffffffff,%esi
  mov    $0x6,%edi
  call   *%r15
  jmp    L3806
L1462:
  movl   $0x0,0x4b0(%rbx)
  jmp    L1934
L3700:
  movl   $0x0,0x19c(%rbx)
  jmp    L308
L1867:
  movss  D130(%rip),%xmm1
  movaps %xmm0,%xmm2
  subss  %xmm1,%xmm2
  addss  %xmm1,%xmm0
  jmp    L3977
L654:
  mov    $0x2713,%esi
  mov    $0x7,%edi
  call   *%rbp
  test   %eax,%eax
  je     L1156
  mov    $0x2711,%esi
  mov    $0x3,%edi
  call   *%rbp
  test   %eax,%eax
  je     L1156
  mov    $0x2712,%esi
  mov    $0x3,%edi
  call   *%rbp
  test   %eax,%eax
  je     L1156
  jmp    L2803
L1659:
  mov    $0x12c,%esi
  xor    %edi,%edi
  mov    $0x1,%r14d
  movq   $0x0,0x190(%rbx)
  call   *%r15
  mov    $0x6e,%esi
  mov    $0x1,%edi
  call   *%r15
  movl   $0x3,0x10(%rsp)
  jmp    L2243
L969:
  push   $0x3
  xor    %r9d,%r9d
  mov    $0x1e,%r8d
  mov    $0x17,%ecx
  push   $0xff
  mov    $0xff,%edx
  mov    $0xff,%esi
  mov    $0xff,%edi
  call   *0xa8(%rsp)
  pop    %r11
  pop    %r12
  test   %eax,%eax
  je     L2174
  push   $0x4
  xor    %r8d,%r8d
  mov    $0xff,%edi
  xor    %r9d,%r9d
  push   $0xff
  mov    $0x7,%ecx
  mov    $0xff,%edx
  mov    $0xff,%esi
  call   *0xa8(%rsp)
  pop    %rdi
  pop    %r8
  test   %eax,%eax
  je     L2174
  cmpl   $0x3,0x190(%rbx)
  jg     L2174
  jmp    L3290
L1281:
  mov    $0x7,%edi
  call   *%r12
  test   %eax,%eax
  jne    L95
  movl   $0x0,0x198(%rbx)
  jmp    L95
L1748:
  movl   $0x0,0x18(%rsp)
  movl   $0x0,0x1c(%rsp)
  jmp    L560
L3381:
  cmpl   $0x1,0x1d8(%rbx)
  jne    L2388
  cmpl   $0x0,0x50(%rbx)
  jne    L2388
  movl   $0x0,0x1d8(%rbx)
  mov    $0x46,%esi
  mov    $0x6,%edi
  movl   $0x1,0x50(%rbx)
  call   *%r15
  jmp    L2388
L275:
  cmpl   $0x1,0x1d4(%rbx)
  jne    L2517
  cmpl   $0x0,0x4c(%rbx)
  jne    L2517
  movl   $0x0,0x1d4(%rbx)
  mov    $0x46,%esi
  mov    $0x6,%edi
  movl   $0x1,0x4c(%rbx)
  call   *%r15
  jmp    L2517
L3758:
  mov    0x190(%rbx),%eax
  mov    %eax,0x14(%rsp)
  cmp    $0x4,%eax
  je     L34
  mov    0x10(%rsp),%eax
  mov    %eax,0x14(%rsp)
  jmp    L3000
L2924:
  mov    $0x2,%esi
  mov    $0x7,%edi
  call   *%rbp
  test   %eax,%eax
  jne    L1674
  mov    $0x1,%edx
  mov    $0x2,%esi
  mov    $0x7,%edi
  call   *0x68(%rsp)
  jmp    L1674
L2129:
  cmpl   $0x1,0x1d0(%rbx)
  jne    L1148
  cmpl   $0x0,0x48(%rbx)
  jne    L1148
  movl   $0x0,0x1d0(%rbx)
  mov    $0x46,%esi
  mov    $0x6,%edi
  movl   $0x1,0x48(%rbx)
  call   *%r15
  jmp    L1148
L110:
  cmpl   $0x0,0x1d4(%rbx)
  jne    L3962
  cmpl   $0x0,0x4c(%rbx)
  jne    L3962
  movl   $0x1,0x1d4(%rbx)
  mov    $0x46,%esi
  mov    $0x6,%edi
  movl   $0x1,0x4c(%rbx)
  call   *%r15
  jmp    L3962
L2496:
  mov    $0x1,%esi
  mov    $0x3,%edi
  call   *%rbp
  test   %eax,%eax
  jne    L1821
  mov    $0x1,%edx
  mov    $0x1,%esi
  mov    $0x3,%edi
  call   *0x68(%rsp)
  jmp    L1821
L1125:
  mov    $0x1,%esi
  mov    $0x1,%edi
  call   *%rbp
  test   %eax,%eax
  jne    L3877
  mov    $0x1,%edx
  mov    $0x1,%esi
  mov    $0x1,%edi
  call   *0x68(%rsp)
  jmp    L3877
L1684:
  mov    $0x2,%esi
  mov    $0x1,%edi
  call   *%rbp
  test   %eax,%eax
  jne    L106
  mov    $0x1,%edx
  mov    $0x2,%esi
  mov    $0x1,%edi
  call   *0x68(%rsp)
  jmp    L106
L2233:
  mov    $0x3,%esi
  mov    $0x1,%edi
  call   *%rbp
  test   %eax,%eax
  jne    L2507
  mov    $0x1,%edx
  mov    $0x3,%esi
  mov    $0x1,%edi
  call   *0x68(%rsp)
  jmp    L2507
L2518:
  movss  0x3c(%r13),%xmm1
  pxor   %xmm7,%xmm7
  pxor   %xmm0,%xmm0
  movss  %xmm7,0xc(%rsp)
  comiss %xmm7,%xmm1
  jbe    L2028
  movss  0x34(%r13),%xmm0
  divss  %xmm1,%xmm0
  mulss  D436(%rip),%xmm0
L2028:
  movss  %xmm0,0x38(%r13)
  mov    $0x1770,%esi
  mov    $0x17,%edi
  movl   $0x0,0x34(%r13)
  movl   $0x0,0x3c(%r13)
  call   *%r15
  jmp    L3859
L1257:
  cmpl   $0x0,0x1d8(%rbx)
  jne    L1749
  cmpl   $0x0,0x50(%rbx)
  jne    L1749
  movl   $0x1,0x1d8(%rbx)
  mov    $0x46,%esi
  mov    $0x6,%edi
  movl   $0x1,0x50(%rbx)
  call   *%r15
  jmp    L1749
L181:
  cmpl   $0x0,0x1a4(%rbx)
  jne    L3581
  cmpl   $0x0,0x28(%rbx)
  jne    L3581
  movl   $0x1,0x1a4(%rbx)
  movl   $0x1,0x28(%rbx)
  jmp    L3581
L3477:
  cmpl   $0x0,0x1a8(%rbx)
  jne    L318
  cmpl   $0x0,0x2c(%rbx)
  jne    L318
  movl   $0x1,0x1a8(%rbx)
  movl   $0x1,0x2c(%rbx)
  jmp    L318
L1791:
  cmpl   $0x1,0x1a4(%rbx)
  jne    L2979
  cmpl   $0x0,0x28(%rbx)
  jne    L2979
  movl   $0x0,0x1a4(%rbx)
  movl   $0x1,0x28(%rbx)
  jmp    L2979
L2899:
  cmpl   $0x0,0x1b0(%rbx)
  jne    L1076
  cmpl   $0x0,0x34(%rbx)
  jne    L1076
  movl   $0x1,0x1b0(%rbx)
  movl   $0x1,0x34(%rbx)
  jmp    L1076
L321:
  cmpl   $0x1,0x1ac(%rbx)
  jne    L542
  cmpl   $0x0,0x30(%rbx)
  jne    L542
  movl   $0x0,0x1ac(%rbx)
  movl   $0x1,0x30(%rbx)
  jmp    L542
L3546:
  cmpl   $0x0,0x1ac(%rbx)
  jne    L1408
  cmpl   $0x0,0x30(%rbx)
  jne    L1408
  movl   $0x1,0x1ac(%rbx)
  movl   $0x1,0x30(%rbx)
  jmp    L1408
L443:
  cmpl   $0x1,0x1a8(%rbx)
  jne    L1711
  cmpl   $0x0,0x2c(%rbx)
  jne    L1711
  movl   $0x0,0x1a8(%rbx)
  movl   $0x1,0x2c(%rbx)
  jmp    L1711
L3047:
  cmpl   $0x0,0x1cc(%rbx)
  jne    L3065
  cmpl   $0x0,0x44(%rbx)
  jne    L3065
  movl   $0x1,0x1cc(%rbx)
  movl   $0x1,0x44(%rbx)
  jmp    L3065
L3333:
  cmpl   $0x1,0x1c0(%rbx)
  jne    L397
  cmpl   $0x0,0x40(%rbx)
  jne    L397
  movl   $0x0,0x1c0(%rbx)
  movl   $0x1,0x40(%rbx)
  jmp    L397
L2520:
  cmpl   $0x0,0x1c0(%rbx)
  jne    L3609
  cmpl   $0x0,0x40(%rbx)
  jne    L3609
  movl   $0x1,0x1c0(%rbx)
  movl   $0x1,0x40(%rbx)
  jmp    L3609
L2590:
  cmpl   $0x1,0x1b8(%rbx)
  jne    L3845
  cmpl   $0x0,0x3c(%rbx)
  jne    L3845
  movl   $0x0,0x1b8(%rbx)
  movl   $0x1,0x3c(%rbx)
  jmp    L3845
L3026:
  cmpl   $0x0,0x1b8(%rbx)
  jne    L2466
  cmpl   $0x0,0x3c(%rbx)
  jne    L2466
  movl   $0x1,0x1b8(%rbx)
  movl   $0x1,0x3c(%rbx)
  jmp    L2466
L3837:
  cmpl   $0x1,0x1b4(%rbx)
  jne    L1108
  cmpl   $0x0,0x38(%rbx)
  jne    L1108
  movl   $0x0,0x1b4(%rbx)
  movl   $0x1,0x38(%rbx)
  jmp    L1108
L445:
  cmpl   $0x0,0x1b4(%rbx)
  jne    L1009
  cmpl   $0x0,0x38(%rbx)
  jne    L1009
  movl   $0x1,0x1b4(%rbx)
  movl   $0x1,0x38(%rbx)
  jmp    L1009
L3973:
  cmpl   $0x1,0x1b0(%rbx)
  jne    L1562
  cmpl   $0x0,0x34(%rbx)
  jne    L1562
  movl   $0x0,0x1b0(%rbx)
  movl   $0x1,0x34(%rbx)
  jmp    L1562
L2703:
  cmpl   $0x0,0x1d0(%rbx)
  jne    L2630
  cmpl   $0x0,0x48(%rbx)
  jne    L2630
  movl   $0x1,0x1d0(%rbx)
  mov    $0x46,%esi
  mov    $0x6,%edi
  movl   $0x1,0x48(%rbx)
  call   *%r15
  jmp    L2630
L3745:
  cmpl   $0x1,0x1cc(%rbx)
  jne    L330
  cmpl   $0x0,0x44(%rbx)
  jne    L330
  movl   $0x0,0x1cc(%rbx)
  movl   $0x1,0x44(%rbx)
  jmp    L330
L3285:
  xor    %edi,%edi
  call   *%r12
  add    $0x1,%eax
  jne    L3126
  or     $0xffffffff,%esi
  mov    $0xb,%edi
  call   *%r15
  mov    $0x32,%esi
  mov    $0x2,%edi
  movq   $0x0,0x1b8(%rbx)
  movl   $0x3,0x190(%rbx)
  call   *%r15
  cmpl   $0x2,0x1c(%rsp)
  jne    L3126
  xor    %ecx,%ecx
  xor    %edx,%edx
  lea    D371(%rip),%rsi
  lea    D344(%rip),%rdi
  call   *0x88(%rsp)
  jmp    L3126
L2116:
  movl   $0x1,0x190(%rbx)
L2211:
  mov    $0x2711,%esi
  mov    $0x7,%edi
  call   *%rbp
  sub    $0x1,%eax
  je     L1768
L3232:
  mov    $0x12c,%esi
  xor    %edi,%edi
  mov    $0x2,%r14d
  movl   $0x0,0x190(%rbx)
  call   *%r15
  mov    $0xa0,%esi
  mov    $0x2,%edi
  call   *%r15
  mov    $0x2711,%esi
  mov    $0x7,%edi
  call   *%rbp
  mov    $0x2712,%esi
  mov    $0x7,%edi
  mov    %eax,0x10(%rsp)
  call   *%rbp
  test   %eax,%eax
  jne    L1073
L1450:
  mov    $0x2711,%esi
  mov    $0x3,%edi
  call   *%rbp
  mov    $0x2712,%esi
  mov    $0x3,%edi
  test   %eax,%eax
  mov    $0x3,%eax
  cmove  %eax,%r14d
  call   *%rbp
  movl   $0x1,0x10(%rsp)
  test   %eax,%eax
  mov    $0x4,%eax
  cmove  %eax,%r14d
  jmp    L2334
L3787:
  mov    $0x2,%esi
  mov    $0x2,%edi
  call   *%rbp
  test   %eax,%eax
  jne    L2071
  mov    $0x1,%edx
  mov    $0x2,%esi
  mov    $0x2,%edi
  call   *0x68(%rsp)
  jmp    L2071
L1415:
  mov    $0x4,%esi
  mov    $0x7,%edi
  call   *%rbp
  test   %eax,%eax
  jne    L778
  mov    $0x1,%edx
  mov    $0x4,%esi
  mov    $0x7,%edi
  call   *0x68(%rsp)
  jmp    L778
L3342:
  mov    $0x3,%esi
  mov    $0x7,%edi
  call   *%rbp
  test   %eax,%eax
  jne    L3968
  mov    $0x1,%edx
  mov    $0x3,%esi
  mov    $0x7,%edi
  call   *0x68(%rsp)
  jmp    L3968
L668:
  mov    $0x4,%esi
  mov    $0x2,%edi
  call   *%rbp
  test   %eax,%eax
  jne    L3956
  mov    $0x1,%edx
  mov    $0x4,%esi
  mov    $0x2,%edi
  call   *0x68(%rsp)
  jmp    L3956
L2815:
  xor    %edi,%edi
  call   *%r12
  mov    $0x64,%ecx
  cltd
  idiv   %ecx
  test   %edx,%edx
  jne    L2916
  movl   $0x1,0x194(%rbx)
L2916:
  xor    %edi,%edi
  call   *%r12
  mov    $0x64,%ecx
  sub    $0x32,%eax
  cltd
  idiv   %ecx
  test   %edx,%edx
  jne    L2472
  movl   $0x0,0x194(%rbx)
  jmp    L2472
L895:
  cmpl   $0x5,0x190(%rbx)
  jne    L3390
  mov    0x1c(%rsp),%eax
  sub    $0x4,%eax
  cmp    $0x1,%eax
  jbe    L3397
L460:
  xor    %edi,%edi
  call   *%r12
  cmp    $0x1bd50,%eax
  jle    L1307
  xor    %edi,%edi
  call   *%r12
  mov    $0x12c,%ecx
  cltd
  idiv   %ecx
  test   %edx,%edx
  jne    L3205
  movl   $0x1,0x194(%rbx)
L3205:
  xor    %edi,%edi
  call   *%r12
  mov    $0x12c,%ecx
  sub    $0x64,%eax
  cltd
  idiv   %ecx
  test   %edx,%edx
  jne    L3874
L3588:
  movl   $0x0,0x194(%rbx)
  jmp    L3874
L2450:
  cmpl   $0x5,0x190(%rbx)
  jne    L1035
  mov    0x1c(%rsp),%eax
  sub    $0x4,%eax
  cmp    $0x1,%eax
  ja     L1035
  xor    %ecx,%ecx
  xor    %edx,%edx
  cmpl   $0x1,0x18(%rsp)
  je     L1349
  cmpl   $0x2,0x18(%rsp)
  je     L3468
  cmpl   $0x3,0x18(%rsp)
  je     L2020
  cmpl   $0x4,0x18(%rsp)
  je     L930
  cmpl   $0x5,0x18(%rsp)
  je     L2459
  cmpl   $0x6,0x18(%rsp)
  je     L600
  cmpl   $0x7,0x18(%rsp)
  je     L4007
  cmpl   $0x8,0x18(%rsp)
  je     L3563
  lea    D554(%rip),%rsi
  lea    D344(%rip),%rdi
  call   *0x88(%rsp)
  jmp    L1035
L2781:
  cmpl   $0x5,0x190(%rbx)
  jne    L179
  mov    $0x1d4c0,%esi
  xor    %edi,%edi
  call   *%r15
  jmp    L179
L1444:
  movss  0x30(%r13),%xmm1
  comiss 0xc(%rsp),%xmm1
  pxor   %xmm0,%xmm0
  jbe    L2780
  movss  0x28(%r13),%xmm0
  divss  %xmm1,%xmm0
  mulss  D436(%rip),%xmm0
L2780:
  movss  %xmm0,0x2c(%r13)
  mov    $0x1770,%esi
  mov    $0x16,%edi
  movl   $0x0,0x28(%r13)
  movl   $0x0,0x30(%r13)
  call   *%r15
  jmp    L3884
L946:
  movss  0x24(%r13),%xmm1
  comiss 0xc(%rsp),%xmm1
  pxor   %xmm0,%xmm0
  jbe    L3838
  movss  0x1c(%r13),%xmm0
  divss  %xmm1,%xmm0
  mulss  D436(%rip),%xmm0
L3838:
  movss  %xmm0,0x20(%r13)
  mov    $0x1770,%esi
  mov    $0x15,%edi
  movl   $0x0,0x1c(%r13)
  movl   $0x0,0x24(%r13)
  call   *%r15
  jmp    L912
L3054:
  movss  0x18(%r13),%xmm1
  comiss 0xc(%rsp),%xmm1
  pxor   %xmm0,%xmm0
  jbe    L3834
  movss  0x10(%r13),%xmm0
  divss  %xmm1,%xmm0
  mulss  D436(%rip),%xmm0
L3834:
  movss  %xmm0,0x14(%r13)
  mov    $0x1770,%esi
  mov    $0x14,%edi
  movl   $0x0,0x10(%r13)
  movl   $0x0,0x18(%r13)
  call   *%r15
  jmp    L3724
L1307:
  cmpl   $0x5,0x190(%rbx)
  jne    L3874
  cmpl   $0x1,0x194(%rbx)
  jne    L3874
  jmp    L3588
L1830:
  mov    0x190(%rbx),%edx
  cmp    $0x3,%edx
  jne    L2803
  mov    %edx,0x10(%rsp)
  xor    %edi,%edi
  mov    $0x3e8,%esi
  movl   $0x4,0x190(%rbx)
  call   *%r15
  mov    $0x2711,%esi
  mov    $0x7,%edi
  call   *%rbp
  mov    $0x2712,%esi
  mov    $0x7,%edi
  test   %eax,%eax
  mov    $0x1,%eax
  cmove  %eax,%r14d
  call   *%rbp
  mov    $0x2713,%esi
  mov    $0x7,%edi
  test   %eax,%eax
  mov    $0x2,%eax
  cmove  %eax,%r14d
  call   *%rbp
  mov    0x10(%rsp),%edx
  mov    $0x2711,%esi
  mov    $0x3,%edi
  test   %eax,%eax
  cmove  %edx,%r14d
  call   *%rbp
  mov    $0x2712,%esi
  mov    $0x3,%edi
  test   %eax,%eax
  mov    $0x4,%eax
  cmove  %eax,%r14d
  call   *%rbp
  movl   $0x5,0x10(%rsp)
  test   %eax,%eax
  mov    $0x5,%eax
  cmove  %eax,%r14d
  jmp    L2803
L3159:
  push   $0x4
  mov    $0x17,%ecx
  mov    $0xff,%edx
  xor    %r9d,%r9d
  push   $0xff
  mov    $0x1e,%r8d
  mov    $0xff,%esi
  mov    $0xff,%edi
  call   *0xa8(%rsp)
  pop    %rdx
  pop    %rcx
  test   %eax,%eax
  je     L1669
  jmp    L1558
L3935:
  cmpl   $0x0,0x1d4(%rbx)
  jne    L2000
  cmpl   $0x1,0x48(%rbx)
  jne    L2000
  movl   $0x1,0x1d4(%rbx)
  or     $0xffffffff,%esi
  mov    $0x6,%edi
  call   *%r15
  jmp    L2000
L2430:
  cmpl   $0x0,0x1d8(%rbx)
  jne    L2540
  cmpl   $0x1,0x48(%rbx)
  jne    L2540
  movl   $0x1,0x1d8(%rbx)
  or     $0xffffffff,%esi
  mov    $0x6,%edi
  call   *%r15
  jmp    L2540
L1844:
  movl   $0x1,0x18c(%rbx)
  comiss %xmm0,%xmm1
  ja     L1698
  jmp    L331
L3649:
  movl   $0x1,0x188(%rbx)
  comiss %xmm0,%xmm1
  ja     L2950
  jmp    L2095
L1024:
  cmpl   $0x0,0x1e0(%rbx)
  jne    L1091
  jmp    L3256
L2812:
  cmpl   $0x0,0x1dc(%rbx)
  jne    L3981
  jmp    L2637
L2987:
  cmpl   $0x1,0x4c(%rbx)
  je     L3913
  cmpl   $0x1,0x50(%rbx)
  jne    L2758
L3913:
  movl   $0x1,0x1d0(%rbx)
  or     $0xffffffff,%esi
  mov    $0x6,%edi
  call   *%r15
  jmp    L2758
L1073:
  xor    %r14d,%r14d
  cmpl   $0x0,0x10(%rsp)
  sete   %r14b
  jmp    L1450
L1126:
  mov    $0x1,%esi
  mov    $0x7,%edi
  call   *%rbp
  sub    $0x1,%eax
  jne    L3687
  xor    %edx,%edx
  mov    $0x1,%esi
  mov    $0x7,%edi
  call   *0x68(%rsp)
L3687:
  mov    $0x1,%esi
  mov    $0x2,%edi
  call   *%rbp
  sub    $0x1,%eax
  jne    L1332
  xor    %edx,%edx
  mov    $0x1,%esi
  mov    $0x2,%edi
  call   *0x68(%rsp)
  jmp    L1332
L218:
  mov    $0x4,%esi
  mov    $0x1,%edi
  call   *%rbp
  sub    $0x1,%eax
  jne    L3218
  xor    %edx,%edx
  mov    $0x4,%esi
  mov    $0x1,%edi
  call   *0x68(%rsp)
L3218:
  mov    $0x3,%esi
  mov    $0x2,%edi
  call   *%rbp
  sub    $0x1,%eax
  jne    L3290
  xor    %edx,%edx
  mov    $0x3,%esi
  mov    $0x2,%edi
  call   *0x68(%rsp)
  jmp    L3290
L2027:
  movl   $0x1,0x1bc(%rbx)
  jmp    L3591
L950:
  movl   $0x1,0x1c4(%rbx)
  jmp    L2891
L1768:
  mov    $0x2712,%esi
  mov    $0x7,%edi
  call   *%rbp
  sub    $0x1,%eax
  jne    L3232
  mov    $0x2711,%esi
  mov    $0x3,%edi
  call   *%rbp
  sub    $0x1,%eax
  jne    L3232
  mov    $0x2712,%esi
  mov    $0x3,%edi
  call   *%rbp
  sub    $0x1,%eax
  jne    L3232
  or     $0xffffffff,%esi
  mov    $0xa,%edi
  xor    %r14d,%r14d
  call   *%r15
  pxor   %xmm0,%xmm0
  xor    %edi,%edi
  mov    $0xbb8,%esi
  movups %xmm0,0x1a4(%rbx)
  movups %xmm0,0x1c0(%rbx)
  movl   $0x0,0x1b4(%rbx)
  movq   $0x0,0x1d0(%rbx)
  movl   $0x0,0x1d8(%rbx)
  movl   $0x2,0x190(%rbx)
  call   *%r15
  mov    $0x64,%esi
  mov    $0x1,%edi
  call   *%r15
  cmpl   $0x0,0x14(%rsp)
  movl   $0x2,0x10(%rsp)
  sete   %r14b
  jmp    L2334
L34:
  movl   $0x5,0x190(%rbx)
  mov    $0x2711,%esi
  mov    $0x7,%edi
  call   *%rbp
  test   %eax,%eax
  je     L3503
  mov    $0x2712,%esi
  mov    $0x7,%edi
  call   *%rbp
  test   %eax,%eax
  je     L2417
  mov    $0x2713,%esi
  mov    $0x7,%edi
  call   *%rbp
  test   %eax,%eax
  je     L2469
  mov    $0x2711,%esi
  mov    $0x3,%edi
  call   *%rbp
  test   %eax,%eax
  je     L412
  mov    $0x2712,%esi
  mov    $0x3,%edi
  call   *%rbp
  test   %eax,%eax
  je     L2250
  mov    $0x2712,%esi
  mov    $0x4,%edi
  call   *%rbp
  sub    $0x1,%eax
  je     L2943
  mov    $0x2711,%esi
  mov    $0x4,%edi
  call   *%rbp
  sub    $0x1,%eax
  je     L1938
  mov    $0x2713,%esi
  mov    $0x4,%edi
  call   *%rbp
  sub    $0x1,%eax
  je     L3133
  cmpl   $0x5,0x1c(%rsp)
  cmove  0x18(%rsp),%r14d
  jmp    L3000
L3503:
  mov    $0x1,%r14d
  jmp    L3000
L3397:
  xor    %ecx,%ecx
  xor    %edx,%edx
  cmpl   $0x1,0x18(%rsp)
  je     L2352
  cmpl   $0x2,0x18(%rsp)
  je     L2647
  cmpl   $0x3,0x18(%rsp)
  je     L965
  cmpl   $0x4,0x18(%rsp)
  je     L822
  cmpl   $0x5,0x18(%rsp)
  je     L1983
  cmpl   $0x6,0x18(%rsp)
  je     L82
  cmpl   $0x7,0x18(%rsp)
  je     L2611
  cmpl   $0x8,0x18(%rsp)
  je     L711
  lea    D554(%rip),%rsi
  lea    D344(%rip),%rdi
  call   *0x88(%rsp)
  jmp    L3390
L2417:
  mov    $0x2,%r14d
  jmp    L3000
L1349:
  lea    D404(%rip),%rsi
  lea    D344(%rip),%rdi
  call   *0x88(%rsp)
  jmp    L1035
L2352:
  lea    D404(%rip),%rsi
  lea    D344(%rip),%rdi
  call   *0x88(%rsp)
  jmp    L3390
L2469:
  mov    $0x3,%r14d
  jmp    L3000
L3468:
  lea    D156(%rip),%rsi
  lea    D344(%rip),%rdi
  call   *0x88(%rsp)
  jmp    L1035
L2647:
  lea    D156(%rip),%rsi
  lea    D344(%rip),%rdi
  call   *0x88(%rsp)
  jmp    L3390
L965:
  lea    D147(%rip),%rsi
  lea    D344(%rip),%rdi
  call   *0x88(%rsp)
  jmp    L3390
L2020:
  lea    D147(%rip),%rsi
  lea    D344(%rip),%rdi
  call   *0x88(%rsp)
  jmp    L1035
L930:
  lea    D366(%rip),%rsi
  lea    D344(%rip),%rdi
  call   *0x88(%rsp)
  jmp    L1035
L822:
  lea    D366(%rip),%rsi
  lea    D344(%rip),%rdi
  call   *0x88(%rsp)
  jmp    L3390
L2459:
  lea    D393(%rip),%rsi
  lea    D344(%rip),%rdi
  call   *0x88(%rsp)
  jmp    L1035
L1983:
  lea    D393(%rip),%rsi
  lea    D344(%rip),%rdi
  call   *0x88(%rsp)
  jmp    L3390
L82:
  lea    D467(%rip),%rsi
  lea    D344(%rip),%rdi
  call   *0x88(%rsp)
  jmp    L3390
L600:
  lea    D467(%rip),%rsi
  lea    D344(%rip),%rdi
  call   *0x88(%rsp)
  jmp    L1035
L412:
  mov    $0x4,%r14d
  jmp    L3000
L2611:
  lea    D460(%rip),%rsi
  lea    D344(%rip),%rdi
  call   *0x88(%rsp)
  jmp    L3390
L4007:
  lea    D460(%rip),%rsi
  lea    D344(%rip),%rdi
  call   *0x88(%rsp)
  jmp    L1035
L711:
  lea    D127(%rip),%rsi
  lea    D344(%rip),%rdi
  call   *0x88(%rsp)
  jmp    L3390
L3563:
  lea    D127(%rip),%rsi
  lea    D344(%rip),%rdi
  call   *0x88(%rsp)
  jmp    L1035
L2250:
  mov    $0x5,%r14d
  jmp    L3000
L2943:
  mov    $0x6,%r14d
  jmp    L3000
L1938:
  mov    $0x7,%r14d
  jmp    L3000
L3133:
  mov    $0x8,%r14d
  jmp    L3000
```

tool_calls: name: unpack_data
arguments: label: D196
type_infered: byte[8]
name: unpack_data
arguments: label: D130
type_infered: byte[4]
name: unpack_data
arguments: label: D159
type_infered: f64
name: unpack_data
arguments: label: D486
type_infered: f64
name: unpack_data
arguments: label: D396
type_infered: byte[4]
name: unpack_data
arguments: label: D480
type_infered: byte[4]
name: unpack_data
arguments: label: D236
type_infered: byte[4]
name: unpack_data
arguments: label: D588
type_infered: byte[4]
name: unpack_data
arguments: label: D93
type_infered: byte[4]
name: unpack_data
arguments: label: D589
type_infered: byte[4]
name: unpack_data
arguments: label: D321
type_infered: f64
name: unpack_data
arguments: label: D436
type_infered: f32
name: unpack_data
arguments: label: D371
type_infered: string
name: unpack_data
arguments: label: D344
type_infered: string
name: unpack_data
arguments: label: D554
type_infered: string
name: unpack_data
arguments: label: D404
type_infered: string
name: unpack_data
arguments: label: D156
type_infered: string
name: unpack_data
arguments: label: D147
type_infered: string
name: unpack_data
arguments: label: D366
type_infered: string
name: unpack_data
arguments: label: D393
type_infered: string
name: unpack_data
arguments: label: D467
type_infered: string
name: unpack_data
arguments: label: D460
type_infered: string
name: unpack_data
arguments: label: D127
type_infered: string

tool: {"D196": [0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00]}

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

tool: D159: 0.01

tool: D486: 327.67

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

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

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

tool: {"D588": [0x00,0x00,0xe8,0x41]}

tool: {"D93": [0x00,0x00,0x00,0x42]}

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

tool: D321: 0.02

tool: D436: 0.0234375

tool: D371: 041F043E044104420430043D043E0432043A04300020043D04300020043E044504400430043D0443

tool: D344: +791........

tool: D554: 0422044004350432043E043304300021

tool: D404: 0422044004350432043E043304300021002004140432043804360435043D043804350020043200200433043E044104420438043D043D043E0439

tool: D156: 0422044004350432043E043304300021002004140432043804360435043D0438043500200432002004320430043D043D043E0439

tool: D147: 0422044004350432043E043304300021002004140432043804360435043D04380435002004320020043A043E044004380434043E04400435

tool: D366: 0422044004350432043E043304300021002004140432043804360435043D04380435002004320020043A043004310438043D043504420435

tool: D393: 0422044004350432043E043304300021002004140432043804360435043D043804350020043200200441043F0430043B044C043D0435

tool: D467: 0422044004350432043E0433043000210020041F0440043E044204350447043A043000200432002004320430043D043D043E04390020043F043E0434002004320430043D043D043E0439

tool: D460: 0422044004350432043E0433043000210020041F0440043E044204350447043A043000200432002004320430043D043D043E04390020043D0430002004410442043E044F043A0435

tool: D127: 0422044004350432043E0433043000210020041F0440043E044204350447043A04300020043D04300020043A04430445043D0435

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;
  }
}
```