#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */
typedef int /*<<< orphan*/ q;
typedef int /*<<< orphan*/ p;
typedef int /*<<< orphan*/ n;
typedef int /*<<< orphan*/ iqmp;
typedef int /*<<< orphan*/ e;
typedef int /*<<< orphan*/ dmq1;
typedef int /*<<< orphan*/ dmp1;
typedef int /*<<< orphan*/ d;
typedef int /*<<< orphan*/ ctext_ex;
typedef int /*<<< orphan*/ RSA;

/* Variables and functions */
int /*<<< orphan*/ BN_bin2bn(unsigned char *, int, int /*<<< orphan*/ *);
int /*<<< orphan*/ RSA_set0_crt_params(int /*<<< orphan*/ *, int /*<<< orphan*/,
                                       int /*<<< orphan*/, int /*<<< orphan*/);
int /*<<< orphan*/ RSA_set0_factors(int /*<<< orphan*/ *, int /*<<< orphan*/,
                                    int /*<<< orphan*/);
int /*<<< orphan*/ RSA_set0_key(int /*<<< orphan*/ *, int /*<<< orphan*/,
                                int /*<<< orphan*/, int /*<<< orphan*/);
int /*<<< orphan*/ memcpy(unsigned char *, unsigned char *, int);
int key3(RSA *key, unsigned char *c) {
  static unsigned char n[] =
      "\x00\xBB\xF8\x2F\x09\x06\x82\xCE\x9C\x23\x38\xAC\x2B\x9D\xA8\x71"
      "\xF7\x36\x8D\x07\xEE\xD4\x10\x43\xA4\x40\xD6\xB6\xF0\x74\x54\xF5"
      "\x1F\xB8\xDF\xBA\xAF\x03\x5C\x02\xAB\x61\xEA\x48\xCE\xEB\x6F\xCD"
      "\x48\x76\xED\x52\x0D\x60\xE1\xEC\x46\x19\x71\x9D\x8A\x5B\x8B\x80"
      "\x7F\xAF\xB8\xE0\xA3\xDF\xC7\x37\x72\x3E\xE6\xB4\xB7\xD9\x3A\x25"
      "\x84\xEE\x6A\x64\x9D\x06\x09\x53\x74\x88\x34\xB2\x45\x45\x98\x39"
      "\x4E\xE0\xAA\xB1\x2D\x7B\x61\xA5\x1F\x52\x7A\x9A\x41\xF6\xC1\x68"
      "\x7F\xE2\x53\x72\x98\xCA\x2A\x8F\x59\x46\xF8\xE5\xFD\x09\x1D\xBD"
      "\xCB";
  static unsigned char e[] = "\x11";
  static unsigned char d[] =
      "\x00\xA5\xDA\xFC\x53\x41\xFA\xF2\x89\xC4\xB9\x88\xDB\x30\xC1\xCD"
      "\xF8\x3F\x31\x25\x1E\x06\x68\xB4\x27\x84\x81\x38\x01\x57\x96\x41"
      "\xB2\x94\x10\xB3\xC7\x99\x8D\x6B\xC4\x65\x74\x5E\x5C\x39\x26\x69"
      "\xD6\x87\x0D\xA2\xC0\x82\xA9\x39\xE3\x7F\xDC\xB8\x2E\xC9\x3E\xDA"
      "\xC9\x7F\xF3\xAD\x59\x50\xAC\xCF\xBC\x11\x1C\x76\xF1\xA9\x52\x94"
      "\x44\xE5\x6A\xAF\x68\xC5\x6C\x09\x2C\xD3\x8D\xC3\xBE\xF5\xD2\x0A"
      "\x93\x99\x26\xED\x4F\x74\xA1\x3E\xDD\xFB\xE1\xA1\xCE\xCC\x48\x94"
      "\xAF\x94\x28\xC2\xB7\xB8\x88\x3F\xE4\x46\x3A\x4B\xC8\x5B\x1C\xB3"
      "\xC1";
  static unsigned char p[] =
      "\x00\xEE\xCF\xAE\x81\xB1\xB9\xB3\xC9\x08\x81\x0B\x10\xA1\xB5\x60"
      "\x01\x99\xEB\x9F\x44\xAE\xF4\xFD\xA4\x93\xB8\x1A\x9E\x3D\x84\xF6"
      "\x32\x12\x4E\xF0\x23\x6E\x5D\x1E\x3B\x7E\x28\xFA\xE7\xAA\x04\x0A"
      "\x2D\x5B\x25\x21\x76\x45\x9D\x1F\x39\x75\x41\xBA\x2A\x58\xFB\x65"
      "\x99";
  static unsigned char q[] =
      "\x00\xC9\x7F\xB1\xF0\x27\xF4\x53\xF6\x34\x12\x33\xEA\xAA\xD1\xD9"
      "\x35\x3F\x6C\x42\xD0\x88\x66\xB1\xD0\x5A\x0F\x20\x35\x02\x8B\x9D"
      "\x86\x98\x40\xB4\x16\x66\xB4\x2E\x92\xEA\x0D\xA3\xB4\x32\x04\xB5"
      "\xCF\xCE\x33\x52\x52\x4D\x04\x16\xA5\xA4\x41\xE7\x00\xAF\x46\x15"
      "\x03";
  static unsigned char dmp1[] =
      "\x54\x49\x4C\xA6\x3E\xBA\x03\x37\xE4\xE2\x40\x23\xFC\xD6\x9A\x5A"
      "\xEB\x07\xDD\xDC\x01\x83\xA4\xD0\xAC\x9B\x54\xB0\x51\xF2\xB1\x3E"
      "\xD9\x49\x09\x75\xEA\xB7\x74\x14\xFF\x59\xC1\xF7\x69\x2E\x9A\x2E"
      "\x20\x2B\x38\xFC\x91\x0A\x47\x41\x74\xAD\xC9\x3C\x1F\x67\xC9\x81";
  static unsigned char dmq1[] =
      "\x47\x1E\x02\x90\xFF\x0A\xF0\x75\x03\x51\xB7\xF8\x78\x86\x4C\xA9"
      "\x61\xAD\xBD\x3A\x8A\x7E\x99\x1C\x5C\x05\x56\xA9\x4C\x31\x46\xA7"
      "\xF9\x80\x3F\x8F\x6F\x8A\xE3\x42\xE9\x31\xFD\x8A\xE4\x7A\x22\x0D"
      "\x1B\x99\xA4\x95\x84\x98\x07\xFE\x39\xF9\x24\x5A\x98\x36\xDA\x3D";
  static unsigned char iqmp[] =
      "\x00\xB0\x6C\x4F\xDA\xBB\x63\x01\x19\x8D\x26\x5B\xDB\xAE\x94\x23"
      "\xB3\x80\xF2\x71\xF7\x34\x53\x88\x50\x93\x07\x7F\xCD\x39\xE2\x11"
      "\x9F\xC9\x86\x32\x15\x4F\x58\x83\xB1\x67\xA9\x67\xBF\x40\x2B\x4E"
      "\x9E\x2E\x0F\x96\x56\xE6\x98\xEA\x36\x66\xED\xFB\x25\x79\x80\x39"
      "\xF7";
  static unsigned char ctext_ex[] =
      "\xb8\x24\x6b\x56\xa6\xed\x58\x81\xae\xb5\x85\xd9\xa2\x5b\x2a\xd7"
      "\x90\xc4\x17\xe0\x80\x68\x1b\xf1\xac\x2b\xc3\xde\xb6\x9d\x8b\xce"
      "\xf0\xc4\x36\x6f\xec\x40\x0a\xf0\x52\xa7\x2e\x9b\x0e\xff\xb5\xb3"
      "\xf2\xf1\x92\xdb\xea\xca\x03\xc1\x27\x40\x05\x71\x13\xbf\x1f\x06"
      "\x69\xac\x22\xe9\xf3\xa7\x85\x2e\x3c\x15\xd9\x13\xca\xb0\xb8\x86"
      "\x3a\x95\xc9\x92\x94\xce\x86\x74\x21\x49\x54\x61\x03\x46\xf4\xd4"
      "\x74\xb2\x6f\x7c\x48\xb4\x2e\xe6\x8e\x1f\x57\x2a\x1f\xc4\x02\x6a"
      "\xc4\x56\xb4\xf5\x9f\x7b\x62\x1e\xa1\xb9\xd8\x8f\x64\x20\x2f\xb1";
  RSA_set0_key(key, BN_bin2bn(n, sizeof(n) - 1, NULL),
               BN_bin2bn(e, sizeof(e) - 1, NULL),
               BN_bin2bn(d, sizeof(d) - 1, NULL));
  RSA_set0_factors(key, BN_bin2bn(p, sizeof(p) - 1, NULL),
                   BN_bin2bn(q, sizeof(q) - 1, NULL));
  RSA_set0_crt_params(key, BN_bin2bn(dmp1, sizeof(dmp1) - 1, NULL),
                      BN_bin2bn(dmq1, sizeof(dmq1) - 1, NULL),
                      BN_bin2bn(iqmp, sizeof(iqmp) - 1, NULL));
  memcpy(c, ctext_ex, sizeof(ctext_ex) - 1);
  return (sizeof(ctext_ex) - 1);
  ;
}


x86 assembly (clang, -O0):
<key3>:
push   %rbp
mov    %rsp,%rbp
sub    $0x40,%rsp
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    -0x8(%rbp),%rax
mov    %rax,-0x40(%rbp)
lea    0x2ee1(%rip),%rdi
mov    $0x81,%esi
xor    %eax,%eax
mov    %eax,%edx
call   1040 <BN_bin2bn@plt>
mov    %eax,-0x38(%rbp)
lea    0x2f4b(%rip),%rdi
mov    $0x1,%esi
xor    %eax,%eax
mov    %eax,%edx
call   1040 <BN_bin2bn@plt>
mov    %eax,-0x34(%rbp)
lea    0x2f41(%rip),%rdi
mov    $0x81,%esi
xor    %eax,%eax
mov    %eax,%edx
call   1040 <BN_bin2bn@plt>
mov    -0x40(%rbp),%rdi
mov    -0x38(%rbp),%esi
mov    -0x34(%rbp),%edx
mov    %eax,%ecx
call   1070 <RSA_set0_key@plt>
mov    -0x8(%rbp),%rax
mov    %rax,-0x30(%rbp)
lea    0x2fa3(%rip),%rdi
mov    $0x41,%esi
xor    %eax,%eax
mov    %eax,%edx
call   1040 <BN_bin2bn@plt>
mov    %eax,-0x24(%rbp)
lea    0x2fdb(%rip),%rdi
mov    $0x41,%esi
xor    %eax,%eax
mov    %eax,%edx
call   1040 <BN_bin2bn@plt>
mov    -0x30(%rbp),%rdi
mov    -0x24(%rbp),%esi
mov    %eax,%edx
call   1060 <RSA_set0_factors@plt>
mov    -0x8(%rbp),%rax
mov    %rax,-0x20(%rbp)
lea    0x3000(%rip),%rdi
mov    $0x40,%esi
xor    %eax,%eax
mov    %eax,%edx
call   1040 <BN_bin2bn@plt>
mov    %eax,-0x18(%rbp)
lea    0x3038(%rip),%rdi
mov    $0x40,%esi
xor    %eax,%eax
mov    %eax,%edx
call   1040 <BN_bin2bn@plt>
mov    %eax,-0x14(%rbp)
lea    0x3070(%rip),%rdi
mov    $0x41,%esi
xor    %eax,%eax
mov    %eax,%edx
call   1040 <BN_bin2bn@plt>
mov    -0x20(%rbp),%rdi
mov    -0x18(%rbp),%esi
mov    -0x14(%rbp),%edx
mov    %eax,%ecx
call   1030 <RSA_set0_crt_params@plt>
mov    -0x10(%rbp),%rdi
lea    0x3096(%rip),%rsi
mov    $0x80,%edx
call   1050 <memcpy@plt>
mov    $0x80,%eax
add    $0x40,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<key3>:
push   %rbp
push   %r15
push   %r14
push   %rbx
push   %rax
mov    %rsi,%r14
mov    %rdi,%r15
lea    0x2eec(%rip),%rdi
mov    $0x81,%esi
xor    %edx,%edx
call   1040 <BN_bin2bn@plt>
mov    %eax,%ebp
lea    0x2f59(%rip),%rdi
mov    $0x1,%esi
xor    %edx,%edx
call   1040 <BN_bin2bn@plt>
mov    %eax,%ebx
lea    0x2f52(%rip),%rdi
mov    $0x81,%esi
xor    %edx,%edx
call   1040 <BN_bin2bn@plt>
mov    %r15,%rdi
mov    %ebp,%esi
mov    %ebx,%edx
mov    %eax,%ecx
call   1070 <RSA_set0_key@plt>
lea    0x2fc1(%rip),%rdi
mov    $0x41,%esi
xor    %edx,%edx
call   1040 <BN_bin2bn@plt>
mov    %eax,%ebx
lea    0x2ffc(%rip),%rdi
mov    $0x41,%esi
xor    %edx,%edx
call   1040 <BN_bin2bn@plt>
mov    %r15,%rdi
mov    %ebx,%esi
mov    %eax,%edx
call   1060 <RSA_set0_factors@plt>
lea    0x302d(%rip),%rdi
mov    $0x40,%esi
xor    %edx,%edx
call   1040 <BN_bin2bn@plt>
mov    %eax,%ebx
lea    0x3068(%rip),%rdi
mov    $0x40,%esi
xor    %edx,%edx
call   1040 <BN_bin2bn@plt>
mov    %eax,%ebp
lea    0x30a3(%rip),%rdi
mov    $0x41,%esi
xor    %edx,%edx
call   1040 <BN_bin2bn@plt>
mov    %r15,%rdi
mov    %ebx,%esi
mov    %ebp,%edx
mov    %eax,%ecx
call   1030 <RSA_set0_crt_params@plt>
lea    0x30d2(%rip),%rsi
mov    %r14,%rdi
mov    $0x80,%edx
call   1050 <memcpy@plt>
mov    $0x80,%eax
add    $0x8,%rsp
pop    %rbx
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
@key3.n = internal global [130 x i8] c"\00\BB\F8/\09\06\82\CE\9C\AC+\9D\A8q\F76\8D\07\EE\D4\10C\A4@\D6\B6\F0tT\F5\1F\B8\DF\BA\AF\03\\\02\ABa\EAH\CE\EBo\CDHv\EDR\0D`\E1\ECF\19q\9D\8A[\8B\80\7F\AF\B8\E0\A3\DF\C77r>\E6\B4\B7\D9:%\84\EEjd\9D\06\09St\884\B2EE\989N\E0\AA\B1-{a\A5\1FRz\9AA\F6\C1h\7F\E2Sr\98\CA*\8FYF\F8\E5\FD\09\1D\BD\CB\00"
@key3.e = internal global [2 x i8] c"\11\00"
@key3.d = internal global [130 x i8] c"\00\A5\DA\FCSA\FA\F2\89\C4\B9\88\DB0\C1\CD\F8?1%\1E\06h\B4'\84\818\01W\96A\B2\94\10\B3\C7\99\8Dk\C4et^\\9&i\D6\87\0D\A2\C0\82\A99\E3\7F\DC\B8.\C9>\DA\C9\7F\F3\ADYP\AC\CF\BC\11\1Cv\F1\A9R\94D\E5j\AFh\C5l\09,\D3\8D\C3\BE\F5\D2\0A\93\99&\EDOt\A1>\DD\FB\E1\A1\CE\CCH\94\AF\94(\C2\B7\B8\88?\E4F:K\C8[\1C\B3\C1\00"
@key3.p = internal global [66 x i8] c"\00\EE\CF\AE\81\B1\B9\B3\C9\08\81\0B\10\A1\B5`\01\99\EB\9FD\AE\F4\FD\A4\93\B8\1A\9E=\84\F62\12N\F0#n]\1E;~(\FA\E7\AA\04\0A-[%!vE\9D\1F9uA\BA*X\FBe\99\00"
@key3.q = internal global [66 x i8] c"\00\C9\7F\B1\F0'\F4S\F64\123\EA\AA\D1\D95?lB\D0\88f\B1\D0Z\0F 5\02\8B\9D\86\98@\B4\16f\B4.\92\EA\0D\A3\B42\04\B5\CF\CE3RRM\04\16\A5\A4A\E7\00\AFF\15\03\00"
@key3.dmp1 = internal global [65 x i8] c"TIL\A6>\BA\037\E4\E2@#\FC\D6\9AZ\EB\07\DD\DC\01\83\A4\D0\AC\9BT\B0Q\F2\B1>\D9I\09u\EA\B7t\14\FFY\C1\F7i.\9A. +8\FC\91\0AGAt\AD\C9<\1Fg\C9\81\00"
@key3.dmq1 = internal global [65 x i8] c"G\1E\02\90\FF\0A\F0u\03Q\B7\F8x\86L\A9a\AD\BD:\8A~\99\1C\\\05V\A9L1F\A7\F9\80?\8Fo\8A\E3B\E91\FD\8A\E4z\22\0D\1B\99\A4\95\84\98\07\FE9\F9$Z\986\DA=\00"
@key3.iqmp = internal global [66 x i8] c"\00\B0lO\DA\BBc\01\19\8D&[\DB\AE\94#\B3\80\F2q\F74S\88P\93\07\7F\CD9\E2\11\9F\C9\862\15OX\83\B1g\A9g\BF@+N\9E.\0F\96V\E6\98\EA6f\ED\FB%y\809\F7\00"
@key3.ctext_ex = internal global [129 x i8] c"\B8$kV\A6\EDX\81\AE\B5\85\D9\A2[*\D7\90\C4\17\E0\80h\1B\F1\AC+\C3\DE\B6\9D\8B\CE\F0\C46o\EC@\0A\F0R\A7.\9B\0E\FF\B5\B3\F2\F1\92\DB\EA\CA\03\C1'@\05q\13\BF\1F\06i\AC\22\E9\F3\A7\85.<\15\D9\13\CA\B0\B8\86:\95\C9\92\94\CE\86t!ITa\03F\F4\D4t\B2o|H\B4.\E6\8E\1FW*\1F\C4\02j\C4V\B4\F5\9F{b\1E\A1\B9\D8\8Fd /\B1\00"
define i32 @key3(i32* %0, i8* %1) {
%3 = alloca i32*
%4 = alloca i8*
store i32* %0, i32** %3
store i8* %1, i8** %4
%5 = load i32*, i32** %3
%6 = call i32 @BN_bin2bn(i8* getelementptr inbounds ([130 x i8], [130 x i8]* @key3.n, i64 0, i64 0), i32 129, i32* null)
%7 = call i32 @BN_bin2bn(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @key3.e, i64 0, i64 0), i32 1, i32* null)
%8 = call i32 @BN_bin2bn(i8* getelementptr inbounds ([130 x i8], [130 x i8]* @key3.d, i64 0, i64 0), i32 129, i32* null)
%9 = call i32 @RSA_set0_key(i32* %5, i32 %6, i32 %7, i32 %8)
%10 = load i32*, i32** %3
%11 = call i32 @BN_bin2bn(i8* getelementptr inbounds ([66 x i8], [66 x i8]* @key3.p, i64 0, i64 0), i32 65, i32* null)
%12 = call i32 @BN_bin2bn(i8* getelementptr inbounds ([66 x i8], [66 x i8]* @key3.q, i64 0, i64 0), i32 65, i32* null)
%13 = call i32 @RSA_set0_factors(i32* %10, i32 %11, i32 %12)
%14 = load i32*, i32** %3
%15 = call i32 @BN_bin2bn(i8* getelementptr inbounds ([65 x i8], [65 x i8]* @key3.dmp1, i64 0, i64 0), i32 64, i32* null)
%16 = call i32 @BN_bin2bn(i8* getelementptr inbounds ([65 x i8], [65 x i8]* @key3.dmq1, i64 0, i64 0), i32 64, i32* null)
%17 = call i32 @BN_bin2bn(i8* getelementptr inbounds ([66 x i8], [66 x i8]* @key3.iqmp, i64 0, i64 0), i32 65, i32* null)
%18 = call i32 @RSA_set0_crt_params(i32* %14, i32 %15, i32 %16, i32 %17)
%19 = load i8*, i8** %4
%20 = call i32 @memcpy(i8* %19, i8* getelementptr inbounds ([129 x i8], [129 x i8]* @key3.ctext_ex, i64 0, i64 0), i32 128)
ret i32 128
}

LLVM IR (-O2):
@key3.n = internal global [130 x i8] c"\00\BB\F8/\09\06\82\CE\9C\AC+\9D\A8q\F76\8D\07\EE\D4\10C\A4@\D6\B6\F0tT\F5\1F\B8\DF\BA\AF\03\\\02\ABa\EAH\CE\EBo\CDHv\EDR\0D`\E1\ECF\19q\9D\8A[\8B\80\7F\AF\B8\E0\A3\DF\C77r>\E6\B4\B7\D9:%\84\EEjd\9D\06\09St\884\B2EE\989N\E0\AA\B1-{a\A5\1FRz\9AA\F6\C1h\7F\E2Sr\98\CA*\8FYF\F8\E5\FD\09\1D\BD\CB\00"
@key3.e = internal global [2 x i8] c"\11\00"
@key3.d = internal global [130 x i8] c"\00\A5\DA\FCSA\FA\F2\89\C4\B9\88\DB0\C1\CD\F8?1%\1E\06h\B4'\84\818\01W\96A\B2\94\10\B3\C7\99\8Dk\C4et^\\9&i\D6\87\0D\A2\C0\82\A99\E3\7F\DC\B8.\C9>\DA\C9\7F\F3\ADYP\AC\CF\BC\11\1Cv\F1\A9R\94D\E5j\AFh\C5l\09,\D3\8D\C3\BE\F5\D2\0A\93\99&\EDOt\A1>\DD\FB\E1\A1\CE\CCH\94\AF\94(\C2\B7\B8\88?\E4F:K\C8[\1C\B3\C1\00"
@key3.p = internal global [66 x i8] c"\00\EE\CF\AE\81\B1\B9\B3\C9\08\81\0B\10\A1\B5`\01\99\EB\9FD\AE\F4\FD\A4\93\B8\1A\9E=\84\F62\12N\F0#n]\1E;~(\FA\E7\AA\04\0A-[%!vE\9D\1F9uA\BA*X\FBe\99\00"
@key3.q = internal global [66 x i8] c"\00\C9\7F\B1\F0'\F4S\F64\123\EA\AA\D1\D95?lB\D0\88f\B1\D0Z\0F 5\02\8B\9D\86\98@\B4\16f\B4.\92\EA\0D\A3\B42\04\B5\CF\CE3RRM\04\16\A5\A4A\E7\00\AFF\15\03\00"
@key3.dmp1 = internal global [65 x i8] c"TIL\A6>\BA\037\E4\E2@#\FC\D6\9AZ\EB\07\DD\DC\01\83\A4\D0\AC\9BT\B0Q\F2\B1>\D9I\09u\EA\B7t\14\FFY\C1\F7i.\9A. +8\FC\91\0AGAt\AD\C9<\1Fg\C9\81\00"
@key3.dmq1 = internal global [65 x i8] c"G\1E\02\90\FF\0A\F0u\03Q\B7\F8x\86L\A9a\AD\BD:\8A~\99\1C\\\05V\A9L1F\A7\F9\80?\8Fo\8A\E3B\E91\FD\8A\E4z\22\0D\1B\99\A4\95\84\98\07\FE9\F9$Z\986\DA=\00"
@key3.iqmp = internal global [66 x i8] c"\00\B0lO\DA\BBc\01\19\8D&[\DB\AE\94#\B3\80\F2q\F74S\88P\93\07\7F\CD9\E2\11\9F\C9\862\15OX\83\B1g\A9g\BF@+N\9E.\0F\96V\E6\98\EA6f\ED\FB%y\809\F7\00"
@key3.ctext_ex = internal global [129 x i8] c"\B8$kV\A6\EDX\81\AE\B5\85\D9\A2[*\D7\90\C4\17\E0\80h\1B\F1\AC+\C3\DE\B6\9D\8B\CE\F0\C46o\EC@\0A\F0R\A7.\9B\0E\FF\B5\B3\F2\F1\92\DB\EA\CA\03\C1'@\05q\13\BF\1F\06i\AC\22\E9\F3\A7\85.<\15\D9\13\CA\B0\B8\86:\95\C9\92\94\CE\86t!ITa\03F\F4\D4t\B2o|H\B4.\E6\8E\1FW*\1F\C4\02j\C4V\B4\F5\9F{b\1E\A1\B9\D8\8Fd /\B1\00"
define i32 @key3(i32* %0, i8* %1) {
%3 = tail call i32 @BN_bin2bn(i8* getelementptr inbounds ([130 x i8], [130 x i8]* @key3.n, i64 0, i64 0), i32 129, i32* null)
%4 = tail call i32 @BN_bin2bn(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @key3.e, i64 0, i64 0), i32 1, i32* null)
%5 = tail call i32 @BN_bin2bn(i8* getelementptr inbounds ([130 x i8], [130 x i8]* @key3.d, i64 0, i64 0), i32 129, i32* null)
%6 = tail call i32 @RSA_set0_key(i32* %0, i32 %3, i32 %4, i32 %5)
%7 = tail call i32 @BN_bin2bn(i8* getelementptr inbounds ([66 x i8], [66 x i8]* @key3.p, i64 0, i64 0), i32 65, i32* null)
%8 = tail call i32 @BN_bin2bn(i8* getelementptr inbounds ([66 x i8], [66 x i8]* @key3.q, i64 0, i64 0), i32 65, i32* null)
%9 = tail call i32 @RSA_set0_factors(i32* %0, i32 %7, i32 %8)
%10 = tail call i32 @BN_bin2bn(i8* getelementptr inbounds ([65 x i8], [65 x i8]* @key3.dmp1, i64 0, i64 0), i32 64, i32* null)
%11 = tail call i32 @BN_bin2bn(i8* getelementptr inbounds ([65 x i8], [65 x i8]* @key3.dmq1, i64 0, i64 0), i32 64, i32* null)
%12 = tail call i32 @BN_bin2bn(i8* getelementptr inbounds ([66 x i8], [66 x i8]* @key3.iqmp, i64 0, i64 0), i32 65, i32* null)
%13 = tail call i32 @RSA_set0_crt_params(i32* %0, i32 %10, i32 %11, i32 %12)
%14 = tail call i32 @memcpy(i8* %1, i8* getelementptr inbounds ([129 x i8], [129 x i8]* @key3.ctext_ex, i64 0, i64 0), i32 128)
ret i32 128
}