// File: 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:
subq $0x268, %rsp            # imm = 0x268
movl %edi, 0x264(%rsp)
movl 0x264(%rsp), %eax
subl $0x1, %eax
movl $0x4, %eax
sbbl $0x0, %eax
movl %eax, 0x260(%rsp)
movl 0x264(%rsp), %ecx
xorl %eax, %eax
subl $0x1, %ecx
adcl $0x3, %eax
movl %eax, 0x25c(%rsp)
leaq 0x237(%rsp), %rdi
movq %rdi, 0x88(%rsp)
callq 0x6980
movq 0x88(%rsp), %rdx
leaq 0x3bc67(%rip), %rsi     # 0x59d88
leaq 0x238(%rsp), %rdi
callq 0x12070
jmp 0x1e130
leaq 0x1ff(%rsp), %rdi
movq %rdi, 0x80(%rsp)
callq 0x6980
movq 0x80(%rsp), %rdx
leaq 0x3bc4b(%rip), %rsi     # 0x59d9f
leaq 0x200(%rsp), %rdi
callq 0x12070
jmp 0x1e163
movl 0x3c4327(%rip), %edx    # 0x3e2490
leaq 0x238(%rsp), %rdi
leaq 0x200(%rsp), %rsi
callq 0x1e860
movl %eax, 0x7c(%rsp)
jmp 0x1e184
movl 0x7c(%rsp), %eax
movl %eax, 0x3c48a2(%rip)    # 0x3e2a30
leaq 0x200(%rsp), %rdi
callq 0x6a78
leaq 0x1ff(%rsp), %rdi
callq 0x6550
leaq 0x238(%rsp), %rdi
callq 0x6a78
leaq 0x237(%rsp), %rdi
callq 0x6550
leaq 0x1d7(%rsp), %rdi
movq %rdi, 0x70(%rsp)
callq 0x6980
movq 0x70(%rsp), %rdx
leaq 0x3bbd2(%rip), %rsi     # 0x59db2
leaq 0x1d8(%rsp), %rdi
callq 0x12070
jmp 0x1e1ef
leaq 0x1af(%rsp), %rdi
movq %rdi, 0x68(%rsp)
callq 0x6980
movq 0x68(%rsp), %rdx
leaq 0x3bbc0(%rip), %rsi     # 0x59dcd
leaq 0x1b0(%rsp), %rdi
callq 0x12070
jmp 0x1e21c
movl 0x3c4272(%rip), %edx    # 0x3e2494
leaq 0x1d8(%rsp), %rdi
leaq 0x1b0(%rsp), %rsi
callq 0x1e860
movl %eax, 0x64(%rsp)
jmp 0x1e23d
movl 0x64(%rsp), %eax
movl %eax, 0x3c47ed(%rip)    # 0x3e2a34
leaq 0x1b0(%rsp), %rdi
callq 0x6a78
leaq 0x1af(%rsp), %rdi
callq 0x6550
leaq 0x1d8(%rsp), %rdi
callq 0x6a78
leaq 0x1d7(%rsp), %rdi
callq 0x6550
leaq 0x187(%rsp), %rdi
movq %rdi, 0x58(%rsp)
callq 0x6980
movq 0x58(%rsp), %rdx
leaq 0x3bb4b(%rip), %rsi     # 0x59de4
leaq 0x188(%rsp), %rdi
callq 0x12070
jmp 0x1e2a8
leaq 0x15f(%rsp), %rdi
movq %rdi, 0x50(%rsp)
callq 0x6980
movq 0x50(%rsp), %rdx
leaq 0x3bb1e(%rip), %rsi     # 0x59de4
leaq 0x160(%rsp), %rdi
callq 0x12070
jmp 0x1e2d5
movl 0x3c41bd(%rip), %edx    # 0x3e2498
leaq 0x188(%rsp), %rdi
leaq 0x160(%rsp), %rsi
callq 0x1e860
movl %eax, 0x4c(%rsp)
jmp 0x1e2f6
movl 0x4c(%rsp), %eax
movl %eax, 0x3c4738(%rip)    # 0x3e2a38
leaq 0x160(%rsp), %rdi
callq 0x6a78
leaq 0x15f(%rsp), %rdi
callq 0x6550
leaq 0x188(%rsp), %rdi
callq 0x6a78
leaq 0x187(%rsp), %rdi
callq 0x6550
leaq 0x137(%rsp), %rdi
movq %rdi, 0x40(%rsp)
callq 0x6980
movq 0x40(%rsp), %rdx
leaq 0x3ba98(%rip), %rsi     # 0x59dea
leaq 0x138(%rsp), %rdi
callq 0x12070
jmp 0x1e361
leaq 0x10f(%rsp), %rdi
movq %rdi, 0x38(%rsp)
callq 0x6980
movq 0x38(%rsp), %rdx
leaq 0x3ba6b(%rip), %rsi     # 0x59dea
leaq 0x110(%rsp), %rdi
callq 0x12070
jmp 0x1e38e
movl 0x3c4108(%rip), %edx    # 0x3e249c
leaq 0x138(%rsp), %rdi
leaq 0x110(%rsp), %rsi
callq 0x1e860
movl %eax, 0x34(%rsp)
jmp 0x1e3af
movl 0x34(%rsp), %edx
movslq 0x260(%rsp), %rcx
leaq 0x3c466e(%rip), %rax    # 0x3e2a30
movl %edx, (%rax,%rcx,4)
leaq 0x110(%rsp), %rdi
callq 0x6a78
leaq 0x10f(%rsp), %rdi
callq 0x6550
leaq 0x138(%rsp), %rdi
callq 0x6a78
leaq 0x137(%rsp), %rdi
callq 0x6550
leaq 0xe7(%rsp), %rdi
movq %rdi, 0x28(%rsp)
callq 0x6980
movq 0x28(%rsp), %rdx
leaq 0x3b9dd(%rip), %rsi     # 0x59df4
leaq 0xe8(%rsp), %rdi
callq 0x12070
jmp 0x1e426
leaq 0xbf(%rsp), %rdi
movq %rdi, 0x20(%rsp)
callq 0x6980
movq 0x20(%rsp), %rdx
leaq 0x3b9b0(%rip), %rsi     # 0x59df4
leaq 0xc0(%rsp), %rdi
callq 0x12070
jmp 0x1e453
movl 0x3c4047(%rip), %edx    # 0x3e24a0
leaq 0xe8(%rsp), %rdi
leaq 0xc0(%rsp), %rsi
callq 0x1e860
movl %eax, 0x1c(%rsp)
jmp 0x1e474
movl 0x1c(%rsp), %edx
movslq 0x25c(%rsp), %rcx
leaq 0x3c45a9(%rip), %rax    # 0x3e2a30
movl %edx, (%rax,%rcx,4)
leaq 0xc0(%rsp), %rdi
callq 0x6a78
leaq 0xbf(%rsp), %rdi
callq 0x6550
leaq 0xe8(%rsp), %rdi
callq 0x6a78
leaq 0xe7(%rsp), %rdi
callq 0x6550
leaq 0x97(%rsp), %rdi
movq %rdi, 0x10(%rsp)
callq 0x6980
movq 0x10(%rsp), %rdx
leaq 0x3b927(%rip), %rsi     # 0x59e03
leaq 0x98(%rsp), %rdi
callq 0x12070
jmp 0x1e4eb
leaq 0x3ded36(%rip), %rdi    # 0x3fd228
leaq 0x98(%rsp), %rsi
callq 0x27f60
movq %rax, 0x8(%rsp)
jmp 0x1e506
movq 0x8(%rsp), %rdi
callq 0x28050
movb %al, 0x7(%rsp)
jmp 0x1e516
leaq 0x98(%rsp), %rdi
callq 0x6a78
leaq 0x97(%rsp), %rdi
callq 0x6550
movb 0x7(%rsp), %al
testb $0x1, %al
jne 0x1e53d
jmp 0x1e83d
movslq 0x260(%rsp), %rcx
leaq 0x3c44e4(%rip), %rax    # 0x3e2a30
movl (%rax,%rcx,4), %edi
movslq 0x25c(%rsp), %rcx
leaq 0x3c44d2(%rip), %rax    # 0x3e2a30
movl (%rax,%rcx,4), %esi
callq 0x280c0
movl %eax, %edi
movl $0x2, %esi
callq 0x28070
movl %eax, %edx
movslq 0x25c(%rsp), %rcx
leaq 0x3c44ad(%rip), %rax    # 0x3e2a30
movl %edx, (%rax,%rcx,4)
movslq 0x260(%rsp), %rcx
leaq 0x3c449b(%rip), %rax    # 0x3e2a30
movl %edx, (%rax,%rcx,4)
jmp 0x1e83d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x228(%rsp)
movl %eax, 0x224(%rsp)
jmp 0x1e604
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x228(%rsp)
movl %eax, 0x224(%rsp)
jmp 0x1e5ea
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x228(%rsp)
movl %eax, 0x224(%rsp)
leaq 0x200(%rsp), %rdi
callq 0x6a78
leaq 0x1ff(%rsp), %rdi
callq 0x6550
leaq 0x238(%rsp), %rdi
callq 0x6a78
leaq 0x237(%rsp), %rdi
callq 0x6550
jmp 0x1e84a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x228(%rsp)
movl %eax, 0x224(%rsp)
jmp 0x1e67d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x228(%rsp)
movl %eax, 0x224(%rsp)
jmp 0x1e663
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x228(%rsp)
movl %eax, 0x224(%rsp)
leaq 0x1b0(%rsp), %rdi
callq 0x6a78
leaq 0x1af(%rsp), %rdi
callq 0x6550
leaq 0x1d8(%rsp), %rdi
callq 0x6a78
leaq 0x1d7(%rsp), %rdi
callq 0x6550
jmp 0x1e84a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x228(%rsp)
movl %eax, 0x224(%rsp)
jmp 0x1e6f6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x228(%rsp)
movl %eax, 0x224(%rsp)
jmp 0x1e6dc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x228(%rsp)
movl %eax, 0x224(%rsp)
leaq 0x160(%rsp), %rdi
callq 0x6a78
leaq 0x15f(%rsp), %rdi
callq 0x6550
leaq 0x188(%rsp), %rdi
callq 0x6a78
leaq 0x187(%rsp), %rdi
callq 0x6550
jmp 0x1e84a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x228(%rsp)
movl %eax, 0x224(%rsp)
jmp 0x1e76f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x228(%rsp)
movl %eax, 0x224(%rsp)
jmp 0x1e755
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x228(%rsp)
movl %eax, 0x224(%rsp)
leaq 0x110(%rsp), %rdi
callq 0x6a78
leaq 0x10f(%rsp), %rdi
callq 0x6550
leaq 0x138(%rsp), %rdi
callq 0x6a78
leaq 0x137(%rsp), %rdi
callq 0x6550
jmp 0x1e84a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x228(%rsp)
movl %eax, 0x224(%rsp)
jmp 0x1e7e8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x228(%rsp)
movl %eax, 0x224(%rsp)
jmp 0x1e7ce
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x228(%rsp)
movl %eax, 0x224(%rsp)
leaq 0xc0(%rsp), %rdi
callq 0x6a78
leaq 0xbf(%rsp), %rdi
callq 0x6550
leaq 0xe8(%rsp), %rdi
callq 0x6a78
leaq 0xe7(%rsp), %rdi
callq 0x6550
jmp 0x1e84a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x228(%rsp)
movl %eax, 0x224(%rsp)
jmp 0x1e82e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x228(%rsp)
movl %eax, 0x224(%rsp)
leaq 0x98(%rsp), %rdi
callq 0x6a78
leaq 0x97(%rsp), %rdi
callq 0x6550
jmp 0x1e84a
callq 0x1e8e0
addq $0x268, %rsp            # imm = 0x268
retq
movq 0x228(%rsp), %rdi
callq 0x6970
nopw (%rax,%rax)