// File: /workspace/github_c_makefile_star2_O2/CBaquero[P]random/Random.cc
// Function: RedisModule_OnLoad
int RedisModule_OnLoad(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) {
    if (RedisModule_Init(ctx,"random",1,REDISMODULE_APIVER_1)
        == REDISMODULE_ERR) return REDISMODULE_ERR;

    if (RedisModule_CreateCommand(ctx,"random.dunif",
        RandomDUnif_RedisCommand,"readonly random",0,0,0) == REDISMODULE_ERR)
        return REDISMODULE_ERR;

    if (RedisModule_CreateCommand(ctx,"random.unif",
        RandomUnif_RedisCommand,"readonly random",0,0,0) == REDISMODULE_ERR)
        return REDISMODULE_ERR;

    if (RedisModule_CreateCommand(ctx,"random.lunif",
        RandomLUnif_RedisCommand,"random",0,0,0) == REDISMODULE_ERR)
        return REDISMODULE_ERR;

    if (RedisModule_CreateCommand(ctx,"random.norm",
        RandomNorm_RedisCommand,"readonly random",0,0,0) == REDISMODULE_ERR)
        return REDISMODULE_ERR;

    if (RedisModule_CreateCommand(ctx,"random.lnorm",
        RandomLNorm_RedisCommand,"random",0,0,0) == REDISMODULE_ERR)
        return REDISMODULE_ERR;

    if (RedisModule_CreateCommand(ctx,"random.exp",
        RandomExp_RedisCommand,"readonly random",0,0,0) == REDISMODULE_ERR)
        return REDISMODULE_ERR;

    if (RedisModule_CreateCommand(ctx,"random.lexp",
        RandomLExp_RedisCommand,"random",0,0,0) == REDISMODULE_ERR)
        return REDISMODULE_ERR;

    if (RedisModule_CreateCommand(ctx,"random.hist",
        RandomHist_RedisCommand,"readonly",0,0,0) == REDISMODULE_ERR)
        return REDISMODULE_ERR;

    return REDISMODULE_OK;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq (%rdi), %rax
movq 0x4ceb(%rip), %r14      # 0xad50
movq %rax, (%r14)
leaq 0x21fb(%rip), %rdi      # 0x826a
movq 0x4db2(%rip), %rsi      # 0xae28
callq *%rax
leaq 0x21fd(%rip), %rdi      # 0x827c
movq 0x4b42(%rip), %rsi      # 0xabc8
callq *(%r14)
leaq 0x21ff(%rip), %rdi      # 0x828f
movq 0x4d61(%rip), %rsi      # 0xadf8
callq *(%r14)
leaq 0x21ff(%rip), %rdi      # 0x82a0
movq 0x4e40(%rip), %rsi      # 0xaee8
callq *(%r14)
leaq 0x2202(%rip), %rdi      # 0x82b4
movq 0x4f37(%rip), %rsi      # 0xaff0
callq *(%r14)
leaq 0x2204(%rip), %rdi      # 0x82c7
movq 0x4dc6(%rip), %rsi      # 0xae90
callq *(%r14)
leaq 0x220d(%rip), %rdi      # 0x82e1
movq 0x4e7d(%rip), %rsi      # 0xaf58
callq *(%r14)
leaq 0x2219(%rip), %rdi      # 0x82fe
movq 0x4b94(%rip), %r12      # 0xac80
movq %r12, %rsi
callq *(%r14)
leaq 0x2222(%rip), %rdi      # 0x831b
movq 0x4e40(%rip), %rsi      # 0xaf40
callq *(%r14)
leaq 0x2228(%rip), %rdi      # 0x8332
movq 0x4e5f(%rip), %rsi      # 0xaf70
callq *(%r14)
leaq 0x2235(%rip), %rdi      # 0x8350
movq 0x4c4e(%rip), %rsi      # 0xad70
callq *(%r14)
leaq 0x223f(%rip), %rdi      # 0x836b
movq 0x4aed(%rip), %rsi      # 0xac20
callq *(%r14)
leaq 0x2250(%rip), %rdi      # 0x838d
movq 0x4d44(%rip), %rsi      # 0xae88
callq *(%r14)
leaq 0x225a(%rip), %r13      # 0x83a8
movq 0x4cbb(%rip), %r15      # 0xae10
movq %r13, %rdi
movq %r15, %rsi
callq *(%r14)
leaq 0x2263(%rip), %rdi      # 0x83c8
movq 0x4ce4(%rip), %rsi      # 0xae50
callq *(%r14)
leaq 0x2274(%rip), %rdi      # 0x83ea
movq 0x4d2b(%rip), %rsi      # 0xaea8
callq *(%r14)
leaq 0x227f(%rip), %rdi      # 0x8406
movq 0x4d82(%rip), %rsi      # 0xaf10
callq *(%r14)
leaq 0x2288(%rip), %rdi      # 0x8420
movq 0x4b31(%rip), %rsi      # 0xacd0
callq *(%r14)
leaq 0x2296(%rip), %rdi      # 0x843f
movq 0x4a60(%rip), %rsi      # 0xac10
callq *(%r14)
movq %r13, %rdi
movq %r15, %rsi
callq *(%r14)
leaq 0x2298(%rip), %rdi      # 0x845b
movq 0x4a16(%rip), %rsi      # 0xabe0
callq *(%r14)
leaq 0x22a1(%rip), %rdi      # 0x8475
movq 0x4c6d(%rip), %rsi      # 0xae48
callq *(%r14)
leaq 0x22a5(%rip), %rdi      # 0x848a
movq 0x4c1c(%rip), %rsi      # 0xae08
callq *(%r14)
leaq 0x22a8(%rip), %rdi      # 0x849e
movq 0x4deb(%rip), %rsi      # 0xafe8
callq *(%r14)
leaq 0x22ac(%rip), %rdi      # 0x84b3
movq 0x4c22(%rip), %rsi      # 0xae30
callq *(%r14)
leaq 0x22af(%rip), %rdi      # 0x84c7
movq 0x49f9(%rip), %rsi      # 0xac18
callq *(%r14)
leaq 0x22b6(%rip), %rdi      # 0x84df
movq 0x4d00(%rip), %rsi      # 0xaf30
callq *(%r14)
leaq 0x22ba(%rip), %rdi      # 0x84f4
movq 0x4d3f(%rip), %rsi      # 0xaf80
callq *(%r14)
leaq 0x22bd(%rip), %rdi      # 0x8508
movq 0x4cce(%rip), %rsi      # 0xaf20
callq *(%r14)
leaq 0x22c9(%rip), %rdi      # 0x8525
movq 0x4c7d(%rip), %rsi      # 0xaee0
callq *(%r14)
leaq 0x22d3(%rip), %rdi      # 0x8540
movq 0x4c64(%rip), %rsi      # 0xaed8
callq *(%r14)
leaq 0x22d3(%rip), %rdi      # 0x8551
movq 0x4b1b(%rip), %rsi      # 0xada0
callq *(%r14)
leaq 0x22dd(%rip), %rdi      # 0x856c
movq 0x4c82(%rip), %rsi      # 0xaf18
callq *(%r14)
leaq 0x22e6(%rip), %rdi      # 0x8586
movq 0x4a61(%rip), %rsi      # 0xad08
callq *(%r14)
leaq 0x22f2(%rip), %rdi      # 0x85a3
movq 0x4c70(%rip), %rsi      # 0xaf28
callq *(%r14)
leaq 0x22fb(%rip), %rdi      # 0x85bd
movq 0x4c37(%rip), %rsi      # 0xaf00
callq *(%r14)
leaq 0x2306(%rip), %rdi      # 0x85d9
movq 0x4b9e(%rip), %rsi      # 0xae78
callq *(%r14)
leaq 0x2317(%rip), %rdi      # 0x85fb
movq 0x4cf5(%rip), %rsi      # 0xafe0
callq *(%r14)
leaq 0x2325(%rip), %rdi      # 0x861a
movq 0x4ccc(%rip), %rsi      # 0xafc8
callq *(%r14)
leaq 0x233a(%rip), %rdi      # 0x8640
movq 0x4bab(%rip), %rsi      # 0xaeb8
callq *(%r14)
leaq 0x2342(%rip), %rdi      # 0x8659
movq 0x4c42(%rip), %rsi      # 0xaf60
callq *(%r14)
leaq 0x2356(%rip), %rdi      # 0x867e
movq 0x4a91(%rip), %rsi      # 0xadc0
callq *(%r14)
leaq 0x2368(%rip), %rdi      # 0x86a1
movq 0x4ae0(%rip), %rsi      # 0xae20
callq *(%r14)
leaq 0x2376(%rip), %rdi      # 0x86c0
movq 0x491f(%rip), %rsi      # 0xac70
callq *(%r14)
leaq 0x237c(%rip), %rdi      # 0x86d7
movq 0x4a7e(%rip), %rsi      # 0xade0
callq *(%r14)
leaq 0x2384(%rip), %rdi      # 0x86f0
movq 0x49e5(%rip), %rsi      # 0xad58
callq *(%r14)
leaq 0x238a(%rip), %rdi      # 0x8707
movq 0x4a7c(%rip), %rsi      # 0xae00
callq *(%r14)
leaq 0x238f(%rip), %rdi      # 0x871d
movq 0x4bbb(%rip), %rsi      # 0xaf50
callq *(%r14)
leaq 0x239c(%rip), %rdi      # 0x873b
movq 0x4b2a(%rip), %rsi      # 0xaed0
callq *(%r14)
leaq 0x23a1(%rip), %rdi      # 0x8751
movq 0x4c01(%rip), %rsi      # 0xafb8
callq *(%r14)
leaq 0x23a6(%rip), %rdi      # 0x8767
movq 0x4828(%rip), %rsi      # 0xabf0
callq *(%r14)
leaq 0x23ab(%rip), %rdi      # 0x877d
movq 0x4907(%rip), %rsi      # 0xace0
callq *(%r14)
leaq 0x23b0(%rip), %rdi      # 0x8793
movq 0x480e(%rip), %rsi      # 0xabf8
callq *(%r14)
leaq 0x23ba(%rip), %rdi      # 0x87ae
movq 0x493d(%rip), %rsi      # 0xad38
callq *(%r14)
leaq 0x23bf(%rip), %rdi      # 0x87c4
movq 0x4924(%rip), %rsi      # 0xad30
callq *(%r14)
leaq 0x23c4(%rip), %rdi      # 0x87da
movq 0x480b(%rip), %rsi      # 0xac28
callq *(%r14)
leaq 0x23c7(%rip), %rdi      # 0x87ee
movq 0x4ada(%rip), %rsi      # 0xaf08
callq *(%r14)
leaq 0x23cd(%rip), %rdi      # 0x8805
movq 0x4971(%rip), %rsi      # 0xadb0
callq *(%r14)
leaq 0x23d2(%rip), %rdi      # 0x881b
movq 0x4898(%rip), %rsi      # 0xace8
callq *(%r14)
leaq 0x23d5(%rip), %rdi      # 0x882f
movq 0x48af(%rip), %rsi      # 0xad10
callq *(%r14)
leaq 0x23de(%rip), %rdi      # 0x8849
movq 0x4a2e(%rip), %rsi      # 0xaea0
callq *(%r14)
leaq 0x23ef(%rip), %rdi      # 0x886b
movq 0x4ab5(%rip), %rsi      # 0xaf38
callq *(%r14)
leaq 0x23ff(%rip), %rdi      # 0x888c
movq 0x47cc(%rip), %rsi      # 0xac60
callq *(%r14)
leaq 0x240e(%rip), %rdi      # 0x88ac
movq 0x499b(%rip), %rsi      # 0xae40
callq *(%r14)
leaq 0x241c(%rip), %rdi      # 0x88cb
movq 0x4902(%rip), %rsi      # 0xadb8
callq *(%r14)
leaq 0x242f(%rip), %rdi      # 0x88ef
movq 0x47d1(%rip), %rsi      # 0xac98
callq *(%r14)
leaq 0x2438(%rip), %rdi      # 0x8909
movq 0x48d0(%rip), %rsi      # 0xada8
callq *(%r14)
leaq 0x2441(%rip), %rdi      # 0x8923
movq 0x49d7(%rip), %rsi      # 0xaec0
callq *(%r14)
leaq 0x2450(%rip), %rdi      # 0x8943
movq 0x47b6(%rip), %rsi      # 0xacb0
callq *(%r14)
leaq 0x2453(%rip), %rdi      # 0x8957
movq 0x48cd(%rip), %rsi      # 0xadd8
callq *(%r14)
leaq 0x2456(%rip), %rdi      # 0x896b
movq 0x4714(%rip), %rsi      # 0xac30
callq *(%r14)
leaq 0x2467(%rip), %rdi      # 0x898d
movq 0x472b(%rip), %rsi      # 0xac58
callq *(%r14)
leaq 0x246b(%rip), %rdi      # 0x89a2
movq 0x46fa(%rip), %rsi      # 0xac38
callq *(%r14)
leaq 0x2472(%rip), %rdi      # 0x89ba
movq 0x46f9(%rip), %rsi      # 0xac48
callq *(%r14)
leaq 0x247d(%rip), %rdi      # 0x89d6
movq 0x4660(%rip), %rsi      # 0xabc0
callq *(%r14)
leaq 0x2482(%rip), %rdi      # 0x89ec
movq 0x46df(%rip), %rsi      # 0xac50
callq *(%r14)
leaq 0x248c(%rip), %rdi      # 0x8a07
movq 0x4756(%rip), %rsi      # 0xacd8
callq *(%r14)
leaq 0x249a(%rip), %rdi      # 0x8a26
movq 0x4a3d(%rip), %rsi      # 0xafd0
callq *(%r14)
leaq 0x24a7(%rip), %rdi      # 0x8a44
movq 0x4784(%rip), %rsi      # 0xad28
callq *(%r14)
leaq 0x24b5(%rip), %rdi      # 0x8a63
movq 0x48bb(%rip), %rsi      # 0xae70
callq *(%r14)
leaq 0x24bd(%rip), %rdi      # 0x8a7c
movq 0x45e2(%rip), %rsi      # 0xaba8
callq *(%r14)
leaq 0x24c5(%rip), %rdi      # 0x8a95
movq 0x4811(%rip), %rsi      # 0xade8
callq *(%r14)
leaq 0x24cb(%rip), %rdi      # 0x8aac
movq 0x4708(%rip), %rsi      # 0xacf0
callq *(%r14)
leaq 0x24d1(%rip), %rdi      # 0x8ac3
movq 0x4707(%rip), %rsi      # 0xad00
callq *(%r14)
leaq 0x24d7(%rip), %rdi      # 0x8ada
movq 0x4776(%rip), %rsi      # 0xad80
callq *(%r14)
leaq 0x24e3(%rip), %rdi      # 0x8af7
movq 0x459d(%rip), %rsi      # 0xabb8
callq *(%r14)
leaq 0x24e9(%rip), %rdi      # 0x8b0e
movq 0x4854(%rip), %rsi      # 0xae80
callq *(%r14)
leaq 0x24f5(%rip), %rdi      # 0x8b2b
movq 0x473b(%rip), %rsi      # 0xad78
callq *(%r14)
leaq 0x24fb(%rip), %rdi      # 0x8b42
movq 0x47a2(%rip), %rsi      # 0xadf0
callq *(%r14)
leaq 0x2501(%rip), %rdi      # 0x8b59
movq 0x4899(%rip), %rsi      # 0xaef8
callq *(%r14)
leaq 0x2506(%rip), %rdi      # 0x8b6f
movq 0x4758(%rip), %rsi      # 0xadc8
callq *(%r14)
leaq 0x250b(%rip), %rdi      # 0x8b85
movq 0x4957(%rip), %rsi      # 0xafd8
callq *(%r14)
leaq 0x250e(%rip), %rdi      # 0x8b99
movq 0x47d6(%rip), %rsi      # 0xae68
callq *(%r14)
leaq 0x250d(%rip), %rdi      # 0x8ba9
movq 0x48fd(%rip), %rsi      # 0xafa0
callq *(%r14)
leaq 0x2513(%rip), %rdi      # 0x8bc0
movq 0x46e4(%rip), %rsi      # 0xad98
callq *(%r14)
leaq 0x2521(%rip), %rdi      # 0x8bdf
movq 0x4603(%rip), %rsi      # 0xacc8
callq *(%r14)
leaq 0x2529(%rip), %rdi      # 0x8bf8
movq 0x4762(%rip), %rsi      # 0xae38
callq *(%r14)
leaq 0x2532(%rip), %rdi      # 0x8c12
movq 0x4771(%rip), %rsi      # 0xae58
callq *(%r14)
leaq 0x253e(%rip), %rdi      # 0x8c2f
movq 0x47b8(%rip), %rsi      # 0xaeb0
callq *(%r14)
leaq 0x2546(%rip), %rdi      # 0x8c48
movq 0x485f(%rip), %rsi      # 0xaf68
callq *(%r14)
leaq 0x2557(%rip), %rdi      # 0x8c6a
movq 0x482e(%rip), %rsi      # 0xaf48
callq *(%r14)
leaq 0x2564(%rip), %rdi      # 0x8c88
movq 0x46ed(%rip), %rsi      # 0xae18
callq *(%r14)
leaq 0x2571(%rip), %rdi      # 0x8ca6
movq 0x454c(%rip), %rsi      # 0xac88
callq *(%r14)
leaq 0x2577(%rip), %rdi      # 0x8cbd
movq 0x483b(%rip), %rsi      # 0xaf88
callq *(%r14)
leaq 0x257b(%rip), %rdi      # 0x8cd2
movq 0x4542(%rip), %rsi      # 0xaca0
callq *(%r14)
leaq 0x257f(%rip), %rdi      # 0x8ce7
movq 0x4551(%rip), %rsi      # 0xacc0
callq *(%r14)
leaq 0x2583(%rip), %rdi      # 0x8cfc
movq 0x4610(%rip), %rsi      # 0xad90
callq *(%r14)
leaq 0x258b(%rip), %rdi      # 0x8d15
movq 0x463f(%rip), %rsi      # 0xadd0
callq *(%r14)
leaq 0x258e(%rip), %rdi      # 0x8d29
movq 0x44d6(%rip), %rsi      # 0xac78
callq *(%r14)
leaq 0x2595(%rip), %rdi      # 0x8d41
movq 0x45d5(%rip), %rsi      # 0xad88
callq *(%r14)
leaq 0x2599(%rip), %rdi      # 0x8d56
movq 0x4834(%rip), %rsi      # 0xaff8
callq *(%r14)
leaq 0x259c(%rip), %rdi      # 0x8d6a
movq 0x4413(%rip), %rsi      # 0xabe8
callq *(%r14)
leaq 0x25a0(%rip), %rdi      # 0x8d7f
movq 0x47aa(%rip), %rsi      # 0xaf90
callq *(%r14)
leaq 0x25a3(%rip), %rdi      # 0x8d93
movq 0x46a1(%rip), %rsi      # 0xae98
callq *(%r14)
leaq 0x25b1(%rip), %rdi      # 0x8db2
movq 0x4438(%rip), %rsi      # 0xac40
callq *(%r14)
leaq 0x25be(%rip), %rdi      # 0x8dd0
movq 0x43e7(%rip), %rsi      # 0xac00
callq *(%r14)
leaq 0x25ca(%rip), %rdi      # 0x8ded
movq 0x44f6(%rip), %rsi      # 0xad20
callq *(%r14)
leaq 0x25d9(%rip), %rdi      # 0x8e0d
movq 0x4625(%rip), %rsi      # 0xae60
callq *(%r14)
leaq 0x25e7(%rip), %rdi      # 0x8e2c
movq 0x4514(%rip), %rsi      # 0xad60
callq *(%r14)
leaq 0x25ec(%rip), %rdi      # 0x8e42
movq 0x466b(%rip), %rsi      # 0xaec8
callq *(%r14)
leaq 0x25f1(%rip), %rdi      # 0x8e58
movq 0x4342(%rip), %rsi      # 0xabb0
callq *(%r14)
leaq 0x25f5(%rip), %rdi      # 0x8e6d
movq 0x4359(%rip), %rsi      # 0xabd8
callq *(%r14)
leaq 0x25f9(%rip), %rdi      # 0x8e82
movq 0x44d8(%rip), %rsi      # 0xad68
callq *(%r14)
leaq 0x2600(%rip), %rdi      # 0x8e9a
movq 0x44a7(%rip), %rsi      # 0xad48
callq *(%r14)
movq (%r12), %rax
testq %rax, %rax
je 0x68c3
leaq 0x191f(%rip), %rdi      # 0x81d3
callq *%rax
testl %eax, %eax
je 0x68c3
pushq $0x1
popq %r12
jmp 0x6a50
leaq 0x1909(%rip), %rsi      # 0x81d3
pushq $0x1
popq %r12
movq %rbx, %rdi
movl %r12d, %edx
movl %r12d, %ecx
movq 0x467a(%rip), %rax      # 0xaf58
callq *(%rax)
andl $0x0, (%rsp)
leaq 0x18d2(%rip), %rsi      # 0x81bd
movq 0x439e(%rip), %rdx      # 0xac90
leaq 0x18d1(%rip), %rcx      # 0x81ca
movq %rbx, %rdi
xorl %r8d, %r8d
xorl %r9d, %r9d
movq 0x4587(%rip), %r14      # 0xae90
callq *(%r14)
cmpl $0x1, %eax
je 0x6a50
andl $0x0, (%rsp)
leaq 0x18ba(%rip), %rsi      # 0x81da
movq 0x4381(%rip), %rdx      # 0xaca8
leaq 0x189c(%rip), %rcx      # 0x81ca
movq %rbx, %rdi
xorl %r8d, %r8d
xorl %r9d, %r9d
callq *(%r14)
cmpl $0x1, %eax
je 0x6a50
andl $0x0, (%rsp)
leaq 0x1898(%rip), %rsi      # 0x81e6
movq 0x43c3(%rip), %rdx      # 0xad18
leaq 0x1877(%rip), %rcx      # 0x81d3
movq %rbx, %rdi
xorl %r8d, %r8d
xorl %r9d, %r9d
callq *(%r14)
cmpl $0x1, %eax
je 0x6a50
andl $0x0, (%rsp)
leaq 0x1877(%rip), %rsi      # 0x81f3
movq 0x4285(%rip), %rdx      # 0xac08
leaq 0x1840(%rip), %rcx      # 0x81ca
movq %rbx, %rdi
xorl %r8d, %r8d
xorl %r9d, %r9d
callq *(%r14)
cmpl $0x1, %eax
je 0x6a50
andl $0x0, (%rsp)
leaq 0x1855(%rip), %rsi      # 0x81ff
movq 0x421f(%rip), %rdx      # 0xabd0
leaq 0x181b(%rip), %rcx      # 0x81d3
movq %rbx, %rdi
xorl %r8d, %r8d
xorl %r9d, %r9d
callq *(%r14)
cmpl $0x1, %eax
je 0x6a50
andl $0x0, (%rsp)
leaq 0x1834(%rip), %rsi      # 0x820c
movq 0x42d9(%rip), %rdx      # 0xacb8
leaq 0x17e4(%rip), %rcx      # 0x81ca
movq %rbx, %rdi
xorl %r8d, %r8d
xorl %r9d, %r9d
callq *(%r14)
cmpl $0x1, %eax
je 0x6a50
andl $0x0, (%rsp)
leaq 0x1815(%rip), %rsi      # 0x8217
movq 0x45a7(%rip), %rdx      # 0xafb0
leaq 0x17c3(%rip), %rcx      # 0x81d3
movq %rbx, %rdi
xorl %r8d, %r8d
xorl %r9d, %r9d
callq *(%r14)
cmpl $0x1, %eax
je 0x6a50
andl $0x0, (%rsp)
leaq 0x17f7(%rip), %rsi      # 0x8223
movq 0x44bd(%rip), %rdx      # 0xaef0
leaq 0x17f5(%rip), %rcx      # 0x822f
movq %rbx, %rdi
xorl %r8d, %r8d
xorl %r9d, %r9d
callq *(%r14)
xorl %r12d, %r12d
cmpl $0x1, %eax
sete %r12b
movl %r12d, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq