// File: /workspace/github_c_makefile_star2_O0/mjosaarinen[P]brutus/crypto_aead/scream12v3/ref/scream_cipher.c
// Function: LS_decrypt
void LS_decrypt(const crypto_uint8 input[16], const crypto_uint8 key[16], const crypto_uint8 tweak[16],
		crypto_uint8 output[16]) {
  crypto_uint16 data[8];
  crypto_uint16 k[8];
  crypto_uint16 t[8];
  int i,j;

  for (i=0; i<8; i++) {
    data[i] = ((crypto_uint16)input[2*i+1]<<8) + input[2*i];
    k[i] = ((crypto_uint16)  key[2*i+1]<<8) +   key[2*i];
    t[i] = ((crypto_uint16)tweak[2*i+1]<<8) + tweak[2*i];
  }

  /* ---------------- Step Function ---------------- */
  for (i=nSteps-1; i>=0; i--) {
    /* ----------- Key + Tweak Addition ---------- */
    for (j=0; j<8; j++) data[j] ^= k[j];
    switch(i%3) {
    case     0:
      for (j=0; j<4; j++) data[j] ^= t[j] ^ t[j+4];
      for (j=4; j<8; j++) data[j] ^= t[j-4];
      break;
    case     1:
      for (j=0; j<4; j++) data[j] ^= t[j+4];
      for (j=4; j<8; j++) data[j] ^= t[j] ^ t[j-4];
      break;
    case     2:
      for (j=0; j<8; j++) data[j] ^= t[j] ;
      break;
    }

    /* ---------------- Second Round -------------- */
    /* LBox layer (tables) */
    for (j=0; j<8; j++)
      data[j] = LBoxInv2[data[j]>>8] ^ LBoxInv1[data[j]&0xff];
    /* Round constant */
    data[0] ^= ((2199*(2*i+1)) % 65536);
    /* SBox layer (bitsliced) */
    SBOX_Inv(data);
        
    /* ---------------- First Round ---------------- */
    /* LBox layer (tables) */
    for (j=0; j<8; j++)
      data[j] = LBoxInv2[data[j]>>8] ^ LBoxInv1[data[j]&0xff];
    /* First round constant */
    data[0] ^= ((2199*(2*i)) % 65536);
    /* SBox layer (bitsliced) */
    SBOX_Inv(data);
  }

  /* Final key + tweak addition */
  for (j=0; j<8; j++) data[j] ^= k[j] ^ t[j];
    
  for (i=0; i<8; i++) {
    output[2*i]   = data[i];
    output[2*i+1] = data[i]>>8;
  }
}

// Assembly:
movq %rdi, -0x8(%rsp)
movq %rsi, -0x10(%rsp)
movq %rdx, -0x18(%rsp)
movq %rcx, -0x20(%rsp)
movl $0x0, -0x5c(%rsp)
cmpl $0x8, -0x5c(%rsp)
jge 0x1b0b
movq -0x8(%rsp), %rax
movl -0x5c(%rsp), %ecx
shll %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movzbl (%rax,%rcx), %eax
movzwl %ax, %eax
shll $0x8, %eax
movq -0x8(%rsp), %rcx
movl -0x5c(%rsp), %edx
shll %edx
movslq %edx, %rdx
movzbl (%rcx,%rdx), %ecx
addl %ecx, %eax
movw %ax, %cx
movslq -0x5c(%rsp), %rax
movw %cx, -0x38(%rsp,%rax,2)
movq -0x10(%rsp), %rax
movl -0x5c(%rsp), %ecx
shll %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movzbl (%rax,%rcx), %eax
movzwl %ax, %eax
shll $0x8, %eax
movq -0x10(%rsp), %rcx
movl -0x5c(%rsp), %edx
shll %edx
movslq %edx, %rdx
movzbl (%rcx,%rdx), %ecx
addl %ecx, %eax
movw %ax, %cx
movslq -0x5c(%rsp), %rax
movw %cx, -0x48(%rsp,%rax,2)
movq -0x18(%rsp), %rax
movl -0x5c(%rsp), %ecx
shll %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movzbl (%rax,%rcx), %eax
movzwl %ax, %eax
shll $0x8, %eax
movq -0x18(%rsp), %rcx
movl -0x5c(%rsp), %edx
shll %edx
movslq %edx, %rdx
movzbl (%rcx,%rdx), %ecx
addl %ecx, %eax
movw %ax, %cx
movslq -0x5c(%rsp), %rax
movw %cx, -0x58(%rsp,%rax,2)
movl -0x5c(%rsp), %eax
addl $0x1, %eax
movl %eax, -0x5c(%rsp)
jmp 0x1a3c
movl $0xb, -0x5c(%rsp)
cmpl $0x0, -0x5c(%rsp)
jl 0x22c3
movl $0x0, -0x60(%rsp)
cmpl $0x8, -0x60(%rsp)
jge 0x1b55
movslq -0x60(%rsp), %rax
movzwl -0x48(%rsp,%rax,2), %edx
movslq -0x60(%rsp), %rax
movzwl -0x38(%rsp,%rax,2), %ecx
xorl %edx, %ecx
movw %cx, -0x38(%rsp,%rax,2)
movl -0x60(%rsp), %eax
addl $0x1, %eax
movl %eax, -0x60(%rsp)
jmp 0x1b26
movslq -0x5c(%rsp), %rcx
movl %ecx, %eax
imulq $0x55555556, %rcx, %rdx # imm = 0x55555556
movq %rdx, %rcx
shrq $0x3f, %rcx
shrq $0x20, %rdx
addl %ecx, %edx
movl %edx, %ecx
leal (%rcx,%rcx,2), %ecx
subl %ecx, %eax
movl %eax, -0x64(%rsp)
je 0x1ba0
jmp 0x1b7f
movl -0x64(%rsp), %eax
subl $0x1, %eax
je 0x1c27
jmp 0x1b8e
movl -0x64(%rsp), %eax
subl $0x2, %eax
je 0x1cab
jmp 0x1ce4
movl $0x0, -0x60(%rsp)
cmpl $0x4, -0x60(%rsp)
jge 0x1be7
movslq -0x60(%rsp), %rax
movzwl -0x58(%rsp,%rax,2), %edx
movl -0x60(%rsp), %eax
addl $0x4, %eax
cltq
movzwl -0x58(%rsp,%rax,2), %eax
xorl %eax, %edx
movslq -0x60(%rsp), %rax
movzwl -0x38(%rsp,%rax,2), %ecx
xorl %edx, %ecx
movw %cx, -0x38(%rsp,%rax,2)
movl -0x60(%rsp), %eax
addl $0x1, %eax
movl %eax, -0x60(%rsp)
jmp 0x1ba8
movl $0x4, -0x60(%rsp)
cmpl $0x8, -0x60(%rsp)
jge 0x1c22
movl -0x60(%rsp), %eax
subl $0x4, %eax
cltq
movzwl -0x58(%rsp,%rax,2), %edx
movslq -0x60(%rsp), %rax
movzwl -0x38(%rsp,%rax,2), %ecx
xorl %edx, %ecx
movw %cx, -0x38(%rsp,%rax,2)
movl -0x60(%rsp), %eax
addl $0x1, %eax
movl %eax, -0x60(%rsp)
jmp 0x1bef
jmp 0x1ce4
movl $0x0, -0x60(%rsp)
cmpl $0x4, -0x60(%rsp)
jge 0x1c62
movl -0x60(%rsp), %eax
addl $0x4, %eax
cltq
movzwl -0x58(%rsp,%rax,2), %edx
movslq -0x60(%rsp), %rax
movzwl -0x38(%rsp,%rax,2), %ecx
xorl %edx, %ecx
movw %cx, -0x38(%rsp,%rax,2)
movl -0x60(%rsp), %eax
addl $0x1, %eax
movl %eax, -0x60(%rsp)
jmp 0x1c2f
movl $0x4, -0x60(%rsp)
cmpl $0x8, -0x60(%rsp)
jge 0x1ca9
movslq -0x60(%rsp), %rax
movzwl -0x58(%rsp,%rax,2), %edx
movl -0x60(%rsp), %eax
subl $0x4, %eax
cltq
movzwl -0x58(%rsp,%rax,2), %eax
xorl %eax, %edx
movslq -0x60(%rsp), %rax
movzwl -0x38(%rsp,%rax,2), %ecx
xorl %edx, %ecx
movw %cx, -0x38(%rsp,%rax,2)
movl -0x60(%rsp), %eax
addl $0x1, %eax
movl %eax, -0x60(%rsp)
jmp 0x1c6a
jmp 0x1ce4
movl $0x0, -0x60(%rsp)
cmpl $0x8, -0x60(%rsp)
jge 0x1ce2
movslq -0x60(%rsp), %rax
movzwl -0x58(%rsp,%rax,2), %edx
movslq -0x60(%rsp), %rax
movzwl -0x38(%rsp,%rax,2), %ecx
xorl %edx, %ecx
movw %cx, -0x38(%rsp,%rax,2)
movl -0x60(%rsp), %eax
addl $0x1, %eax
movl %eax, -0x60(%rsp)
jmp 0x1cb3
jmp 0x1ce4
movl $0x0, -0x60(%rsp)
cmpl $0x8, -0x60(%rsp)
jge 0x1d48
movslq -0x60(%rsp), %rax
movzwl -0x38(%rsp,%rax,2), %eax
sarl $0x8, %eax
movslq %eax, %rcx
leaq 0x16f6(%rip), %rax      # 0x3400
movzwl (%rax,%rcx,2), %eax
movslq -0x60(%rsp), %rcx
movzwl -0x38(%rsp,%rcx,2), %ecx
andl $0xff, %ecx
movslq %ecx, %rdx
leaq 0x18d8(%rip), %rcx      # 0x3600
movzwl (%rcx,%rdx,2), %ecx
xorl %ecx, %eax
movw %ax, %cx
movslq -0x60(%rsp), %rax
movw %cx, -0x38(%rsp,%rax,2)
movl -0x60(%rsp), %eax
addl $0x1, %eax
movl %eax, -0x60(%rsp)
jmp 0x1cec
movl -0x5c(%rsp), %eax
shll %eax
addl $0x1, %eax
imull $0x897, %eax, %eax      # imm = 0x897
movl $0x10000, %ecx          # imm = 0x10000
cltd
idivl %ecx
movzwl -0x38(%rsp), %eax
xorl %edx, %eax
movw %ax, -0x38(%rsp)
movzwl -0x36(%rsp), %eax
movzwl -0x34(%rsp), %ecx
andl %ecx, %eax
xorl $-0x1, %eax
movzwl -0x38(%rsp), %ecx
xorl %ecx, %eax
movw %ax, %cx
movq 0x3265(%rip), %rax      # 0x4ff0
movw %cx, (%rax)
movzwl -0x36(%rsp), %eax
movzwl -0x32(%rsp), %ecx
xorl %ecx, %eax
movw %ax, %cx
movq 0x323c(%rip), %rax      # 0x4fe0
movw %cx, (%rax)
movq 0x3242(%rip), %rax      # 0x4ff0
movzwl (%rax), %eax
movzwl -0x34(%rsp), %ecx
xorl %ecx, %eax
movq 0x3201(%rip), %rcx      # 0x4fc0
movw %ax, (%rcx)
movzwl %ax, %ecx
movzwl -0x2e(%rsp), %eax
xorl %ecx, %eax
movw %ax, -0x2e(%rsp)
movq 0x3218(%rip), %rax      # 0x4ff0
movzwl (%rax), %ecx
movzwl -0x32(%rsp), %eax
andl %eax, %ecx
movzwl -0x2c(%rsp), %eax
xorl %ecx, %eax
movw %ax, -0x2c(%rsp)
movq 0x31cb(%rip), %rax      # 0x4fc0
movzwl (%rax), %ecx
movq 0x31e1(%rip), %rax      # 0x4fe0
movzwl (%rax), %eax
andl %eax, %ecx
movzwl -0x2a(%rsp), %eax
xorl %ecx, %eax
movw %ax, -0x2a(%rsp)
movq 0x31a9(%rip), %rax      # 0x4fc0
movzwl (%rax), %ecx
movzwl -0x32(%rsp), %eax
xorl %eax, %ecx
movq 0x31b8(%rip), %rax      # 0x4fe0
movzwl (%rax), %eax
movzwl -0x34(%rsp), %edx
xorl %edx, %eax
andl %eax, %ecx
movzwl -0x30(%rsp), %eax
xorl %ecx, %eax
movw %ax, -0x30(%rsp)
movzwl -0x30(%rsp), %eax
movzwl -0x2e(%rsp), %ecx
andl %ecx, %eax
movzwl -0x2c(%rsp), %ecx
xorl %ecx, %eax
movq 0x3196(%rip), %rcx      # 0x4ff0
movw %ax, (%rcx)
movzwl %ax, %ecx
movzwl -0x38(%rsp), %eax
xorl %ecx, %eax
movw %ax, -0x38(%rsp)
movzwl -0x2e(%rsp), %eax
movzwl -0x2c(%rsp), %ecx
orl %ecx, %eax
movzwl -0x2a(%rsp), %ecx
xorl %ecx, %eax
movq 0x313a(%rip), %rcx      # 0x4fc0
movw %ax, (%rcx)
movzwl %ax, %ecx
movzwl -0x34(%rsp), %eax
xorl %ecx, %eax
movw %ax, -0x34(%rsp)
movq 0x3151(%rip), %rax      # 0x4ff0
movzwl (%rax), %eax
movzwl -0x2a(%rsp), %ecx
andl %ecx, %eax
movzwl -0x30(%rsp), %ecx
xorl %ecx, %eax
movq 0x3141(%rip), %rcx      # 0x4ff8
movw %ax, (%rcx)
movzwl %ax, %ecx
movzwl -0x36(%rsp), %eax
xorl %ecx, %eax
movw %ax, -0x36(%rsp)
movq 0x30f0(%rip), %rax      # 0x4fc0
movzwl (%rax), %eax
movzwl -0x30(%rsp), %ecx
andl %ecx, %eax
movzwl -0x2e(%rsp), %ecx
xorl %ecx, %eax
movq 0x30f8(%rip), %rcx      # 0x4fe0
movw %ax, (%rcx)
movzwl %ax, %ecx
movzwl -0x32(%rsp), %eax
xorl %ecx, %eax
movw %ax, -0x32(%rsp)
movzwl -0x36(%rsp), %eax
movzwl -0x34(%rsp), %ecx
andl %ecx, %eax
movzwl -0x38(%rsp), %ecx
xorl %ecx, %eax
movw %ax, %cx
movq 0x30d9(%rip), %rax      # 0x4ff0
movw %cx, (%rax)
movzwl -0x36(%rsp), %eax
movzwl -0x32(%rsp), %ecx
xorl %ecx, %eax
movw %ax, %cx
movq 0x30b0(%rip), %rax      # 0x4fe0
movw %cx, (%rax)
movq 0x30b6(%rip), %rax      # 0x4ff0
movzwl (%rax), %eax
movzwl -0x34(%rsp), %ecx
xorl %ecx, %eax
movq 0x3075(%rip), %rcx      # 0x4fc0
movw %ax, (%rcx)
movzwl %ax, %ecx
movzwl -0x2e(%rsp), %eax
xorl %ecx, %eax
movw %ax, -0x2e(%rsp)
movq 0x308c(%rip), %rax      # 0x4ff0
movzwl (%rax), %ecx
movzwl -0x32(%rsp), %eax
andl %eax, %ecx
movzwl -0x2c(%rsp), %eax
xorl %ecx, %eax
movw %ax, -0x2c(%rsp)
movq 0x303f(%rip), %rax      # 0x4fc0
movzwl (%rax), %ecx
movq 0x3055(%rip), %rax      # 0x4fe0
movzwl (%rax), %eax
andl %eax, %ecx
movzwl -0x2a(%rsp), %eax
xorl %ecx, %eax
movw %ax, -0x2a(%rsp)
movq 0x301d(%rip), %rax      # 0x4fc0
movzwl (%rax), %ecx
movzwl -0x32(%rsp), %eax
xorl %eax, %ecx
movq 0x302c(%rip), %rax      # 0x4fe0
movzwl (%rax), %eax
movzwl -0x34(%rsp), %edx
xorl %edx, %eax
andl %eax, %ecx
movzwl -0x30(%rsp), %eax
xorl %ecx, %eax
movw %ax, -0x30(%rsp)
movl $0x0, -0x60(%rsp)
cmpl $0x8, -0x60(%rsp)
jge 0x2030
movslq -0x60(%rsp), %rax
movzwl -0x38(%rsp,%rax,2), %eax
sarl $0x8, %eax
movslq %eax, %rcx
leaq 0x140e(%rip), %rax      # 0x3400
movzwl (%rax,%rcx,2), %eax
movslq -0x60(%rsp), %rcx
movzwl -0x38(%rsp,%rcx,2), %ecx
andl $0xff, %ecx
movslq %ecx, %rdx
leaq 0x15f0(%rip), %rcx      # 0x3600
movzwl (%rcx,%rdx,2), %ecx
xorl %ecx, %eax
movw %ax, %cx
movslq -0x60(%rsp), %rax
movw %cx, -0x38(%rsp,%rax,2)
movl -0x60(%rsp), %eax
addl $0x1, %eax
movl %eax, -0x60(%rsp)
jmp 0x1fd4
movl -0x5c(%rsp), %eax
shll %eax
imull $0x897, %eax, %eax      # imm = 0x897
movl $0x10000, %ecx          # imm = 0x10000
cltd
idivl %ecx
movzwl -0x38(%rsp), %eax
xorl %edx, %eax
movw %ax, -0x38(%rsp)
movzwl -0x36(%rsp), %eax
movzwl -0x34(%rsp), %ecx
andl %ecx, %eax
xorl $-0x1, %eax
movzwl -0x38(%rsp), %ecx
xorl %ecx, %eax
movw %ax, %cx
movq 0x2f80(%rip), %rax      # 0x4ff0
movw %cx, (%rax)
movzwl -0x36(%rsp), %eax
movzwl -0x32(%rsp), %ecx
xorl %ecx, %eax
movw %ax, %cx
movq 0x2f57(%rip), %rax      # 0x4fe0
movw %cx, (%rax)
movq 0x2f5d(%rip), %rax      # 0x4ff0
movzwl (%rax), %eax
movzwl -0x34(%rsp), %ecx
xorl %ecx, %eax
movq 0x2f1c(%rip), %rcx      # 0x4fc0
movw %ax, (%rcx)
movzwl %ax, %ecx
movzwl -0x2e(%rsp), %eax
xorl %ecx, %eax
movw %ax, -0x2e(%rsp)
movq 0x2f33(%rip), %rax      # 0x4ff0
movzwl (%rax), %ecx
movzwl -0x32(%rsp), %eax
andl %eax, %ecx
movzwl -0x2c(%rsp), %eax
xorl %ecx, %eax
movw %ax, -0x2c(%rsp)
movq 0x2ee6(%rip), %rax      # 0x4fc0
movzwl (%rax), %ecx
movq 0x2efc(%rip), %rax      # 0x4fe0
movzwl (%rax), %eax
andl %eax, %ecx
movzwl -0x2a(%rsp), %eax
xorl %ecx, %eax
movw %ax, -0x2a(%rsp)
movq 0x2ec4(%rip), %rax      # 0x4fc0
movzwl (%rax), %ecx
movzwl -0x32(%rsp), %eax
xorl %eax, %ecx
movq 0x2ed3(%rip), %rax      # 0x4fe0
movzwl (%rax), %eax
movzwl -0x34(%rsp), %edx
xorl %edx, %eax
andl %eax, %ecx
movzwl -0x30(%rsp), %eax
xorl %ecx, %eax
movw %ax, -0x30(%rsp)
movzwl -0x30(%rsp), %eax
movzwl -0x2e(%rsp), %ecx
andl %ecx, %eax
movzwl -0x2c(%rsp), %ecx
xorl %ecx, %eax
movq 0x2eb1(%rip), %rcx      # 0x4ff0
movw %ax, (%rcx)
movzwl %ax, %ecx
movzwl -0x38(%rsp), %eax
xorl %ecx, %eax
movw %ax, -0x38(%rsp)
movzwl -0x2e(%rsp), %eax
movzwl -0x2c(%rsp), %ecx
orl %ecx, %eax
movzwl -0x2a(%rsp), %ecx
xorl %ecx, %eax
movq 0x2e55(%rip), %rcx      # 0x4fc0
movw %ax, (%rcx)
movzwl %ax, %ecx
movzwl -0x34(%rsp), %eax
xorl %ecx, %eax
movw %ax, -0x34(%rsp)
movq 0x2e6c(%rip), %rax      # 0x4ff0
movzwl (%rax), %eax
movzwl -0x2a(%rsp), %ecx
andl %ecx, %eax
movzwl -0x30(%rsp), %ecx
xorl %ecx, %eax
movq 0x2e5c(%rip), %rcx      # 0x4ff8
movw %ax, (%rcx)
movzwl %ax, %ecx
movzwl -0x36(%rsp), %eax
xorl %ecx, %eax
movw %ax, -0x36(%rsp)
movq 0x2e0b(%rip), %rax      # 0x4fc0
movzwl (%rax), %eax
movzwl -0x30(%rsp), %ecx
andl %ecx, %eax
movzwl -0x2e(%rsp), %ecx
xorl %ecx, %eax
movq 0x2e13(%rip), %rcx      # 0x4fe0
movw %ax, (%rcx)
movzwl %ax, %ecx
movzwl -0x32(%rsp), %eax
xorl %ecx, %eax
movw %ax, -0x32(%rsp)
movzwl -0x36(%rsp), %eax
movzwl -0x34(%rsp), %ecx
andl %ecx, %eax
movzwl -0x38(%rsp), %ecx
xorl %ecx, %eax
movw %ax, %cx
movq 0x2df4(%rip), %rax      # 0x4ff0
movw %cx, (%rax)
movzwl -0x36(%rsp), %eax
movzwl -0x32(%rsp), %ecx
xorl %ecx, %eax
movw %ax, %cx
movq 0x2dcb(%rip), %rax      # 0x4fe0
movw %cx, (%rax)
movq 0x2dd1(%rip), %rax      # 0x4ff0
movzwl (%rax), %eax
movzwl -0x34(%rsp), %ecx
xorl %ecx, %eax
movq 0x2d90(%rip), %rcx      # 0x4fc0
movw %ax, (%rcx)
movzwl %ax, %ecx
movzwl -0x2e(%rsp), %eax
xorl %ecx, %eax
movw %ax, -0x2e(%rsp)
movq 0x2da7(%rip), %rax      # 0x4ff0
movzwl (%rax), %ecx
movzwl -0x32(%rsp), %eax
andl %eax, %ecx
movzwl -0x2c(%rsp), %eax
xorl %ecx, %eax
movw %ax, -0x2c(%rsp)
movq 0x2d5a(%rip), %rax      # 0x4fc0
movzwl (%rax), %ecx
movq 0x2d70(%rip), %rax      # 0x4fe0
movzwl (%rax), %eax
andl %eax, %ecx
movzwl -0x2a(%rsp), %eax
xorl %ecx, %eax
movw %ax, -0x2a(%rsp)
movq 0x2d38(%rip), %rax      # 0x4fc0
movzwl (%rax), %ecx
movzwl -0x32(%rsp), %eax
xorl %eax, %ecx
movq 0x2d47(%rip), %rax      # 0x4fe0
movzwl (%rax), %eax
movzwl -0x34(%rsp), %edx
xorl %edx, %eax
andl %eax, %ecx
movzwl -0x30(%rsp), %eax
xorl %ecx, %eax
movw %ax, -0x30(%rsp)
jmp 0x22b3
movl -0x5c(%rsp), %eax
addl $-0x1, %eax
movl %eax, -0x5c(%rsp)
jmp 0x1b13
movl $0x0, -0x60(%rsp)
cmpl $0x8, -0x60(%rsp)
jge 0x2306
movslq -0x60(%rsp), %rax
movzwl -0x48(%rsp,%rax,2), %edx
movslq -0x60(%rsp), %rax
movzwl -0x58(%rsp,%rax,2), %eax
xorl %eax, %edx
movslq -0x60(%rsp), %rax
movzwl -0x38(%rsp,%rax,2), %ecx
xorl %edx, %ecx
movw %cx, -0x38(%rsp,%rax,2)
movl -0x60(%rsp), %eax
addl $0x1, %eax
movl %eax, -0x60(%rsp)
jmp 0x22cb
movl $0x0, -0x5c(%rsp)
cmpl $0x8, -0x5c(%rsp)
jge 0x2362
movslq -0x5c(%rsp), %rax
movw -0x38(%rsp,%rax,2), %ax
movb %al, %dl
movq -0x20(%rsp), %rax
movl -0x5c(%rsp), %ecx
shll %ecx
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
movslq -0x5c(%rsp), %rax
movzwl -0x38(%rsp,%rax,2), %eax
sarl $0x8, %eax
movb %al, %dl
movq -0x20(%rsp), %rax
movl -0x5c(%rsp), %ecx
shll %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
movl -0x5c(%rsp), %eax
addl $0x1, %eax
movl %eax, -0x5c(%rsp)
jmp 0x230e
retq
nopw %cs:(%rax,%rax)
nopl (%rax)