// File: /workspace/github_c_makefile_star2_O0/sTeeLM[P]dwipe/isaac_rand.c
// Function: isaac
void     isaac(ctx)
randctx *ctx;
{
   register ub4 a,b,x,y,*m,*mm,*m2,*r,*mend;
   mm=ctx->randmem; r=ctx->randrsl;
   a = ctx->randa; b = ctx->randb + (++ctx->randc);
   for (m = mm, mend = m2 = m+(RANDSIZ/2); m<mend; )
   {
      rngstep( a<<13, a, b, mm, m, m2, r, x);
      rngstep( a>>6 , a, b, mm, m, m2, r, x);
      rngstep( a<<2 , a, b, mm, m, m2, r, x);
      rngstep( a>>16, a, b, mm, m, m2, r, x);
   }
   for (m2 = mm; m2<mend; )
   {
      rngstep( a<<13, a, b, mm, m, m2, r, x);
      rngstep( a>>6 , a, b, mm, m, m2, r, x);
      rngstep( a<<2 , a, b, mm, m, m2, r, x);
      rngstep( a>>16, a, b, mm, m, m2, r, x);
   }
   ctx->randb = b; ctx->randa = a;
}

// Assembly:
movq %rdi, -0x8(%rsp)
movq -0x8(%rsp), %rax
addq $0x808, %rax            # imm = 0x808
movq %rax, -0x38(%rsp)
movq -0x8(%rsp), %rax
addq $0x8, %rax
movq %rax, -0x48(%rsp)
movq -0x8(%rsp), %rax
movq 0x1008(%rax), %rax
movq %rax, -0x10(%rsp)
movq -0x8(%rsp), %rax
movq 0x1010(%rax), %rax
movq -0x8(%rsp), %rdx
movq 0x1018(%rdx), %rcx
addq $0x1, %rcx
movq %rcx, 0x1018(%rdx)
addq %rcx, %rax
movq %rax, -0x18(%rsp)
movq -0x38(%rsp), %rax
movq %rax, -0x30(%rsp)
movq -0x30(%rsp), %rax
addq $0x400, %rax            # imm = 0x400
movq %rax, -0x40(%rsp)
movq %rax, -0x50(%rsp)
movq -0x30(%rsp), %rax
cmpq -0x50(%rsp), %rax
jae 0x9f6b
movq -0x30(%rsp), %rax
movq (%rax), %rax
movq %rax, -0x20(%rsp)
movq -0x10(%rsp), %rax
movq -0x10(%rsp), %rcx
shlq $0xd, %rcx
xorq %rcx, %rax
movq -0x40(%rsp), %rcx
movq %rcx, %rdx
addq $0x8, %rdx
movq %rdx, -0x40(%rsp)
addq (%rcx), %rax
movq %rax, -0x10(%rsp)
movq -0x38(%rsp), %rax
movq -0x20(%rsp), %rcx
andq $0x3fc, %rcx            # imm = 0x3FC
movq (%rax,%rcx), %rcx
addq -0x10(%rsp), %rcx
addq -0x18(%rsp), %rcx
movq %rcx, -0x28(%rsp)
movq -0x30(%rsp), %rax
movq %rax, %rdx
addq $0x8, %rdx
movq %rdx, -0x30(%rsp)
movq %rcx, (%rax)
movq -0x38(%rsp), %rax
movq -0x28(%rsp), %rcx
shrq $0x8, %rcx
andq $0x3fc, %rcx            # imm = 0x3FC
movq (%rax,%rcx), %rcx
addq -0x20(%rsp), %rcx
movq %rcx, -0x18(%rsp)
movq -0x48(%rsp), %rax
movq %rax, %rdx
addq $0x8, %rdx
movq %rdx, -0x48(%rsp)
movq %rcx, (%rax)
movq -0x30(%rsp), %rax
movq (%rax), %rax
movq %rax, -0x20(%rsp)
movq -0x10(%rsp), %rax
movq -0x10(%rsp), %rcx
shrq $0x6, %rcx
xorq %rcx, %rax
movq -0x40(%rsp), %rcx
movq %rcx, %rdx
addq $0x8, %rdx
movq %rdx, -0x40(%rsp)
addq (%rcx), %rax
movq %rax, -0x10(%rsp)
movq -0x38(%rsp), %rax
movq -0x20(%rsp), %rcx
andq $0x3fc, %rcx            # imm = 0x3FC
movq (%rax,%rcx), %rcx
addq -0x10(%rsp), %rcx
addq -0x18(%rsp), %rcx
movq %rcx, -0x28(%rsp)
movq -0x30(%rsp), %rax
movq %rax, %rdx
addq $0x8, %rdx
movq %rdx, -0x30(%rsp)
movq %rcx, (%rax)
movq -0x38(%rsp), %rax
movq -0x28(%rsp), %rcx
shrq $0x8, %rcx
andq $0x3fc, %rcx            # imm = 0x3FC
movq (%rax,%rcx), %rcx
addq -0x20(%rsp), %rcx
movq %rcx, -0x18(%rsp)
movq -0x48(%rsp), %rax
movq %rax, %rdx
addq $0x8, %rdx
movq %rdx, -0x48(%rsp)
movq %rcx, (%rax)
movq -0x30(%rsp), %rax
movq (%rax), %rax
movq %rax, -0x20(%rsp)
movq -0x10(%rsp), %rax
movq -0x10(%rsp), %rcx
shlq $0x2, %rcx
xorq %rcx, %rax
movq -0x40(%rsp), %rcx
movq %rcx, %rdx
addq $0x8, %rdx
movq %rdx, -0x40(%rsp)
addq (%rcx), %rax
movq %rax, -0x10(%rsp)
movq -0x38(%rsp), %rax
movq -0x20(%rsp), %rcx
andq $0x3fc, %rcx            # imm = 0x3FC
movq (%rax,%rcx), %rcx
addq -0x10(%rsp), %rcx
addq -0x18(%rsp), %rcx
movq %rcx, -0x28(%rsp)
movq -0x30(%rsp), %rax
movq %rax, %rdx
addq $0x8, %rdx
movq %rdx, -0x30(%rsp)
movq %rcx, (%rax)
movq -0x38(%rsp), %rax
movq -0x28(%rsp), %rcx
shrq $0x8, %rcx
andq $0x3fc, %rcx            # imm = 0x3FC
movq (%rax,%rcx), %rcx
addq -0x20(%rsp), %rcx
movq %rcx, -0x18(%rsp)
movq -0x48(%rsp), %rax
movq %rax, %rdx
addq $0x8, %rdx
movq %rdx, -0x48(%rsp)
movq %rcx, (%rax)
movq -0x30(%rsp), %rax
movq (%rax), %rax
movq %rax, -0x20(%rsp)
movq -0x10(%rsp), %rax
movq -0x10(%rsp), %rcx
shrq $0x10, %rcx
xorq %rcx, %rax
movq -0x40(%rsp), %rcx
movq %rcx, %rdx
addq $0x8, %rdx
movq %rdx, -0x40(%rsp)
addq (%rcx), %rax
movq %rax, -0x10(%rsp)
movq -0x38(%rsp), %rax
movq -0x20(%rsp), %rcx
andq $0x3fc, %rcx            # imm = 0x3FC
movq (%rax,%rcx), %rcx
addq -0x10(%rsp), %rcx
addq -0x18(%rsp), %rcx
movq %rcx, -0x28(%rsp)
movq -0x30(%rsp), %rax
movq %rax, %rdx
addq $0x8, %rdx
movq %rdx, -0x30(%rsp)
movq %rcx, (%rax)
movq -0x38(%rsp), %rax
movq -0x28(%rsp), %rcx
shrq $0x8, %rcx
andq $0x3fc, %rcx            # imm = 0x3FC
movq (%rax,%rcx), %rcx
addq -0x20(%rsp), %rcx
movq %rcx, -0x18(%rsp)
movq -0x48(%rsp), %rax
movq %rax, %rdx
addq $0x8, %rdx
movq %rdx, -0x48(%rsp)
movq %rcx, (%rax)
jmp 0x9cbe
movq -0x38(%rsp), %rax
movq %rax, -0x40(%rsp)
movq -0x40(%rsp), %rax
cmpq -0x50(%rsp), %rax
jae 0xa222
movq -0x30(%rsp), %rax
movq (%rax), %rax
movq %rax, -0x20(%rsp)
movq -0x10(%rsp), %rax
movq -0x10(%rsp), %rcx
shlq $0xd, %rcx
xorq %rcx, %rax
movq -0x40(%rsp), %rcx
movq %rcx, %rdx
addq $0x8, %rdx
movq %rdx, -0x40(%rsp)
addq (%rcx), %rax
movq %rax, -0x10(%rsp)
movq -0x38(%rsp), %rax
movq -0x20(%rsp), %rcx
andq $0x3fc, %rcx            # imm = 0x3FC
movq (%rax,%rcx), %rcx
addq -0x10(%rsp), %rcx
addq -0x18(%rsp), %rcx
movq %rcx, -0x28(%rsp)
movq -0x30(%rsp), %rax
movq %rax, %rdx
addq $0x8, %rdx
movq %rdx, -0x30(%rsp)
movq %rcx, (%rax)
movq -0x38(%rsp), %rax
movq -0x28(%rsp), %rcx
shrq $0x8, %rcx
andq $0x3fc, %rcx            # imm = 0x3FC
movq (%rax,%rcx), %rcx
addq -0x20(%rsp), %rcx
movq %rcx, -0x18(%rsp)
movq -0x48(%rsp), %rax
movq %rax, %rdx
addq $0x8, %rdx
movq %rdx, -0x48(%rsp)
movq %rcx, (%rax)
movq -0x30(%rsp), %rax
movq (%rax), %rax
movq %rax, -0x20(%rsp)
movq -0x10(%rsp), %rax
movq -0x10(%rsp), %rcx
shrq $0x6, %rcx
xorq %rcx, %rax
movq -0x40(%rsp), %rcx
movq %rcx, %rdx
addq $0x8, %rdx
movq %rdx, -0x40(%rsp)
addq (%rcx), %rax
movq %rax, -0x10(%rsp)
movq -0x38(%rsp), %rax
movq -0x20(%rsp), %rcx
andq $0x3fc, %rcx            # imm = 0x3FC
movq (%rax,%rcx), %rcx
addq -0x10(%rsp), %rcx
addq -0x18(%rsp), %rcx
movq %rcx, -0x28(%rsp)
movq -0x30(%rsp), %rax
movq %rax, %rdx
addq $0x8, %rdx
movq %rdx, -0x30(%rsp)
movq %rcx, (%rax)
movq -0x38(%rsp), %rax
movq -0x28(%rsp), %rcx
shrq $0x8, %rcx
andq $0x3fc, %rcx            # imm = 0x3FC
movq (%rax,%rcx), %rcx
addq -0x20(%rsp), %rcx
movq %rcx, -0x18(%rsp)
movq -0x48(%rsp), %rax
movq %rax, %rdx
addq $0x8, %rdx
movq %rdx, -0x48(%rsp)
movq %rcx, (%rax)
movq -0x30(%rsp), %rax
movq (%rax), %rax
movq %rax, -0x20(%rsp)
movq -0x10(%rsp), %rax
movq -0x10(%rsp), %rcx
shlq $0x2, %rcx
xorq %rcx, %rax
movq -0x40(%rsp), %rcx
movq %rcx, %rdx
addq $0x8, %rdx
movq %rdx, -0x40(%rsp)
addq (%rcx), %rax
movq %rax, -0x10(%rsp)
movq -0x38(%rsp), %rax
movq -0x20(%rsp), %rcx
andq $0x3fc, %rcx            # imm = 0x3FC
movq (%rax,%rcx), %rcx
addq -0x10(%rsp), %rcx
addq -0x18(%rsp), %rcx
movq %rcx, -0x28(%rsp)
movq -0x30(%rsp), %rax
movq %rax, %rdx
addq $0x8, %rdx
movq %rdx, -0x30(%rsp)
movq %rcx, (%rax)
movq -0x38(%rsp), %rax
movq -0x28(%rsp), %rcx
shrq $0x8, %rcx
andq $0x3fc, %rcx            # imm = 0x3FC
movq (%rax,%rcx), %rcx
addq -0x20(%rsp), %rcx
movq %rcx, -0x18(%rsp)
movq -0x48(%rsp), %rax
movq %rax, %rdx
addq $0x8, %rdx
movq %rdx, -0x48(%rsp)
movq %rcx, (%rax)
movq -0x30(%rsp), %rax
movq (%rax), %rax
movq %rax, -0x20(%rsp)
movq -0x10(%rsp), %rax
movq -0x10(%rsp), %rcx
shrq $0x10, %rcx
xorq %rcx, %rax
movq -0x40(%rsp), %rcx
movq %rcx, %rdx
addq $0x8, %rdx
movq %rdx, -0x40(%rsp)
addq (%rcx), %rax
movq %rax, -0x10(%rsp)
movq -0x38(%rsp), %rax
movq -0x20(%rsp), %rcx
andq $0x3fc, %rcx            # imm = 0x3FC
movq (%rax,%rcx), %rcx
addq -0x10(%rsp), %rcx
addq -0x18(%rsp), %rcx
movq %rcx, -0x28(%rsp)
movq -0x30(%rsp), %rax
movq %rax, %rdx
addq $0x8, %rdx
movq %rdx, -0x30(%rsp)
movq %rcx, (%rax)
movq -0x38(%rsp), %rax
movq -0x28(%rsp), %rcx
shrq $0x8, %rcx
andq $0x3fc, %rcx            # imm = 0x3FC
movq (%rax,%rcx), %rcx
addq -0x20(%rsp), %rcx
movq %rcx, -0x18(%rsp)
movq -0x48(%rsp), %rax
movq %rax, %rdx
addq $0x8, %rdx
movq %rdx, -0x48(%rsp)
movq %rcx, (%rax)
jmp 0x9f75
movq -0x18(%rsp), %rcx
movq -0x8(%rsp), %rax
movq %rcx, 0x1010(%rax)
movq -0x10(%rsp), %rcx
movq -0x8(%rsp), %rax
movq %rcx, 0x1008(%rax)
retq
nopw %cs:(%rax,%rax)