user: What is the c source code of the assembly code below?

```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    L948
  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)
L2317:
  mov    0x184(%rbx),%eax
  test   %eax,%eax
  jne    L638
  movabs $0x100000001,%rax
  mov    $0x1388,%esi
  mov    $0x7,%edi
  mov    %rax,0x1dc(%rbx)
  mov    %rax,0x198(%rbx)
  call   *%r15
L638:
  mov    $0x2711,%esi
  mov    $0x1,%edi
  call   *%rbp
  cmp    $0x1,%eax
  je     L495
L3469:
  mov    $0x2711,%esi
  mov    $0x1,%edi
  call   *%rbp
  cmp    $0x1,%eax
  je     L1895
L2391:
  mov    $0x2711,%esi
  mov    $0x1,%edi
  call   *%rbp
  cmp    $0x1,%eax
  je     L98
L2831:
  mov    $0x2711,%esi
  mov    $0x1,%edi
  call   *%rbp
  cmp    $0x1,%eax
  je     L3898
L3399:
  mov    $0x2712,%esi
  mov    $0x1,%edi
  call   *%rbp
  cmp    $0x1,%eax
  je     L1082
L2642:
  mov    $0x2712,%esi
  mov    $0x1,%edi
  call   *%rbp
  cmp    $0x1,%eax
  je     L1182
L1613:
  mov    $0x2712,%esi
  mov    $0x1,%edi
  call   *%rbp
  cmp    $0x1,%eax
  je     L2490
L1909:
  mov    $0x2712,%esi
  mov    $0x1,%edi
  call   *%rbp
  cmp    $0x1,%eax
  je     L3474
L589:
  mov    $0x2714,%esi
  mov    $0x4,%edi
  call   *%rbp
  cmp    $0x1,%eax
  je     L3450
L233:
  mov    $0x2714,%esi
  mov    $0x4,%edi
  call   *%rbp
  cmp    $0x1,%eax
  je     L2836
L302:
  mov    $0x2713,%esi
  mov    $0x1,%edi
  call   *%rbp
  cmp    $0x1,%eax
  je     L1879
L2020:
  mov    $0x2713,%esi
  mov    $0x1,%edi
  call   *%rbp
  cmp    $0x1,%eax
  je     L3102
L735:
  mov    $0x2711,%esi
  mov    $0x2,%edi
  call   *%rbp
  cmp    $0x1,%eax
  je     L1026
L3949:
  mov    $0x2711,%esi
  mov    $0x2,%edi
  call   *%rbp
  cmp    $0x1,%eax
  je     L1214
L2869:
  mov    $0x2712,%esi
  mov    $0x2,%edi
  call   *%rbp
  cmp    $0x1,%eax
  je     L230
L2829:
  mov    $0x2712,%esi
  mov    $0x2,%edi
  call   *%rbp
  cmp    $0x1,%eax
  je     L3310
L1274:
  mov    $0x2713,%esi
  mov    $0x2,%edi
  call   *%rbp
  cmp    $0x1,%eax
  je     L2321
L108:
  mov    $0x2713,%esi
  mov    $0x2,%edi
  call   *%rbp
  cmp    $0x1,%eax
  je     L1248
L3387:
  mov    $0x6,%edi
  call   *%r12
  test   %eax,%eax
  jne    L179
  cmpl   $0x1,0x1d4(%rbx)
  je     L1404
L179:
  mov    $0x6,%edi
  call   *%r12
  test   %eax,%eax
  jne    L673
  cmpl   $0x0,0x1d4(%rbx)
  je     L2483
L673:
  mov    $0x2714,%esi
  mov    $0x1,%edi
  call   *%rbp
  cmp    $0x1,%eax
  je     L2931
L1502:
  mov    $0x2714,%esi
  mov    $0x1,%edi
  call   *%rbp
  cmp    $0x1,%eax
  je     L2354
L1924:
  mov    $0x6,%edi
  call   *%r12
  test   %eax,%eax
  jne    L1190
  cmpl   $0x1,0x1d0(%rbx)
  je     L1923
L1190:
  mov    $0x6,%edi
  call   *%r12
  test   %eax,%eax
  jne    L3322
  cmpl   $0x0,0x1d0(%rbx)
  je     L2787
L3322:
  mov    $0x2714,%esi
  mov    $0x1,%edi
  call   *%rbp
  cmp    $0x1,%eax
  je     L2137
L2532:
  mov    $0x2714,%esi
  mov    $0x1,%edi
  call   *%rbp
  cmp    $0x1,%eax
  je     L3890
L3384:
  mov    $0x6,%edi
  call   *%r12
  test   %eax,%eax
  jne    L3777
  cmpl   $0x1,0x1d0(%rbx)
  je     L942
L3777:
  mov    $0x6,%edi
  call   *%r12
  test   %eax,%eax
  jne    L2535
  cmpl   $0x0,0x1d0(%rbx)
  je     L669
L2535:
  mov    $0x2711,%esi
  mov    $0x1,%edi
  call   *%rbp
  test   %eax,%eax
  jne    L2005
  movl   $0x0,0x28(%rbx)
L2005:
  mov    $0x2711,%esi
  mov    $0x1,%edi
  call   *%rbp
  test   %eax,%eax
  jne    L2499
  movl   $0x0,0x2c(%rbx)
L2499:
  mov    $0x2712,%esi
  mov    $0x1,%edi
  call   *%rbp
  test   %eax,%eax
  jne    L123
  movl   $0x0,0x30(%rbx)
L123:
  mov    $0x2712,%esi
  mov    $0x1,%edi
  call   *%rbp
  test   %eax,%eax
  jne    L3902
  movl   $0x0,0x34(%rbx)
L3902:
  mov    $0x2714,%esi
  mov    $0x4,%edi
  call   *%rbp
  test   %eax,%eax
  jne    L2560
  movl   $0x0,0x38(%rbx)
L2560:
  mov    $0x2713,%esi
  mov    $0x1,%edi
  call   *%rbp
  test   %eax,%eax
  jne    L3141
  movl   $0x0,0x3c(%rbx)
L3141:
  mov    $0x2711,%esi
  mov    $0x2,%edi
  call   *%rbp
  test   %eax,%eax
  jne    L2867
  movl   $0x0,0x40(%rbx)
L2867:
  mov    $0x2712,%esi
  mov    $0x2,%edi
  call   *%rbp
  test   %eax,%eax
  jne    L1614
  movl   $0x0,0x44(%rbx)
L1614:
  mov    $0x2713,%esi
  mov    $0x2,%edi
  call   *%rbp
  test   %eax,%eax
  jne    L1500
  movl   $0x0,0x48(%rbx)
L1500:
  mov    $0x2714,%esi
  mov    $0x1,%edi
  call   *%rbp
  test   %eax,%eax
  jne    L1651
  movl   $0x0,0x4c(%rbx)
L1651:
  mov    $0x2714,%esi
  mov    $0x1,%edi
  call   *%rbp
  test   %eax,%eax
  jne    L3670
  movl   $0x0,0x50(%rbx)
L3670:
  mov    $0x17,%edi
  call   *%r12
  cmp    $0xffffffff,%eax
  je     L3936
  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  D431(%rip),%xmm0
  addss  0x3c(%r13),%xmm0
  movss  %xmm0,0x3c(%r13)
L1311:
  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    L1686
  movl   $0x0,0x140(%rbx)
L1686:
  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    L1133
  cmpl   $0x0,0x190(%rbx)
  je     L2407
L1133:
  mov    $0x2712,%esi
  mov    $0x7,%edi
  call   *%rbp
  test   %eax,%eax
  jne    L2960
  mov    $0xfa0,%esi
  mov    $0xa,%edi
  call   *%r15
L2960:
  mov    $0x2712,%esi
  mov    $0x7,%edi
  call   *%rbp
  test   %eax,%eax
  jne    L4022
  cmpl   $0x0,0x1c4(%rbx)
  jne    L4022
  cmpl   $0x1,0x1e0(%rbx)
  je     L2654
  nop
L620:
  mov    $0x2713,%esi
  mov    $0x7,%edi
  call   *%rbp
  test   %eax,%eax
  jne    L3048
  mov    $0xbb8,%esi
  mov    $0xb,%edi
  call   *%r15
  movl   $0x1,0x144(%rbx)
L3048:
  mov    $0x2713,%esi
  mov    $0x7,%edi
  call   *%rbp
  test   %eax,%eax
  jne    L329
  cmpl   $0x0,0x1bc(%rbx)
  jne    L329
  cmpl   $0x1,0x1dc(%rbx)
  je     L826
  nopl   (%rax)
L3075:
  mov    0x14(%rsp),%eax
  or     0x190(%rbx),%eax
  jne    L1266
  xor    %edi,%edi
  call   *%r12
  add    $0x1,%eax
  je     L3260
L1266:
  xor    %r14d,%r14d
  cmpl   $0x1,0x190(%rbx)
  movl   $0x0,0x10(%rsp)
  je     L2715
L3774:
  mov    $0x1,%edi
  call   *%r12
  cmp    $0x64,%eax
  jne    L1464
  movl   $0x1,0x194(%rbx)
L1464:
  mov    $0x1,%edi
  call   *%r12
  cmp    $0x50,%eax
  jne    L3906
  movl   $0x0,0x194(%rbx)
L3906:
  mov    $0x1,%edi
  call   *%r12
  cmp    $0x3c,%eax
  jne    L1217
  movl   $0x1,0x194(%rbx)
L1217:
  mov    $0x1,%edi
  call   *%r12
  cmp    $0x28,%eax
  jne    L3627
  movl   $0x0,0x194(%rbx)
L3627:
  mov    $0x1,%edi
  call   *%r12
  cmp    $0x14,%eax
  jne    L1358
  movl   $0x1,0x194(%rbx)
L1358:
  mov    $0x1,%edi
  call   *%r12
  test   %eax,%eax
  jne    L1679
  movl   $0x0,0x194(%rbx)
L1679:
  mov    $0x2,%edi
  call   *%r12
  cmp    $0xa0,%eax
  jne    L318
  movl   $0x1,0x194(%rbx)
L318:
  mov    $0x2,%edi
  call   *%r12
  cmp    $0x96,%eax
  jne    L3584
  movl   $0x0,0x194(%rbx)
L3584:
  mov    $0x2,%edi
  call   *%r12
  cmp    $0x82,%eax
  jne    L3819
  movl   $0x1,0x194(%rbx)
L3819:
  mov    $0x2,%edi
  call   *%r12
  cmp    $0x5a,%eax
  jne    L4023
  movl   $0x0,0x194(%rbx)
L4023:
  mov    $0x2,%edi
  call   *%r12
  cmp    $0x46,%eax
  jne    L3507
  movl   $0x1,0x194(%rbx)
L3507:
  mov    $0x2,%edi
  call   *%r12
  cmp    $0x3c,%eax
  jne    L3489
  movl   $0x0,0x194(%rbx)
L3489:
  mov    $0x2,%edi
  call   *%r12
  cmp    $0x28,%eax
  jne    L2938
  movl   $0x1,0x194(%rbx)
L2938:
  mov    $0x2,%edi
  call   *%r12
  test   %eax,%eax
  jne    L868
  movl   $0x0,0x194(%rbx)
L868:
  cmpl   $0x2,0x190(%rbx)
  je     L3549
L2804:
  mov    0x14(%rsp),%r8d
  test   %r8d,%r8d
  jne    L3601
  cmpl   $0x2,0x190(%rbx)
  jg     L1115
L3601:
  mov    $0x2711,%esi
  mov    $0x7,%edi
  call   *%rbp
  test   %eax,%eax
  je     L2389
  mov    $0x2712,%esi
  mov    $0x7,%edi
  call   *%rbp
  test   %eax,%eax
  jne    L2912
L2389:
  xor    %edi,%edi
  call   *%r12
  cmp    $0xffffffff,%eax
  je     L154
L1563:
  mov    $0x2711,%esi
  mov    $0x4,%edi
  call   *%rbp
  cmp    $0x1,%eax
  je     L1984
  mov    $0x2712,%esi
  mov    $0x4,%edi
  call   *%rbp
  sub    $0x1,%eax
  je     L1984
  mov    $0x2713,%esi
  mov    $0x4,%edi
  call   *%rbp
  sub    $0x1,%eax
  jne    L694
L1984:
  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
L694:
  xor    %edi,%edi
  call   *%r12
  mov    0x10(%rsp),%ecx
  mov    %ecx,0x14(%rsp)
  cmp    $0xffffffff,%eax
  je     L1899
L93:
  xor    %edi,%edi
  call   *%r12
  cmp    $0xffffffff,%eax
  je     L28
L396:
  xor    %edi,%edi
  call   *%r12
  cmp    $0x1d4bf,%eax
  je     L3081
L1470:
  xor    %edi,%edi
  call   *%r12
  cmp    $0x1c907,%eax
  je     L312
L2451:
  cmpl   $0x4,0x190(%rbx)
  je     L2616
L1402:
  cmpl   $0x5,0x190(%rbx)
  je     L1736
L2345:
  mov    $0x14,%edi
  call   *%r12
  cmp    $0xffffffff,%eax
  je     L1462
  mov    $0x9c42,%esi
  mov    $0x2,%edi
  call   *%rbp
  pxor   %xmm0,%xmm0
  cvtsi2ss %eax,%xmm0
  addss  0x10(%r13),%xmm0
  movss  %xmm0,0x10(%r13)
  movss  D431(%rip),%xmm0
  addss  0x18(%r13),%xmm0
  movss  %xmm0,0x18(%r13)
L1891:
  mov    $0x15,%edi
  call   *%r12
  cmp    $0xffffffff,%eax
  je     L1264
  mov    $0x9c43,%esi
  mov    $0x2,%edi
  call   *%rbp
  pxor   %xmm0,%xmm0
  cvtsi2ss %eax,%xmm0
  addss  0x1c(%r13),%xmm0
  movss  %xmm0,0x1c(%r13)
  movss  D431(%rip),%xmm0
  addss  0x24(%r13),%xmm0
  movss  %xmm0,0x24(%r13)
L3691:
  mov    $0x16,%edi
  call   *%r12
  cmp    $0xffffffff,%eax
  je     L2467
  mov    $0x9c41,%esi
  mov    $0x7,%edi
  call   *%rbp
  pxor   %xmm0,%xmm0
  cvtsi2ss %eax,%xmm0
  addss  0x28(%r13),%xmm0
  movss  %xmm0,0x28(%r13)
  movss  D431(%rip),%xmm0
  addss  0x30(%r13),%xmm0
  movss  %xmm0,0x30(%r13)
L3174:
  mov    $0x9c41,%esi
  mov    $0x5,%edi
  call   *%rbp
  pxor   %xmm0,%xmm0
  movss  0xc(%rsp),%xmm3
  cvtsi2sd %eax,%xmm0
  mulsd  D562(%rip),%xmm0
  subsd  D247(%rip),%xmm0
  cvtsd2ss %xmm0,%xmm0
  comiss %xmm0,%xmm3
  movss  %xmm0,0x4(%r13)
  jae    L147
L1064:
  movss  0x0(%r13),%xmm0
  movss  D210(%rip),%xmm4
  comiss %xmm0,%xmm4
  ja     L1084
  comiss D441(%rip),%xmm0
  jbe    L595
L1084:
  movl   $0x41f00000,0x0(%r13)
  movss  D494(%rip),%xmm0
  movss  D328(%rip),%xmm2
L3986:
  movss  0x4(%r13),%xmm1
  mov    0x198(%rbx),%eax
  comiss %xmm1,%xmm2
  jbe    L3408
  cmp    $0x1,%eax
  je     L187
L270:
  test   %eax,%eax
  jne    L682
L2531:
  movl   $0x0,0x188(%rbx)
L682:
  mov    $0x9c41,%esi
  mov    $0x6,%edi
  call   *%rbp
  pxor   %xmm0,%xmm0
  movss  D210(%rip),%xmm5
  cvtsi2sd %eax,%xmm0
  mulsd  D562(%rip),%xmm0
  subsd  D247(%rip),%xmm0
  cvtsd2ss %xmm0,%xmm0
  comiss %xmm0,%xmm5
  movss  %xmm0,0xc(%r13)
  jbe    L3605
  mov    $0x7,%edi
  call   *%r12
  test   %eax,%eax
  je     L1255
L3605:
  movss  0x8(%r13),%xmm0
  movss  D210(%rip),%xmm6
  comiss %xmm0,%xmm6
  ja     L3833
  comiss D441(%rip),%xmm0
  jbe    L389
L3833:
  movl   $0x41f80000,0x8(%r13)
  movss  D392(%rip),%xmm0
  movss  D400(%rip),%xmm2
L3661:
  movss  0xc(%r13),%xmm1
  mov    0x19c(%rbx),%eax
  comiss %xmm1,%xmm2
  jbe    L925
  cmp    $0x1,%eax
  je     L668
L856:
  test   %eax,%eax
  jne    L3965
L3312:
  movl   $0x0,0x18c(%rbx)
L3965:
  mov    0x1a4(%rbx),%eax
  cmp    $0x1,%eax
  je     L1917
  test   %eax,%eax
  je     L2218
L3244:
  mov    0x1ac(%rbx),%eax
  cmp    $0x1,%eax
  je     L2463
  test   %eax,%eax
  je     L586
L2476:
  mov    0x1b4(%rbx),%eax
  cmp    $0x1,%eax
  je     L2452
  test   %eax,%eax
  je     L2283
L505:
  mov    0x1b8(%rbx),%eax
  cmp    $0x1,%eax
  je     L3883
  mov    0x1bc(%rbx),%edx
  cmp    $0x1,%edx
  je     L3558
  or     %edx,%eax
  je     L2763
L3044:
  mov    0x1c0(%rbx),%eax
  cmp    $0x1,%eax
  je     L3604
  mov    0x1c4(%rbx),%edx
  cmp    $0x1,%edx
  je     L1495
  or     %edx,%eax
  je     L3470
L1800:
  mov    0x1cc(%rbx),%eax
  cmp    $0x1,%eax
  je     L566
  test   %eax,%eax
  je     L769
L1285:
  mov    0x1d0(%rbx),%eax
  cmp    $0x1,%eax
  je     L3603
  test   %eax,%eax
  je     L3202
L2095:
  mov    0x1d4(%rbx),%eax
  cmp    $0x1,%eax
  je     L2602
  test   %eax,%eax
  je     L3750
L3431:
  mov    0x194(%rbx),%eax
  cmp    $0x1,%eax
  je     L3770
  test   %eax,%eax
  je     L2657
L3409:
  mov    0x188(%rbx),%eax
  cmp    $0x1,%eax
  je     L1973
  test   %eax,%eax
  je     L3594
L688:
  mov    0x18c(%rbx),%eax
  cmp    $0x1,%eax
  je     L3547
  test   %eax,%eax
  je     L540
L1337:
  mov    0x14(%rsp),%edx
  test   %edx,%edx
  je     L636
  cmpl   $0x13,0x4b0(%rbx)
  jg     L955
L433:
  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)
L636:
  mov    0x184(%rbx),%eax
  test   %eax,%eax
  jne    L1054
  movl   $0x1,0x184(%rbx)
L1054:
  add    $0x28,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
  nopl   0x0(%rax)
L4022:
  cmpl   $0x1,0x1c4(%rbx)
  jne    L620
L1664:
  mov    $0xa,%edi
  call   *%r12
  test   %eax,%eax
  jne    L2992
L943:
  movl   $0x0,0x1c4(%rbx)
  jmp    L620
  nopl   0x0(%rax)
L329:
  cmpl   $0x1,0x1bc(%rbx)
  jne    L3075
L1882:
  mov    $0xb,%edi
  call   *%r12
  test   %eax,%eax
  jne    L3477
L2466:
  movl   $0x0,0x1bc(%rbx)
  jmp    L3075
L3558:
  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     L375
L2043:
  cmpl   $0x3,0x190(%rbx)
  jle    L690
L3883:
  mov    $0x4,%esi
  mov    $0x1,%edi
  call   *%rbp
  test   %eax,%eax
  jne    L690
  mov    $0x1,%edx
  mov    $0x4,%esi
  mov    $0x1,%edi
  call   *0x68(%rsp)
L690:
  cmpl   $0x1,0x1b8(%rbx)
  je     L3552
  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    L2279
  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    L2279
L3552:
  mov    $0x3,%esi
  mov    $0x2,%edi
  call   *%rbp
  test   %eax,%eax
  jne    L3044
  mov    $0x1,%edx
  mov    $0x3,%esi
  mov    $0x2,%edi
  call   *0x68(%rsp)
  jmp    L3044
L1495:
  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    L1681
L3604:
  mov    $0x1,%esi
  mov    $0x7,%edi
  call   *%rbp
  test   %eax,%eax
  jne    L1681
  mov    $0x1,%edx
  mov    $0x1,%esi
  mov    $0x7,%edi
  call   *0x68(%rsp)
L1681:
  mov    $0x1,%esi
  mov    $0x2,%edi
  call   *%rbp
  test   %eax,%eax
  jne    L1800
  mov    $0x1,%edx
  mov    $0x1,%esi
  mov    $0x2,%edi
  call   *0x68(%rsp)
  jmp    L1800
L925:
  comiss %xmm0,%xmm1
  jbe    L856
  cmp    $0x1,%eax
  jne    L856
  jmp    L3312
L3408:
  comiss %xmm0,%xmm1
  jbe    L270
  cmp    $0x1,%eax
  jne    L270
  jmp    L2531
L2283:
  mov    $0x2,%esi
  mov    $0x7,%edi
  call   *%rbp
  sub    $0x1,%eax
  jne    L505
  xor    %edx,%edx
  mov    $0x2,%esi
  mov    $0x7,%edi
  call   *0x68(%rsp)
  jmp    L505
L2218:
  mov    $0x1,%esi
  mov    $0x1,%edi
  call   *%rbp
  sub    $0x1,%eax
  jne    L3244
  xor    %edx,%edx
  mov    $0x1,%esi
  mov    $0x1,%edi
  call   *0x68(%rsp)
  jmp    L3244
L586:
  mov    $0x2,%esi
  mov    $0x1,%edi
  call   *%rbp
  sub    $0x1,%eax
  jne    L2476
  xor    %edx,%edx
  mov    $0x2,%esi
  mov    $0x1,%edi
  call   *0x68(%rsp)
  jmp    L2476
L540:
  mov    $0x3,%esi
  mov    $0x1,%edi
  call   *%rbp
  sub    $0x1,%eax
  jne    L1337
  xor    %edx,%edx
  mov    $0x3,%esi
  mov    $0x1,%edi
  call   *0x68(%rsp)
  jmp    L1337
L3594:
  mov    $0x3,%esi
  mov    $0x7,%edi
  call   *%rbp
  sub    $0x1,%eax
  jne    L688
  xor    %edx,%edx
  mov    $0x3,%esi
  mov    $0x7,%edi
  call   *0x68(%rsp)
  jmp    L688
L2657:
  mov    $0x4,%esi
  mov    $0x2,%edi
  call   *%rbp
  sub    $0x1,%eax
  jne    L3409
  xor    %edx,%edx
  mov    $0x4,%esi
  mov    $0x2,%edi
  call   *0x68(%rsp)
  jmp    L3409
L3750:
  mov    $0x2,%esi
  mov    $0x2,%edi
  call   *%rbp
  sub    $0x1,%eax
  jne    L3431
  xor    %edx,%edx
  mov    $0x2,%esi
  mov    $0x2,%edi
  call   *0x68(%rsp)
  jmp    L3431
L3202:
  mov    $0x4,%esi
  mov    $0x7,%edi
  call   *%rbp
  sub    $0x1,%eax
  jne    L2095
  xor    %edx,%edx
  mov    $0x4,%esi
  mov    $0x7,%edi
  call   *0x68(%rsp)
  jmp    L2095
L769:
  mov    $0x1,%esi
  mov    $0x3,%edi
  call   *%rbp
  sub    $0x1,%eax
  jne    L1285
  xor    %edx,%edx
  mov    $0x1,%esi
  mov    $0x3,%edi
  call   *0x68(%rsp)
  jmp    L1285
L389:
  movss  D431(%rip),%xmm1
  movaps %xmm0,%xmm2
  subss  %xmm1,%xmm2
  addss  %xmm1,%xmm0
  jmp    L3661
L2407:
  cmpl   $0x0,0x140(%rbx)
  jne    L1133
  movsd  D139(%rip),%xmm1
  pxor   %xmm0,%xmm0
  cvtss2sd 0x38(%r13),%xmm0
  comisd %xmm0,%xmm1
  jbe    L1133
  movl   $0x1,0x140(%rbx)
  movl   $0x1,0x1a4(%rbx)
  jmp    L1133
L669:
  cmpl   $0x1,0x1d8(%rbx)
  jne    L2535
  cmpl   $0x1,0x48(%rbx)
  jne    L2535
  movl   $0x0,0x1d8(%rbx)
  or     $0xffffffff,%esi
  mov    $0x6,%edi
  call   *%r15
  jmp    L2535
L2787:
  cmpl   $0x1,0x1d4(%rbx)
  jne    L3322
  cmpl   $0x1,0x48(%rbx)
  jne    L3322
  movl   $0x0,0x1d4(%rbx)
  or     $0xffffffff,%esi
  mov    $0x6,%edi
  call   *%r15
  jmp    L3322
L2483:
  cmpl   $0x1,0x4c(%rbx)
  je     L742
  cmpl   $0x1,0x50(%rbx)
  jne    L673
L742:
  movl   $0x0,0x1d0(%rbx)
  or     $0xffffffff,%esi
  mov    $0x6,%edi
  call   *%r15
  jmp    L673
L955:
  movl   $0x0,0x4b0(%rbx)
  jmp    L433
L1255:
  movl   $0x0,0x19c(%rbx)
  jmp    L3605
L595:
  movss  D431(%rip),%xmm1
  movaps %xmm0,%xmm2
  subss  %xmm1,%xmm2
  addss  %xmm1,%xmm0
  jmp    L3986
L2912:
  mov    $0x2713,%esi
  mov    $0x7,%edi
  call   *%rbp
  test   %eax,%eax
  je     L2389
  mov    $0x2711,%esi
  mov    $0x3,%edi
  call   *%rbp
  test   %eax,%eax
  je     L2389
  mov    $0x2712,%esi
  mov    $0x3,%edi
  call   *%rbp
  test   %eax,%eax
  je     L2389
  jmp    L1563
L1115:
  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    L3601
L2279:
  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     L3552
  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     L3552
  cmpl   $0x3,0x190(%rbx)
  jg     L3552
  jmp    L3044
L147:
  mov    $0x7,%edi
  call   *%r12
  test   %eax,%eax
  jne    L1064
  movl   $0x0,0x198(%rbx)
  jmp    L1064
L948:
  movl   $0x0,0x18(%rsp)
  movl   $0x0,0x1c(%rsp)
  jmp    L2317
L3890:
  cmpl   $0x1,0x1d8(%rbx)
  jne    L3384
  cmpl   $0x0,0x50(%rbx)
  jne    L3384
  movl   $0x0,0x1d8(%rbx)
  mov    $0x46,%esi
  mov    $0x6,%edi
  movl   $0x1,0x50(%rbx)
  call   *%r15
  jmp    L3384
L2354:
  cmpl   $0x1,0x1d4(%rbx)
  jne    L1924
  cmpl   $0x0,0x4c(%rbx)
  jne    L1924
  movl   $0x0,0x1d4(%rbx)
  mov    $0x46,%esi
  mov    $0x6,%edi
  movl   $0x1,0x4c(%rbx)
  call   *%r15
  jmp    L1924
L1899:
  mov    0x190(%rbx),%eax
  mov    %eax,0x14(%rsp)
  cmp    $0x4,%eax
  je     L3278
  mov    0x10(%rsp),%eax
  mov    %eax,0x14(%rsp)
  jmp    L93
L2452:
  mov    $0x2,%esi
  mov    $0x7,%edi
  call   *%rbp
  test   %eax,%eax
  jne    L505
  mov    $0x1,%edx
  mov    $0x2,%esi
  mov    $0x7,%edi
  call   *0x68(%rsp)
  jmp    L505
L1248:
  cmpl   $0x1,0x1d0(%rbx)
  jne    L3387
  cmpl   $0x0,0x48(%rbx)
  jne    L3387
  movl   $0x0,0x1d0(%rbx)
  mov    $0x46,%esi
  mov    $0x6,%edi
  movl   $0x1,0x48(%rbx)
  call   *%r15
  jmp    L3387
L2931:
  cmpl   $0x0,0x1d4(%rbx)
  jne    L1502
  cmpl   $0x0,0x4c(%rbx)
  jne    L1502
  movl   $0x1,0x1d4(%rbx)
  mov    $0x46,%esi
  mov    $0x6,%edi
  movl   $0x1,0x4c(%rbx)
  call   *%r15
  jmp    L1502
L566:
  mov    $0x1,%esi
  mov    $0x3,%edi
  call   *%rbp
  test   %eax,%eax
  jne    L1285
  mov    $0x1,%edx
  mov    $0x1,%esi
  mov    $0x3,%edi
  call   *0x68(%rsp)
  jmp    L1285
L1917:
  mov    $0x1,%esi
  mov    $0x1,%edi
  call   *%rbp
  test   %eax,%eax
  jne    L3244
  mov    $0x1,%edx
  mov    $0x1,%esi
  mov    $0x1,%edi
  call   *0x68(%rsp)
  jmp    L3244
L2463:
  mov    $0x2,%esi
  mov    $0x1,%edi
  call   *%rbp
  test   %eax,%eax
  jne    L2476
  mov    $0x1,%edx
  mov    $0x2,%esi
  mov    $0x1,%edi
  call   *0x68(%rsp)
  jmp    L2476
L3547:
  mov    $0x3,%esi
  mov    $0x1,%edi
  call   *%rbp
  test   %eax,%eax
  jne    L1337
  mov    $0x1,%edx
  mov    $0x3,%esi
  mov    $0x1,%edi
  call   *0x68(%rsp)
  jmp    L1337
L3936:
  movss  0x3c(%r13),%xmm1
  pxor   %xmm7,%xmm7
  pxor   %xmm0,%xmm0
  movss  %xmm7,0xc(%rsp)
  comiss %xmm7,%xmm1
  jbe    L1903
  movss  0x34(%r13),%xmm0
  divss  %xmm1,%xmm0
  mulss  D524(%rip),%xmm0
L1903:
  movss  %xmm0,0x38(%r13)
  mov    $0x1770,%esi
  mov    $0x17,%edi
  movl   $0x0,0x34(%r13)
  movl   $0x0,0x3c(%r13)
  call   *%r15
  jmp    L1311
L2137:
  cmpl   $0x0,0x1d8(%rbx)
  jne    L2532
  cmpl   $0x0,0x50(%rbx)
  jne    L2532
  movl   $0x1,0x1d8(%rbx)
  mov    $0x46,%esi
  mov    $0x6,%edi
  movl   $0x1,0x50(%rbx)
  call   *%r15
  jmp    L2532
L495:
  cmpl   $0x0,0x1a4(%rbx)
  jne    L3469
  cmpl   $0x0,0x28(%rbx)
  jne    L3469
  movl   $0x1,0x1a4(%rbx)
  movl   $0x1,0x28(%rbx)
  jmp    L3469
L98:
  cmpl   $0x0,0x1a8(%rbx)
  jne    L2831
  cmpl   $0x0,0x2c(%rbx)
  jne    L2831
  movl   $0x1,0x1a8(%rbx)
  movl   $0x1,0x2c(%rbx)
  jmp    L2831
L1895:
  cmpl   $0x1,0x1a4(%rbx)
  jne    L2391
  cmpl   $0x0,0x28(%rbx)
  jne    L2391
  movl   $0x0,0x1a4(%rbx)
  movl   $0x1,0x28(%rbx)
  jmp    L2391
L2490:
  cmpl   $0x0,0x1b0(%rbx)
  jne    L1909
  cmpl   $0x0,0x34(%rbx)
  jne    L1909
  movl   $0x1,0x1b0(%rbx)
  movl   $0x1,0x34(%rbx)
  jmp    L1909
L1182:
  cmpl   $0x1,0x1ac(%rbx)
  jne    L1613
  cmpl   $0x0,0x30(%rbx)
  jne    L1613
  movl   $0x0,0x1ac(%rbx)
  movl   $0x1,0x30(%rbx)
  jmp    L1613
L1082:
  cmpl   $0x0,0x1ac(%rbx)
  jne    L2642
  cmpl   $0x0,0x30(%rbx)
  jne    L2642
  movl   $0x1,0x1ac(%rbx)
  movl   $0x1,0x30(%rbx)
  jmp    L2642
L3898:
  cmpl   $0x1,0x1a8(%rbx)
  jne    L3399
  cmpl   $0x0,0x2c(%rbx)
  jne    L3399
  movl   $0x0,0x1a8(%rbx)
  movl   $0x1,0x2c(%rbx)
  jmp    L3399
L230:
  cmpl   $0x0,0x1cc(%rbx)
  jne    L2829
  cmpl   $0x0,0x44(%rbx)
  jne    L2829
  movl   $0x1,0x1cc(%rbx)
  movl   $0x1,0x44(%rbx)
  jmp    L2829
L1214:
  cmpl   $0x1,0x1c0(%rbx)
  jne    L2869
  cmpl   $0x0,0x40(%rbx)
  jne    L2869
  movl   $0x0,0x1c0(%rbx)
  movl   $0x1,0x40(%rbx)
  jmp    L2869
L1026:
  cmpl   $0x0,0x1c0(%rbx)
  jne    L3949
  cmpl   $0x0,0x40(%rbx)
  jne    L3949
  movl   $0x1,0x1c0(%rbx)
  movl   $0x1,0x40(%rbx)
  jmp    L3949
L3102:
  cmpl   $0x1,0x1b8(%rbx)
  jne    L735
  cmpl   $0x0,0x3c(%rbx)
  jne    L735
  movl   $0x0,0x1b8(%rbx)
  movl   $0x1,0x3c(%rbx)
  jmp    L735
L1879:
  cmpl   $0x0,0x1b8(%rbx)
  jne    L2020
  cmpl   $0x0,0x3c(%rbx)
  jne    L2020
  movl   $0x1,0x1b8(%rbx)
  movl   $0x1,0x3c(%rbx)
  jmp    L2020
L2836:
  cmpl   $0x1,0x1b4(%rbx)
  jne    L302
  cmpl   $0x0,0x38(%rbx)
  jne    L302
  movl   $0x0,0x1b4(%rbx)
  movl   $0x1,0x38(%rbx)
  jmp    L302
L3450:
  cmpl   $0x0,0x1b4(%rbx)
  jne    L233
  cmpl   $0x0,0x38(%rbx)
  jne    L233
  movl   $0x1,0x1b4(%rbx)
  movl   $0x1,0x38(%rbx)
  jmp    L233
L3474:
  cmpl   $0x1,0x1b0(%rbx)
  jne    L589
  cmpl   $0x0,0x34(%rbx)
  jne    L589
  movl   $0x0,0x1b0(%rbx)
  movl   $0x1,0x34(%rbx)
  jmp    L589
L2321:
  cmpl   $0x0,0x1d0(%rbx)
  jne    L108
  cmpl   $0x0,0x48(%rbx)
  jne    L108
  movl   $0x1,0x1d0(%rbx)
  mov    $0x46,%esi
  mov    $0x6,%edi
  movl   $0x1,0x48(%rbx)
  call   *%r15
  jmp    L108
L3310:
  cmpl   $0x1,0x1cc(%rbx)
  jne    L1274
  cmpl   $0x0,0x44(%rbx)
  jne    L1274
  movl   $0x0,0x1cc(%rbx)
  movl   $0x1,0x44(%rbx)
  jmp    L1274
L3549:
  xor    %edi,%edi
  call   *%r12
  add    $0x1,%eax
  jne    L2804
  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    L2804
  xor    %ecx,%ecx
  xor    %edx,%edx
  lea    D452(%rip),%rsi
  lea    D284(%rip),%rdi
  call   *0x88(%rsp)
  jmp    L2804
L3260:
  movl   $0x1,0x190(%rbx)
L2715:
  mov    $0x2711,%esi
  mov    $0x7,%edi
  call   *%rbp
  sub    $0x1,%eax
  je     L41
L3844:
  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    L3098
L2554:
  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    L3774
L2602:
  mov    $0x2,%esi
  mov    $0x2,%edi
  call   *%rbp
  test   %eax,%eax
  jne    L3431
  mov    $0x1,%edx
  mov    $0x2,%esi
  mov    $0x2,%edi
  call   *0x68(%rsp)
  jmp    L3431
L3603:
  mov    $0x4,%esi
  mov    $0x7,%edi
  call   *%rbp
  test   %eax,%eax
  jne    L2095
  mov    $0x1,%edx
  mov    $0x4,%esi
  mov    $0x7,%edi
  call   *0x68(%rsp)
  jmp    L2095
L1973:
  mov    $0x3,%esi
  mov    $0x7,%edi
  call   *%rbp
  test   %eax,%eax
  jne    L688
  mov    $0x1,%edx
  mov    $0x3,%esi
  mov    $0x7,%edi
  call   *0x68(%rsp)
  jmp    L688
L3770:
  mov    $0x4,%esi
  mov    $0x2,%edi
  call   *%rbp
  test   %eax,%eax
  jne    L3409
  mov    $0x1,%edx
  mov    $0x4,%esi
  mov    $0x2,%edi
  call   *0x68(%rsp)
  jmp    L3409
L2616:
  xor    %edi,%edi
  call   *%r12
  mov    $0x64,%ecx
  cltd
  idiv   %ecx
  test   %edx,%edx
  jne    L2608
  movl   $0x1,0x194(%rbx)
L2608:
  xor    %edi,%edi
  call   *%r12
  mov    $0x64,%ecx
  sub    $0x32,%eax
  cltd
  idiv   %ecx
  test   %edx,%edx
  jne    L1402
  movl   $0x0,0x194(%rbx)
  jmp    L1402
L312:
  cmpl   $0x5,0x190(%rbx)
  jne    L2451
  mov    0x1c(%rsp),%eax
  sub    $0x4,%eax
  cmp    $0x1,%eax
  jbe    L3348
L1736:
  xor    %edi,%edi
  call   *%r12
  cmp    $0x1bd50,%eax
  jle    L2786
  xor    %edi,%edi
  call   *%r12
  mov    $0x12c,%ecx
  cltd
  idiv   %ecx
  test   %edx,%edx
  jne    L3145
  movl   $0x1,0x194(%rbx)
L3145:
  xor    %edi,%edi
  call   *%r12
  mov    $0x12c,%ecx
  sub    $0x64,%eax
  cltd
  idiv   %ecx
  test   %edx,%edx
  jne    L2345
L3172:
  movl   $0x0,0x194(%rbx)
  jmp    L2345
L3081:
  cmpl   $0x5,0x190(%rbx)
  jne    L1470
  mov    0x1c(%rsp),%eax
  sub    $0x4,%eax
  cmp    $0x1,%eax
  ja     L1470
  xor    %ecx,%ecx
  xor    %edx,%edx
  cmpl   $0x1,0x18(%rsp)
  je     L1513
  cmpl   $0x2,0x18(%rsp)
  je     L2587
  cmpl   $0x3,0x18(%rsp)
  je     L2026
  cmpl   $0x4,0x18(%rsp)
  je     L1874
  cmpl   $0x5,0x18(%rsp)
  je     L2035
  cmpl   $0x6,0x18(%rsp)
  je     L3449
  cmpl   $0x7,0x18(%rsp)
  je     L1215
  cmpl   $0x8,0x18(%rsp)
  je     L3718
  lea    D390(%rip),%rsi
  lea    D284(%rip),%rdi
  call   *0x88(%rsp)
  jmp    L1470
L28:
  cmpl   $0x5,0x190(%rbx)
  jne    L396
  mov    $0x1d4c0,%esi
  xor    %edi,%edi
  call   *%r15
  jmp    L396
L2467:
  movss  0x30(%r13),%xmm1
  comiss 0xc(%rsp),%xmm1
  pxor   %xmm0,%xmm0
  jbe    L739
  movss  0x28(%r13),%xmm0
  divss  %xmm1,%xmm0
  mulss  D524(%rip),%xmm0
L739:
  movss  %xmm0,0x2c(%r13)
  mov    $0x1770,%esi
  mov    $0x16,%edi
  movl   $0x0,0x28(%r13)
  movl   $0x0,0x30(%r13)
  call   *%r15
  jmp    L3174
L1264:
  movss  0x24(%r13),%xmm1
  comiss 0xc(%rsp),%xmm1
  pxor   %xmm0,%xmm0
  jbe    L1018
  movss  0x1c(%r13),%xmm0
  divss  %xmm1,%xmm0
  mulss  D524(%rip),%xmm0
L1018:
  movss  %xmm0,0x20(%r13)
  mov    $0x1770,%esi
  mov    $0x15,%edi
  movl   $0x0,0x1c(%r13)
  movl   $0x0,0x24(%r13)
  call   *%r15
  jmp    L3691
L1462:
  movss  0x18(%r13),%xmm1
  comiss 0xc(%rsp),%xmm1
  pxor   %xmm0,%xmm0
  jbe    L3645
  movss  0x10(%r13),%xmm0
  divss  %xmm1,%xmm0
  mulss  D524(%rip),%xmm0
L3645:
  movss  %xmm0,0x14(%r13)
  mov    $0x1770,%esi
  mov    $0x14,%edi
  movl   $0x0,0x10(%r13)
  movl   $0x0,0x18(%r13)
  call   *%r15
  jmp    L1891
L2786:
  cmpl   $0x5,0x190(%rbx)
  jne    L2345
  cmpl   $0x1,0x194(%rbx)
  jne    L2345
  jmp    L3172
L154:
  mov    0x190(%rbx),%edx
  cmp    $0x3,%edx
  jne    L1563
  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    L1563
L375:
  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     L3883
  jmp    L2043
L1923:
  cmpl   $0x0,0x1d4(%rbx)
  jne    L1190
  cmpl   $0x1,0x48(%rbx)
  jne    L1190
  movl   $0x1,0x1d4(%rbx)
  or     $0xffffffff,%esi
  mov    $0x6,%edi
  call   *%r15
  jmp    L1190
L942:
  cmpl   $0x0,0x1d8(%rbx)
  jne    L3777
  cmpl   $0x1,0x48(%rbx)
  jne    L3777
  movl   $0x1,0x1d8(%rbx)
  or     $0xffffffff,%esi
  mov    $0x6,%edi
  call   *%r15
  jmp    L3777
L668:
  movl   $0x1,0x18c(%rbx)
  comiss %xmm0,%xmm1
  ja     L3312
  jmp    L3965
L187:
  movl   $0x1,0x188(%rbx)
  comiss %xmm0,%xmm1
  ja     L2531
  jmp    L682
L2992:
  cmpl   $0x0,0x1e0(%rbx)
  jne    L620
  jmp    L943
L3477:
  cmpl   $0x0,0x1dc(%rbx)
  jne    L3075
  jmp    L2466
L1404:
  cmpl   $0x1,0x4c(%rbx)
  je     L3204
  cmpl   $0x1,0x50(%rbx)
  jne    L179
L3204:
  movl   $0x1,0x1d0(%rbx)
  or     $0xffffffff,%esi
  mov    $0x6,%edi
  call   *%r15
  jmp    L179
L3098:
  xor    %r14d,%r14d
  cmpl   $0x0,0x10(%rsp)
  sete   %r14b
  jmp    L2554
L3470:
  mov    $0x1,%esi
  mov    $0x7,%edi
  call   *%rbp
  sub    $0x1,%eax
  jne    L1147
  xor    %edx,%edx
  mov    $0x1,%esi
  mov    $0x7,%edi
  call   *0x68(%rsp)
L1147:
  mov    $0x1,%esi
  mov    $0x2,%edi
  call   *%rbp
  sub    $0x1,%eax
  jne    L1800
  xor    %edx,%edx
  mov    $0x1,%esi
  mov    $0x2,%edi
  call   *0x68(%rsp)
  jmp    L1800
L2763:
  mov    $0x4,%esi
  mov    $0x1,%edi
  call   *%rbp
  sub    $0x1,%eax
  jne    L86
  xor    %edx,%edx
  mov    $0x4,%esi
  mov    $0x1,%edi
  call   *0x68(%rsp)
L86:
  mov    $0x3,%esi
  mov    $0x2,%edi
  call   *%rbp
  sub    $0x1,%eax
  jne    L3044
  xor    %edx,%edx
  mov    $0x3,%esi
  mov    $0x2,%edi
  call   *0x68(%rsp)
  jmp    L3044
L826:
  movl   $0x1,0x1bc(%rbx)
  jmp    L1882
L2654:
  movl   $0x1,0x1c4(%rbx)
  jmp    L1664
L41:
  mov    $0x2712,%esi
  mov    $0x7,%edi
  call   *%rbp
  sub    $0x1,%eax
  jne    L3844
  mov    $0x2711,%esi
  mov    $0x3,%edi
  call   *%rbp
  sub    $0x1,%eax
  jne    L3844
  mov    $0x2712,%esi
  mov    $0x3,%edi
  call   *%rbp
  sub    $0x1,%eax
  jne    L3844
  or     $0xffffffff,%esi
  mov    $0xa,%edi
  xor    %r14d,%r14d
  call   *%r15
  xor    %edi,%edi
  mov    $0xbb8,%esi
  movq   $0x0,0x1a4(%rbx)
  movq   $0x0,0x1ac(%rbx)
  movl   $0x0,0x1b4(%rbx)
  movq   $0x0,0x1c0(%rbx)
  movq   $0x0,0x1c8(%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    L3774
L3278:
  movl   $0x5,0x190(%rbx)
  mov    $0x2711,%esi
  mov    $0x7,%edi
  call   *%rbp
  test   %eax,%eax
  je     L3490
  mov    $0x2712,%esi
  mov    $0x7,%edi
  call   *%rbp
  test   %eax,%eax
  je     L116
  mov    $0x2713,%esi
  mov    $0x7,%edi
  call   *%rbp
  test   %eax,%eax
  je     L2566
  mov    $0x2711,%esi
  mov    $0x3,%edi
  call   *%rbp
  test   %eax,%eax
  je     L2203
  mov    $0x2712,%esi
  mov    $0x3,%edi
  call   *%rbp
  test   %eax,%eax
  je     L1771
  mov    $0x2712,%esi
  mov    $0x4,%edi
  call   *%rbp
  sub    $0x1,%eax
  je     L1087
  mov    $0x2711,%esi
  mov    $0x4,%edi
  call   *%rbp
  sub    $0x1,%eax
  je     L2513
  mov    $0x2713,%esi
  mov    $0x4,%edi
  call   *%rbp
  sub    $0x1,%eax
  je     L2348
  cmpl   $0x5,0x1c(%rsp)
  cmove  0x18(%rsp),%r14d
  jmp    L93
L3490:
  mov    $0x1,%r14d
  jmp    L93
L3348:
  xor    %ecx,%ecx
  xor    %edx,%edx
  cmpl   $0x1,0x18(%rsp)
  je     L2077
  cmpl   $0x2,0x18(%rsp)
  je     L3063
  cmpl   $0x3,0x18(%rsp)
  je     L1958
  cmpl   $0x4,0x18(%rsp)
  je     L1069
  cmpl   $0x5,0x18(%rsp)
  je     L1758
  cmpl   $0x6,0x18(%rsp)
  je     L2802
  cmpl   $0x7,0x18(%rsp)
  je     L1791
  cmpl   $0x8,0x18(%rsp)
  je     L1560
  lea    D390(%rip),%rsi
  lea    D284(%rip),%rdi
  call   *0x88(%rsp)
  jmp    L2451
L116:
  mov    $0x2,%r14d
  jmp    L93
L1513:
  lea    D296(%rip),%rsi
  lea    D284(%rip),%rdi
  call   *0x88(%rsp)
  jmp    L1470
L2077:
  lea    D296(%rip),%rsi
  lea    D284(%rip),%rdi
  call   *0x88(%rsp)
  jmp    L2451
L2566:
  mov    $0x3,%r14d
  jmp    L93
L2587:
  lea    D173(%rip),%rsi
  lea    D284(%rip),%rdi
  call   *0x88(%rsp)
  jmp    L1470
L3063:
  lea    D173(%rip),%rsi
  lea    D284(%rip),%rdi
  call   *0x88(%rsp)
  jmp    L2451
L1958:
  lea    D450(%rip),%rsi
  lea    D284(%rip),%rdi
  call   *0x88(%rsp)
  jmp    L2451
L2026:
  lea    D450(%rip),%rsi
  lea    D284(%rip),%rdi
  call   *0x88(%rsp)
  jmp    L1470
L1874:
  lea    D462(%rip),%rsi
  lea    D284(%rip),%rdi
  call   *0x88(%rsp)
  jmp    L1470
L1069:
  lea    D462(%rip),%rsi
  lea    D284(%rip),%rdi
  call   *0x88(%rsp)
  jmp    L2451
L2035:
  lea    D347(%rip),%rsi
  lea    D284(%rip),%rdi
  call   *0x88(%rsp)
  jmp    L1470
L1758:
  lea    D347(%rip),%rsi
  lea    D284(%rip),%rdi
  call   *0x88(%rsp)
  jmp    L2451
L2802:
  lea    D364(%rip),%rsi
  lea    D284(%rip),%rdi
  call   *0x88(%rsp)
  jmp    L2451
L3449:
  lea    D364(%rip),%rsi
  lea    D284(%rip),%rdi
  call   *0x88(%rsp)
  jmp    L1470
L2203:
  mov    $0x4,%r14d
  jmp    L93
L1791:
  lea    D380(%rip),%rsi
  lea    D284(%rip),%rdi
  call   *0x88(%rsp)
  jmp    L2451
L1215:
  lea    D380(%rip),%rsi
  lea    D284(%rip),%rdi
  call   *0x88(%rsp)
  jmp    L1470
L1560:
  lea    D304(%rip),%rsi
  lea    D284(%rip),%rdi
  call   *0x88(%rsp)
  jmp    L2451
L3718:
  lea    D304(%rip),%rsi
  lea    D284(%rip),%rdi
  call   *0x88(%rsp)
  jmp    L1470
L1771:
  mov    $0x5,%r14d
  jmp    L93
L1087:
  mov    $0x6,%r14d
  jmp    L93
L2513:
  mov    $0x7,%r14d
  jmp    L93
L2348:
  mov    $0x8,%r14d
  jmp    L93
```

tool_calls: name: parse_data
arguments: label: D431
datatype: byte[4]
name: parse_data
arguments: label: D562
datatype: f64
name: parse_data
arguments: label: D247
datatype: f64
name: parse_data
arguments: label: D210
datatype: byte[4]
name: parse_data
arguments: label: D441
datatype: byte[4]
name: parse_data
arguments: label: D494
datatype: byte[4]
name: parse_data
arguments: label: D328
datatype: byte[4]
name: parse_data
arguments: label: D392
datatype: byte[4]
name: parse_data
arguments: label: D400
datatype: byte[4]
name: parse_data
arguments: label: D139
datatype: f64
name: parse_data
arguments: label: D524
datatype: f32
name: parse_data
arguments: label: D452
datatype: string
name: parse_data
arguments: label: D284
datatype: string
name: parse_data
arguments: label: D390
datatype: string
name: parse_data
arguments: label: D296
datatype: string
name: parse_data
arguments: label: D173
datatype: string
name: parse_data
arguments: label: D450
datatype: string
name: parse_data
arguments: label: D462
datatype: string
name: parse_data
arguments: label: D347
datatype: string
name: parse_data
arguments: label: D364
datatype: string
name: parse_data
arguments: label: D380
datatype: string
name: parse_data
arguments: label: D304
datatype: string

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

tool: D562: 0.01

tool: D247: 327.67

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

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

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

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

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

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

tool: D139: 0.02

tool: D524: 0.0234375

tool: D452: 041F043E044104420430043D043E0432043A04300020043D04300020043E044504400430043D0443

tool: D284: +791........

tool: D390: 0422044004350432043E043304300021

tool: D296: 0422044004350432043E043304300021002004140432043804360435043D043804350020043200200433043E044104420438043D043D043E0439

tool: D173: 0422044004350432043E043304300021002004140432043804360435043D0438043500200432002004320430043D043D043E0439

tool: D450: 0422044004350432043E043304300021002004140432043804360435043D04380435002004320020043A043E044004380434043E04400435

tool: D462: 0422044004350432043E043304300021002004140432043804360435043D04380435002004320020043A043004310438043D043504420435

tool: D347: 0422044004350432043E043304300021002004140432043804360435043D043804350020043200200441043F0430043B044C043D0435

tool: D364: 0422044004350432043E0433043000210020041F0440043E044204350447043A043000200432002004320430043D043D043E04390020043F043E0434002004320430043D043D043E0439

tool: D380: 0422044004350432043E0433043000210020041F0440043E044204350447043A043000200432002004320430043D043D043E04390020043D0430002004410442043E044F043A0435

tool: D304: 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;
  }
}
```