// File: /workspace/github_cpp_makefile_star2_O1/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 %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1b8, %rsp            # imm = 0x1B8
xorl %r15d, %r15d
testl %edi, %edi
sete %bl
leaq 0x30(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x2023d(%rip), %rsi     # 0x30fc0
leaq 0x2024c(%rip), %rdx     # 0x30fd6
leaq 0x20(%rsp), %rdi
callq 0xa7de
leaq 0x10(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x20232(%rip), %rsi     # 0x30fd7
leaq 0x2023d(%rip), %rdx     # 0x30fe9
movq %rsp, %rdi
callq 0xa7de
movl 0x3a15c6(%rip), %edx    # 0x3b2380
leaq 0x20(%rsp), %rdi
movq %rsp, %rsi
callq 0x111e8
movl %eax, 0x3a1b53(%rip)    # 0x3b2920
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x10de3
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x5400
movq 0x20(%rsp), %rdi
cmpq %r14, %rdi
je 0x10dfa
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x5400
leaq 0x20(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x201e1(%rip), %rsi     # 0x30fea
leaq 0x201f4(%rip), %rdx     # 0x31004
callq 0xa7de
movq %rsp, %rdi
movq %r12, (%rdi)
leaq 0x201e3(%rip), %rsi     # 0x31005
leaq 0x201f2(%rip), %rdx     # 0x3101b
callq 0xa7de
movl 0x3a1550(%rip), %edx    # 0x3b2384
leaq 0x20(%rsp), %rdi
movq %rsp, %rsi
callq 0x111e8
movl %eax, 0x3a1add(%rip)    # 0x3b2924
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x10e5d
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x5400
movq 0x20(%rsp), %rdi
cmpq %r14, %rdi
je 0x10e74
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x5400
leaq 0x20(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x20199(%rip), %rsi     # 0x3101c
leaq 0x20197(%rip), %rdx     # 0x31021
callq 0xa7de
movq %rsp, %rdi
movq %r12, (%rdi)
leaq 0x20180(%rip), %rsi     # 0x3101c
leaq 0x2017e(%rip), %rdx     # 0x31021
callq 0xa7de
movl 0x3a14da(%rip), %edx    # 0x3b2388
leaq 0x20(%rsp), %rdi
movq %rsp, %rsi
callq 0x111e8
movl %eax, 0x3a1a67(%rip)    # 0x3b2928
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x10ed7
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x5400
movq 0x20(%rsp), %rdi
cmpq %r14, %rdi
je 0x10eee
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x5400
leaq 0x20(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x20125(%rip), %rsi     # 0x31022
leaq 0x20127(%rip), %rdx     # 0x3102b
callq 0xa7de
movq %rsp, %rdi
movq %r12, (%rdi)
leaq 0x2010c(%rip), %rsi     # 0x31022
leaq 0x2010e(%rip), %rdx     # 0x3102b
callq 0xa7de
movl 0x3a1464(%rip), %edx    # 0x3b238c
leaq 0x20(%rsp), %rdi
movq %rsp, %rsi
callq 0x111e8
movb %bl, %r15b
movl $0x4, %ebp
subq %r15, %rbp
leaq 0x3a19d9(%rip), %r13    # 0x3b2920
movl %eax, (%r13,%rbp,4)
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x10f62
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x5400
movq 0x20(%rsp), %rdi
cmpq %r14, %rdi
je 0x10f79
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x5400
leaq 0x20(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x200a4(%rip), %rsi     # 0x3102c
leaq 0x200ab(%rip), %rdx     # 0x3103a
callq 0xa7de
movq %rsp, %rdi
movq %r12, (%rdi)
leaq 0x2008b(%rip), %rsi     # 0x3102c
leaq 0x20092(%rip), %rdx     # 0x3103a
callq 0xa7de
movl 0x3a13dd(%rip), %edx    # 0x3b2390
leaq 0x20(%rsp), %rdi
movq %rsp, %rsi
callq 0x111e8
addq $0x3, %r15
movl %eax, (%r13,%r15,4)
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x10fdf
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x5400
movq 0x20(%rsp), %rdi
cmpq %r14, %rdi
je 0x10ff6
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x5400
leaq 0x20(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x20036(%rip), %rsi     # 0x3103b
leaq 0x2003e(%rip), %rdx     # 0x3104a
callq 0xa7de
leaq 0x3bc060(%rip), %rdi    # 0x3cd078
leaq 0x20(%rsp), %rsi
callq 0x15516
addq $0x20, %rax
leaq 0x2016a(%rip), %rsi     # 0x31197
movq %rax, %rdi
callq 0x5120
movl %eax, %ebx
movq 0x20(%rsp), %rdi
cmpq %r14, %rdi
je 0x1104e
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x5400
testl %ebx, %ebx
jne 0x11095
movl (%r13,%r15,4), %eax
addl (%r13,%rbp,4), %eax
movl $0x8000, %ecx           # imm = 0x8000
leal (%rax,%rcx), %edx
movl %edx, %esi
sarl $0x10, %esi
shrl $0x1f, %edx
addl %esi, %edx
movl %eax, %esi
andl $0x7fff, %esi           # imm = 0x7FFF
andl %ecx, %eax
subl %eax, %esi
movl %esi, %eax
shrl $0x1f, %eax
addl %esi, %eax
sarl %eax
andl $-0x2, %edx
shll $0xf, %edx
addl %eax, %edx
movl %edx, (%r13,%r15,4)
movl %edx, (%r13,%rbp,4)
xorl %eax, %eax
movsd 0x1fd91(%rip), %xmm0    # 0x30e30
movl $0x500, %ecx            # imm = 0x500
xorps %xmm1, %xmm1
cvtsi2sd %eax, %xmm1
movapd %xmm1, %xmm2
mulsd %xmm0, %xmm2
mulsd %xmm1, %xmm2
cvttsd2si %xmm2, %edx
movl %edx, 0x20(%rsp,%rax,4)
testq %rax, %rax
je 0x110d4
movl 0x1c(%rsp,%rax,4), %esi
addl $0x1e, %esi
cmpl %edx, %esi
cmovgel %edx, %esi
movl %esi, 0x20(%rsp,%rax,4)
movl 0x20(%rsp,%rax,4), %edx
cmpl %ecx, %edx
cmovgel %ecx, %edx
movl %edx, 0x20(%rsp,%rax,4)
incq %rax
cmpq $0x64, %rax
jne 0x110a4
leaq 0x3a18cf(%rip), %rax    # 0x3b29c0
xorl %edx, %edx
movl $0x8000, %ecx           # imm = 0x8000
movdqa 0x1fd60(%rip), %xmm0    # 0x30e60
movl 0xc(%r13,%rdx,4), %esi
addl %ecx, %esi
movd %esi, %xmm1
pshufd $0x0, %xmm1, %xmm1      # xmm1 = xmm1[0,0,0,0]
psrad $0x10, %xmm1
packssdw %xmm1, %xmm1
xorl %esi, %esi
pshuflw $0xe8, 0x20(%rsp,%rsi,4), %xmm2 # xmm2 = mem[0,2,2,3,4,5,6,7]
pshufhw $0xe8, %xmm2, %xmm2     # xmm2 = xmm2[0,1,2,3,4,6,6,7]
pshufd $0xe8, %xmm2, %xmm2     # xmm2 = xmm2[0,2,2,3]
movdqa %xmm2, %xmm3
pmulhw %xmm1, %xmm3
pmullw %xmm1, %xmm2
punpcklwd %xmm3, %xmm2    # xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1],xmm2[2],xmm3[2],xmm2[3],xmm3[3]
movdqa %xmm2, %xmm3
psrad $0x1f, %xmm3
psrld $0x18, %xmm3
paddd %xmm2, %xmm3
pslld $0x8, %xmm3
pand %xmm0, %xmm3
movdqa %xmm3, (%rax,%rsi,4)
addq $0x4, %rsi
cmpq $0x64, %rsi
jne 0x1111b
leaq 0x1(%rdx), %rsi
addq $0x200, %rax            # imm = 0x200
testq %rdx, %rdx
movq %rsi, %rdx
je 0x11100
addq $0x1b8, %rsp            # imm = 0x1B8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x111c1
jmp 0x111dd
jmp 0x111a6
jmp 0x111c1
jmp 0x111dd
jmp 0x111a6
jmp 0x111c1
jmp 0x111dd
jmp 0x111a6
jmp 0x111c1
jmp 0x111dd
jmp 0x111a6
jmp 0x111c1
jmp 0x111dd
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x111c4
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x5400
jmp 0x111c4
movq %rax, %rbx
movq 0x20(%rsp), %rdi
cmpq %r14, %rdi
je 0x111e0
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x5400
jmp 0x111e0
movq %rax, %rbx
movq %rbx, %rdi
callq 0x5790