// File: /workspace/github_cpp_makefile_star2_O2/ATOMIC-LICHESS[P]ATOMKRAFT/evaluate.cpp
// Function: read_evaluation_uci_options(Color)
void read_evaluation_uci_options(Color us) {

  // King safety is asymmetrical. Our king danger level is weighted by
  // "Cowardice" UCI parameter, instead the opponent one by "Aggressiveness".
  const int kingDangerUs   = (us == WHITE ? KingDangerUs   : KingDangerThem);
  const int kingDangerThem = (us == WHITE ? KingDangerThem : KingDangerUs);

  Weights[Mobility]       = weight_option("Mobility (Middle Game)", "Mobility (Endgame)", WeightsInternal[Mobility]);
  Weights[PassedPawns]    = weight_option("Passed Pawns (Middle Game)", "Passed Pawns (Endgame)", WeightsInternal[PassedPawns]);
  Weights[Space]          = weight_option("Space", "Space", WeightsInternal[Space]);
  Weights[kingDangerUs]   = weight_option("Cowardice", "Cowardice", WeightsInternal[KingDangerUs]);
  Weights[kingDangerThem] = weight_option("Aggressiveness", "Aggressiveness", WeightsInternal[KingDangerThem]);

  // If running in analysis mode, make sure we use symmetrical king safety. We do this
  // by replacing both Weights[kingDangerUs] and Weights[kingDangerThem] by their average.
  if (Options["UCI_AnalyseMode"].value<bool>())
      Weights[kingDangerUs] = Weights[kingDangerThem] = (Weights[kingDangerUs] + Weights[kingDangerThem]) / 2;

  init_safety();
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1c0, %rsp            # imm = 0x1C0
xorl %r14d, %r14d
testl %edi, %edi
sete %bl
leaq 0x1a23d(%rip), %rsi     # 0x28ed0
leaq 0x30(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x9c42
leaq 0x1a23e(%rip), %rsi     # 0x28ee7
leaq 0x10(%rsp), %rdi
leaq 0xe(%rsp), %rdx
callq 0x9c42
movl 0x39c6c2(%rip), %edx    # 0x3ab380
leaq 0x30(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0xefa2
movl %eax, 0x39cc4d(%rip)    # 0x3ab920
leaq 0x10(%rsp), %rdi
callq 0x5858
leaq 0x30(%rsp), %rdi
callq 0x5858
leaq 0x1a20c(%rip), %rsi     # 0x28efa
leaq 0x30(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x9c42
leaq 0x1a211(%rip), %rsi     # 0x28f15
leaq 0x10(%rsp), %rdi
leaq 0xe(%rsp), %rdx
callq 0x9c42
movl 0x39c66b(%rip), %edx    # 0x3ab384
leaq 0x30(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0xefa2
movl %eax, 0x39cbf6(%rip)    # 0x3ab924
leaq 0x10(%rsp), %rdi
callq 0x5858
leaq 0x30(%rsp), %rdi
callq 0x5858
leaq 0x1a1e3(%rip), %rsi     # 0x28f2c
leaq 0x30(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x9c42
leaq 0x1a1cd(%rip), %rsi     # 0x28f2c
leaq 0x10(%rsp), %rdi
leaq 0xe(%rsp), %rdx
callq 0x9c42
movl 0x39c614(%rip), %edx    # 0x3ab388
leaq 0x30(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0xefa2
movl %eax, 0x39cb9f(%rip)    # 0x3ab928
leaq 0x10(%rsp), %rdi
callq 0x5858
leaq 0x30(%rsp), %rdi
callq 0x5858
leaq 0x1a18e(%rip), %rsi     # 0x28f32
leaq 0x30(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x9c42
leaq 0x1a178(%rip), %rsi     # 0x28f32
leaq 0x10(%rsp), %rdi
leaq 0xe(%rsp), %rdx
callq 0x9c42
movl 0x39c5bd(%rip), %edx    # 0x3ab38c
leaq 0x30(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0xefa2
movb %bl, %r14b
pushq $0x4
popq %r12
subq %r14, %r12
leaq 0x39cb31(%rip), %r15    # 0x3ab920
movl %eax, (%r15,%r12,4)
leaq 0x10(%rsp), %rdi
callq 0x5858
leaq 0x30(%rsp), %rdi
callq 0x5858
leaq 0x1a12e(%rip), %rsi     # 0x28f3c
leaq 0x30(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x9c42
leaq 0x1a118(%rip), %rsi     # 0x28f3c
leaq 0x10(%rsp), %rdi
leaq 0xe(%rsp), %rdx
callq 0x9c42
movl 0x39c557(%rip), %edx    # 0x3ab390
leaq 0x30(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0xefa2
addq $0x3, %r14
movl %eax, (%r15,%r14,4)
leaq 0x10(%rsp), %rdi
callq 0x5858
leaq 0x30(%rsp), %rdi
callq 0x5858
leaq 0x1a0e0(%rip), %rsi     # 0x28f4b
leaq 0x30(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x9c42
leaq 0x3b71f7(%rip), %rdi    # 0x3c6078
leaq 0x30(%rsp), %rsi
callq 0x11d0c
movq %rax, %rdi
callq 0x11d78
movl %eax, %ebx
leaq 0x30(%rsp), %rdi
callq 0x5858
testb %bl, %bl
je 0xeebb
movl (%r15,%r14,4), %edi
addl (%r15,%r12,4), %edi
pushq $0x2
popq %rsi
callq 0x11d88
movl %eax, (%r15,%r14,4)
movl %eax, (%r15,%r12,4)
xorl %eax, %eax
movsd 0x19e8b(%rip), %xmm0    # 0x28d50
cmpq $0x64, %rax
je 0xef0a
cvtsi2sd %eax, %xmm1
movapd %xmm1, %xmm2
mulsd %xmm0, %xmm2
mulsd %xmm1, %xmm2
cvttsd2si %xmm2, %ecx
testq %rax, %rax
je 0xeef3
movl 0x2c(%rsp,%rax,4), %edx
addl $0x1e, %edx
cmpl %ecx, %edx
jl 0xeef1
movl %ecx, %edx
movl %edx, %ecx
movl $0x500, %edx            # imm = 0x500
cmpl %edx, %ecx
jl 0xef01
movl $0x500, %ecx            # imm = 0x500
movl %ecx, 0x30(%rsp,%rax,4)
incq %rax
jmp 0xeec5
leaq 0x39caaf(%rip), %r14    # 0x3ab9c0
xorl %r12d, %r12d
cmpq $0x2, %r12
je 0xef4c
movl 0xc(%r15,%r12,4), %ebx
xorl %r13d, %r13d
cmpq $0x64, %r13
je 0xef40
movl 0x30(%rsp,%r13,4), %edi
shll $0x10, %edi
movl %ebx, %esi
callq 0x1116c
movl %eax, (%r14,%r13,4)
incq %r13
jmp 0xef22
incq %r12
addq $0x200, %r14            # imm = 0x200
jmp 0xef14
addq $0x1c0, %rsp            # imm = 0x1C0
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
jmp 0xef88
jmp 0xef77
jmp 0xef8d
jmp 0xef88
jmp 0xef77
jmp 0xef8d
jmp 0xef88
jmp 0xef77
jmp 0xef8d
jmp 0xef88
jmp 0xef77
jmp 0xef8d
jmp 0xef88
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x5858
jmp 0xef90
jmp 0xef8d
movq %rax, %rbx
jmp 0xef9a
movq %rax, %rbx
leaq 0x30(%rsp), %rdi
callq 0x5858
movq %rbx, %rdi
callq 0x5780