// File: JohnCGriffin[P]BrainForked/bf_main.cpp
// Function: bf::execute(std::vector<bf::Instruction, std::allocator<bf::Instruction>>&)
static void execute(Instructions&  _instructions)
    {
	std::map<Action,void*> addrs;

	// Note that initialization in modern manner chokes clang/g++
	// when in c++14/17.  Direct assignment one by one seems to work.
	addrs[ADVANCE]	    = &&_ADVANCE;
	addrs[DECR1MX]	    = &&_DECR1MX;
	addrs[FALSEJUMP]    = &&_FALSEJUMP;
	addrs[GIVE]	    = &&_GIVE;
	addrs[INCR1MX]	    = &&_INCR1MX;
	addrs[INCR]	    = &&_INCR;
	addrs[M1ZERO]	    = &&_M1ZERO;
	addrs[MOVEWHILE]    = &&_MOVEWHILE;
	addrs[MOVE]	    = &&_MOVE;
	addrs[MXDECR1]	    = &&_MXDECR1;
	addrs[MXINCR1]	    = &&_MXINCR1;
	addrs[OFFINCR]	    = &&_OFFINCR;
	addrs[PRINT]	    = &&_PRINT;
	addrs[READ]	    = &&_READ;
	addrs[TAKE]	    = &&_TAKE;
	addrs[TERMINATE]    = &&_TERMINATE;
	addrs[TRUEJUMP]	    = &&_TRUEJUMP;
	addrs[VALUE]	    = &&_VALUE;
	addrs[WHILEDECROI2] = &&_WHILEDECROI2;
	addrs[WHILEIM2]	    = &&_WHILEIM2;
	addrs[WHILEIM3]	    = &&_WHILEIM3;
	addrs[WHILEMGM]	    = &&_WHILEMGM;
	addrs[ZERO2IF]	    = &&_ZERO2IF;
	addrs[ZEROM1]	    = &&_ZEROM1;
	addrs[ZERO]	    = &&_ZERO;

	for(auto a : ENUMERATED_ACTIONS){
	    if(!addrs[a]){
		throw std::logic_error(to_string(a) + " not in address table");
	    }
	}

	for(auto& instr : _instructions){
	    instr.jump = addrs.at(instr.action);
	}

#ifdef PROFILER
	for(int i=0; i<_instructions.size(); i++){
	    _instructions.at(i).ndx = i;
	}
#endif

	std::vector<char> characters(30000);
	char* ptr = characters.data();
	auto BEGIN = _instructions.data();
	auto IP = BEGIN;

	// initial JUMP.  The remainder happen via the LOOP macro.
	goto *(IP->jump);

#define LOOP() IP++; goto *(IP->jump)

    _TRUEJUMP:
	if(*ptr){
	    IP += IP->val;
	}
	LOOP();

    _FALSEJUMP:
	if(!(*ptr)){
	    IP += IP->val;
	}
#ifdef PROFILER
	else {
	    current_loop = IP->ndx;
	}
#endif
	LOOP();

    _DECR1MX:
	ptr[0]--;
	ptr += IP->val;
	LOOP();

    _INCR1MX:
	ptr[0]++;
	ptr += IP->val;
	LOOP();

    _MXINCR1:
	ptr += IP->val;
	ptr[0]++;
	LOOP();

    _MXDECR1:
	ptr += IP->val;
	ptr[0]--;
	LOOP();

    _WHILEDECROI2:
	if(ptr[0]){
	    const int o1 = IP[-2].val;
	    const int o2 = IP[-1].val;
	    do {
		ptr[0]--;
		ptr[o1]++;
		ptr[o2]++;
	    } while(ptr[0]);
	}
	LOOP();

    _WHILEMGM:
	if(ptr[0]){
	    const int m1 = IP[-2].val;
	    const int g = IP[-1].val;
	    const int m2 = IP->val;
	    do {
		ptr += m1;
		ptr[g] += ptr[0];
		ptr[0] = 0;
		ptr += m2;
	    } while(ptr[0]);
	}
	LOOP();

    _WHILEIM3:
	if(ptr[0]){
	    const auto a = IP[-6].val;
	    const auto b = IP[-5].val;
	    const auto c = IP[-4].val;
	    const auto d = IP[-3].val;
	    const auto e = IP[-2].val;
	    const auto f = IP[-1].val;
	    do {
		ptr[0] += a;
		ptr += b;
		ptr[0] += c;
		ptr += d;
		ptr[0] += e;
		ptr += f;
	    } while(ptr[0]);
	}
	LOOP();

    _WHILEIM2:
	if(ptr[0]){
	    const auto a = IP[-4].val;
	    const auto b = IP[-3].val;
	    const auto c = IP[-2].val;
	    const auto d = IP[-1].val;
	    do {
		ptr[0] += a;
		ptr += b;
		ptr[0] += c;
		ptr += d;
	    } while(ptr[0]);
	}
	LOOP();

    _OFFINCR:
	ptr[IP[-1].val] += IP->val;
	LOOP();


    _ADVANCE:
	IP += IP->val;
	LOOP();

    _VALUE:
	LOOP();

    _GIVE:
	ptr[IP->val] += (ptr[0] + 256);
	ptr[0] = 0;
	LOOP();

    _TAKE:
	ptr[0] += (ptr[IP->val] + 256);
	ptr[IP->val] = 0;
	LOOP();

    _MOVE:
	ptr += IP->val;
	LOOP();

    _INCR:
	*ptr += IP->val;
	LOOP();

    _MOVEWHILE:
	while(ptr[0]){
	    ptr += IP->val;
	}
	LOOP();

    _ZERO2IF:
	if(ptr[0]){
	    ptr[0] = ptr[1] = 0;
	}
	LOOP();

    _ZEROM1:
	*ptr++ = 0;
	LOOP();

    _M1ZERO:
	*(++ptr) = 0;
	LOOP();

    _ZERO:
	ptr[0] = 0;
	LOOP();


    _PRINT:
#ifndef PROFILER
	std::cout << (*ptr);
#endif
	LOOP();

    _READ:
	std::cin.get(*ptr);
	LOOP();

    _TERMINATE:
	return;

    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x310, %rsp            # imm = 0x310
movq %rdi, -0x8(%rbp)
leaq -0x38(%rbp), %rdi
movq %rdi, -0x220(%rbp)
callq 0x56a0
movq -0x220(%rbp), %rdi
movl $0x0, -0x3c(%rbp)
leaq -0x3c(%rbp), %rsi
callq 0x56c0
movq %rax, -0x218(%rbp)
jmp 0x2a5f
movq -0x218(%rbp), %rax
leaq 0xd8f(%rip), %rcx       # 0x37fc
movq %rcx, (%rax)
movl $0x1, -0x50(%rbp)
leaq -0x38(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x56c0
movq %rax, -0x228(%rbp)
jmp 0x2a8d
movq -0x228(%rbp), %rax
leaq 0x809(%rip), %rcx       # 0x32a4
movq %rcx, (%rax)
movl $0x2, -0x54(%rbp)
leaq -0x38(%rbp), %rdi
leaq -0x54(%rbp), %rsi
callq 0x56c0
movq %rax, -0x230(%rbp)
jmp 0x2abb
movq -0x230(%rbp), %rax
leaq 0x783(%rip), %rcx       # 0x324c
movq %rcx, (%rax)
movl $0x3, -0x58(%rbp)
leaq -0x38(%rbp), %rdi
leaq -0x58(%rbp), %rsi
callq 0x56c0
movq %rax, -0x238(%rbp)
jmp 0x2ae9
movq -0x238(%rbp), %rax
leaq 0xd7a(%rip), %rcx       # 0x3871
movq %rcx, (%rax)
movl $0x5, -0x5c(%rbp)
leaq -0x38(%rbp), %rdi
leaq -0x5c(%rbp), %rsi
callq 0x56c0
movq %rax, -0x240(%rbp)
jmp 0x2b17
movq -0x240(%rbp), %rax
leaq 0x7d5(%rip), %rcx       # 0x32fa
movq %rcx, (%rax)
movl $0x4, -0x60(%rbp)
leaq -0x38(%rbp), %rdi
leaq -0x60(%rbp), %rsi
callq 0x56c0
movq %rax, -0x248(%rbp)
jmp 0x2b45
movq -0x248(%rbp), %rax
leaq 0xe30(%rip), %rcx       # 0x3983
movq %rcx, (%rax)
movl $0x6, -0x64(%rbp)
leaq -0x38(%rbp), %rdi
leaq -0x64(%rbp), %rsi
callq 0x56c0
movq %rax, -0x250(%rbp)
jmp 0x2b73
movq -0x250(%rbp), %rax
leaq 0xf27(%rip), %rcx       # 0x3aa8
movq %rcx, (%rax)
movl $0x8, -0x68(%rbp)
leaq -0x38(%rbp), %rdi
leaq -0x68(%rbp), %rsi
callq 0x56c0
movq %rax, -0x258(%rbp)
jmp 0x2ba1
movq -0x258(%rbp), %rax
leaq 0xe16(%rip), %rcx       # 0x39c5
movq %rcx, (%rax)
movl $0x7, -0x6c(%rbp)
leaq -0x38(%rbp), %rdi
leaq -0x6c(%rbp), %rsi
callq 0x56c0
movq %rax, -0x260(%rbp)
jmp 0x2bcf
movq -0x260(%rbp), %rax
leaq 0xd5e(%rip), %rcx       # 0x393b
movq %rcx, (%rax)
movl $0x9, -0x70(%rbp)
leaq -0x38(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x56c0
movq %rax, -0x268(%rbp)
jmp 0x2bfd
movq -0x268(%rbp), %rax
leaq 0x79b(%rip), %rcx       # 0x33a6
movq %rcx, (%rax)
movl $0xa, -0x74(%rbp)
leaq -0x38(%rbp), %rdi
leaq -0x74(%rbp), %rsi
callq 0x56c0
movq %rax, -0x270(%rbp)
jmp 0x2c2b
movq -0x270(%rbp), %rax
leaq 0x717(%rip), %rcx       # 0x3350
movq %rcx, (%rax)
movl $0xb, -0x78(%rbp)
leaq -0x38(%rbp), %rdi
leaq -0x78(%rbp), %rsi
callq 0x56c0
movq %rax, -0x278(%rbp)
jmp 0x2c59
movq -0x278(%rbp), %rax
leaq 0xb45(%rip), %rcx       # 0x37ac
movq %rcx, (%rax)
movl $0xc, -0x7c(%rbp)
leaq -0x38(%rbp), %rdi
leaq -0x7c(%rbp), %rsi
callq 0x56c0
movq %rax, -0x280(%rbp)
jmp 0x2c87
movq -0x280(%rbp), %rax
leaq 0xe88(%rip), %rcx       # 0x3b1d
movq %rcx, (%rax)
movl $0xd, -0x80(%rbp)
leaq -0x38(%rbp), %rdi
leaq -0x80(%rbp), %rsi
callq 0x56c0
movq %rax, -0x288(%rbp)
jmp 0x2cb5
movq -0x288(%rbp), %rax
leaq 0xeb2(%rip), %rcx       # 0x3b75
movq %rcx, (%rax)
movl $0xe, -0x84(%rbp)
leaq -0x38(%rbp), %rdi
leaq -0x84(%rbp), %rsi
callq 0x56c0
movq %rax, -0x290(%rbp)
jmp 0x2ce9
movq -0x290(%rbp), %rax
leaq 0xbd9(%rip), %rcx       # 0x38d0
movq %rcx, (%rax)
movl $0xf, -0x88(%rbp)
leaq -0x38(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x56c0
movq %rax, -0x298(%rbp)
jmp 0x2d1d
movq -0x298(%rbp), %rax
leaq 0xe85(%rip), %rcx       # 0x3bb0
movq %rcx, (%rax)
movl $0x10, -0x8c(%rbp)
leaq -0x38(%rbp), %rdi
leaq -0x8c(%rbp), %rsi
callq 0x56c0
movq %rax, -0x2a0(%rbp)
jmp 0x2d51
movq -0x2a0(%rbp), %rax
leaq 0x495(%rip), %rcx       # 0x31f4
movq %rcx, (%rax)
movl $0x11, -0x90(%rbp)
leaq -0x38(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0x56c0
movq %rax, -0x2a8(%rbp)
jmp 0x2d85
movq -0x2a8(%rbp), %rax
leaq 0xab5(%rip), %rcx       # 0x3848
movq %rcx, (%rax)
movl $0x12, -0x94(%rbp)
leaq -0x38(%rbp), %rdi
leaq -0x94(%rbp), %rsi
callq 0x56c0
movq %rax, -0x2b0(%rbp)
jmp 0x2db9
movq -0x2b0(%rbp), %rax
leaq 0x635(%rip), %rcx       # 0x33fc
movq %rcx, (%rax)
movl $0x13, -0x98(%rbp)
leaq -0x38(%rbp), %rdi
leaq -0x98(%rbp), %rsi
callq 0x56c0
movq %rax, -0x2b8(%rbp)
jmp 0x2ded
movq -0x2b8(%rbp), %rax
leaq 0x8c2(%rip), %rcx       # 0x36bd
movq %rcx, (%rax)
movl $0x14, -0x9c(%rbp)
leaq -0x38(%rbp), %rdi
leaq -0x9c(%rbp), %rsi
callq 0x56c0
movq %rax, -0x2c0(%rbp)
jmp 0x2e21
movq -0x2c0(%rbp), %rax
leaq 0x747(%rip), %rcx       # 0x3576
movq %rcx, (%rax)
movl $0x15, -0xa0(%rbp)
leaq -0x38(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
callq 0x56c0
movq %rax, -0x2c8(%rbp)
jmp 0x2e55
movq -0x2c8(%rbp), %rax
leaq 0x63a(%rip), %rcx       # 0x349d
movq %rcx, (%rax)
movl $0x17, -0xa4(%rbp)
leaq -0x38(%rbp), %rdi
leaq -0xa4(%rbp), %rsi
callq 0x56c0
movq %rax, -0x2d0(%rbp)
jmp 0x2e89
movq -0x2d0(%rbp), %rax
leaq 0xb86(%rip), %rcx       # 0x3a1d
movq %rcx, (%rax)
movl $0x18, -0xa8(%rbp)
leaq -0x38(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0x56c0
movq %rax, -0x2d8(%rbp)
jmp 0x2ebd
movq -0x2d8(%rbp), %rax
leaq 0xb9c(%rip), %rcx       # 0x3a67
movq %rcx, (%rax)
movl $0x16, -0xac(%rbp)
leaq -0x38(%rbp), %rdi
leaq -0xac(%rbp), %rsi
callq 0x56c0
movq %rax, -0x2e0(%rbp)
jmp 0x2ef1
movq -0x2e0(%rbp), %rax
leaq 0xbeb(%rip), %rcx       # 0x3aea
movq %rcx, (%rax)
leaq -0x12c(%rbp), %rdi
leaq 0xa1c4(%rip), %rsi      # 0xd0d4
movl $0x64, %edx
callq 0x2170
leaq -0x12c(%rbp), %rax
movq %rax, -0xc8(%rbp)
movq $0x19, -0xc0(%rbp)
leaq -0xc8(%rbp), %rax
movq %rax, -0xb8(%rbp)
movq -0xb8(%rbp), %rdi
callq 0x57a0
movq %rax, -0x138(%rbp)
movq -0xb8(%rbp), %rdi
callq 0x57c0
movq %rax, -0x140(%rbp)
movq -0x138(%rbp), %rax
cmpq -0x140(%rbp), %rax
je 0x30bd
movq -0x138(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x144(%rbp)
leaq -0x38(%rbp), %rdi
leaq -0x144(%rbp), %rsi
callq 0x5800
movq %rax, -0x2e8(%rbp)
jmp 0x2fa3
movq -0x2e8(%rbp), %rax
cmpq $0x0, (%rax)
jne 0x30a4
movb $0x1, -0x189(%rbp)
movl $0x10, %edi
callq 0x20b0
movq %rax, -0x2f0(%rbp)
movl -0x144(%rbp), %esi
leaq -0x188(%rbp), %rdi
callq 0x7f00
jmp 0x2fe0
leaq 0xa09b(%rip), %rdx      # 0xd082
leaq -0x168(%rbp), %rdi
leaq -0x188(%rbp), %rsi
callq 0x58e0
jmp 0x2ffc
movq -0x2f0(%rbp), %rdi
leaq -0x168(%rbp), %rsi
callq 0x22d0
jmp 0x3011
movq -0x2f0(%rbp), %rdi
movb $0x0, -0x189(%rbp)
movq 0x10faa(%rip), %rsi     # 0x13fd0
movq 0x10f8b(%rip), %rdx     # 0x13fb8
callq 0x2320
jmp 0x3be9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x3bd7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x3088
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x307c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x168(%rbp), %rdi
callq 0x2100
leaq -0x188(%rbp), %rdi
callq 0x2100
testb $0x1, -0x189(%rbp)
jne 0x3093
jmp 0x309f
movq -0x2f0(%rbp), %rdi
callq 0x2150
jmp 0x3bd7
jmp 0x30a6
movq -0x138(%rbp), %rax
addq $0x4, %rax
movq %rax, -0x138(%rbp)
jmp 0x2f67
movq -0x8(%rbp), %rax
movq %rax, -0x198(%rbp)
movq -0x198(%rbp), %rdi
callq 0x51c0
movq %rax, -0x1a0(%rbp)
movq -0x198(%rbp), %rdi
callq 0x5000
movq %rax, -0x1a8(%rbp)
leaq -0x1a0(%rbp), %rdi
leaq -0x1a8(%rbp), %rsi
callq 0x5930
testb $0x1, %al
jne 0x3107
jmp 0x3156
leaq -0x1a0(%rbp), %rdi
callq 0x5680
movq %rax, -0x1b0(%rbp)
movq -0x1b0(%rbp), %rsi
leaq -0x38(%rbp), %rdi
callq 0x5970
movq %rax, -0x2f8(%rbp)
jmp 0x3133
movq -0x2f8(%rbp), %rax
movq (%rax), %rcx
movq -0x1b0(%rbp), %rax
movq %rcx, 0x8(%rax)
leaq -0x1a0(%rbp), %rdi
callq 0x5a10
jmp 0x30ee
leaq -0x1c9(%rbp), %rdi
movq %rdi, -0x300(%rbp)
callq 0x2340
movq -0x300(%rbp), %rdx
leaq -0x1c8(%rbp), %rdi
movl $0x7530, %esi           # imm = 0x7530
callq 0x5a30
jmp 0x3183
leaq -0x1c9(%rbp), %rdi
callq 0x2200
leaq -0x1c8(%rbp), %rdi
callq 0x5aa0
movq %rax, -0x1d8(%rbp)
movq -0x8(%rbp), %rdi
callq 0x5ac0
movq %rax, -0x1e0(%rbp)
movq -0x1e0(%rbp), %rax
movq %rax, -0x1e8(%rbp)
movq -0x1e8(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x308(%rbp)
jmp 0x3bce
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x1c9(%rbp), %rdi
callq 0x2200
jmp 0x3bd7
movq -0x1d8(%rbp), %rax
cmpb $0x0, (%rax)
je 0x3223
movq -0x1e8(%rbp), %rax
movswl 0x4(%rax), %ecx
movq -0x1e8(%rbp), %rax
movslq %ecx, %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq %rax, -0x1e8(%rbp)
movq -0x1e8(%rbp), %rax
addq $0x10, %rax
movq %rax, -0x1e8(%rbp)
movq -0x1e8(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x308(%rbp)
jmp 0x3bce
movq -0x1d8(%rbp), %rax
cmpb $0x0, (%rax)
jne 0x327b
movq -0x1e8(%rbp), %rax
movswl 0x4(%rax), %ecx
movq -0x1e8(%rbp), %rax
movslq %ecx, %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq %rax, -0x1e8(%rbp)
movq -0x1e8(%rbp), %rax
addq $0x10, %rax
movq %rax, -0x1e8(%rbp)
movq -0x1e8(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x308(%rbp)
jmp 0x3bce
movq -0x1d8(%rbp), %rax
movb (%rax), %cl
addb $-0x1, %cl
movb %cl, (%rax)
movq -0x1e8(%rbp), %rax
movswl 0x4(%rax), %ecx
movq -0x1d8(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x1d8(%rbp)
movq -0x1e8(%rbp), %rax
addq $0x10, %rax
movq %rax, -0x1e8(%rbp)
movq -0x1e8(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x308(%rbp)
jmp 0x3bce
movq -0x1d8(%rbp), %rax
movb (%rax), %cl
addb $0x1, %cl
movb %cl, (%rax)
movq -0x1e8(%rbp), %rax
movswl 0x4(%rax), %ecx
movq -0x1d8(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x1d8(%rbp)
movq -0x1e8(%rbp), %rax
addq $0x10, %rax
movq %rax, -0x1e8(%rbp)
movq -0x1e8(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x308(%rbp)
jmp 0x3bce
movq -0x1e8(%rbp), %rax
movswl 0x4(%rax), %ecx
movq -0x1d8(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x1d8(%rbp)
movq -0x1d8(%rbp), %rax
movb (%rax), %cl
addb $0x1, %cl
movb %cl, (%rax)
movq -0x1e8(%rbp), %rax
addq $0x10, %rax
movq %rax, -0x1e8(%rbp)
movq -0x1e8(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x308(%rbp)
jmp 0x3bce
movq -0x1e8(%rbp), %rax
movswl 0x4(%rax), %ecx
movq -0x1d8(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x1d8(%rbp)
movq -0x1d8(%rbp), %rax
movb (%rax), %cl
addb $-0x1, %cl
movb %cl, (%rax)
movq -0x1e8(%rbp), %rax
addq $0x10, %rax
movq %rax, -0x1e8(%rbp)
movq -0x1e8(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x308(%rbp)
jmp 0x3bce
movq -0x1d8(%rbp), %rax
cmpb $0x0, (%rax)
je 0x3474
movq -0x1e8(%rbp), %rax
movswl -0x1c(%rax), %eax
movl %eax, -0x1ec(%rbp)
movq -0x1e8(%rbp), %rax
movswl -0xc(%rax), %eax
movl %eax, -0x1f0(%rbp)
movq -0x1d8(%rbp), %rax
movb (%rax), %cl
addb $-0x1, %cl
movb %cl, (%rax)
movq -0x1d8(%rbp), %rax
movslq -0x1ec(%rbp), %rcx
movb (%rax,%rcx), %dl
addb $0x1, %dl
movb %dl, (%rax,%rcx)
movq -0x1d8(%rbp), %rax
movslq -0x1f0(%rbp), %rcx
movb (%rax,%rcx), %dl
addb $0x1, %dl
movb %dl, (%rax,%rcx)
movq -0x1d8(%rbp), %rax
cmpb $0x0, (%rax)
jne 0x342a
jmp 0x3474
movq -0x1e8(%rbp), %rax
addq $0x10, %rax
movq %rax, -0x1e8(%rbp)
movq -0x1e8(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x308(%rbp)
jmp 0x3bce
movq -0x1d8(%rbp), %rax
cmpb $0x0, (%rax)
je 0x354d
movq -0x1e8(%rbp), %rax
movswl -0x1c(%rax), %eax
movl %eax, -0x1f4(%rbp)
movq -0x1e8(%rbp), %rax
movswl -0xc(%rax), %eax
movl %eax, -0x1f8(%rbp)
movq -0x1e8(%rbp), %rax
movswl 0x4(%rax), %eax
movl %eax, -0x1fc(%rbp)
movl -0x1f4(%rbp), %ecx
movq -0x1d8(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x1d8(%rbp)
movq -0x1d8(%rbp), %rax
movsbl (%rax), %esi
movq -0x1d8(%rbp), %rax
movslq -0x1f8(%rbp), %rcx
movsbl (%rax,%rcx), %edx
addl %esi, %edx
movb %dl, (%rax,%rcx)
movq -0x1d8(%rbp), %rax
movb $0x0, (%rax)
movl -0x1fc(%rbp), %ecx
movq -0x1d8(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x1d8(%rbp)
movq -0x1d8(%rbp), %rax
cmpb $0x0, (%rax)
jne 0x34e0
jmp 0x354d
movq -0x1e8(%rbp), %rax
addq $0x10, %rax
movq %rax, -0x1e8(%rbp)
movq -0x1e8(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x308(%rbp)
jmp 0x3bce
movq -0x1d8(%rbp), %rax
cmpb $0x0, (%rax)
je 0x3694
movq -0x1e8(%rbp), %rax
movw -0x5c(%rax), %ax
movw %ax, -0x1fe(%rbp)
movq -0x1e8(%rbp), %rax
movw -0x4c(%rax), %ax
movw %ax, -0x200(%rbp)
movq -0x1e8(%rbp), %rax
movw -0x3c(%rax), %ax
movw %ax, -0x202(%rbp)
movq -0x1e8(%rbp), %rax
movw -0x2c(%rax), %ax
movw %ax, -0x204(%rbp)
movq -0x1e8(%rbp), %rax
movw -0x1c(%rax), %ax
movw %ax, -0x206(%rbp)
movq -0x1e8(%rbp), %rax
movw -0xc(%rax), %ax
movw %ax, -0x208(%rbp)
movswl -0x1fe(%rbp), %edx
movq -0x1d8(%rbp), %rax
movsbl (%rax), %ecx
addl %edx, %ecx
movb %cl, (%rax)
movswl -0x200(%rbp), %ecx
movq -0x1d8(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x1d8(%rbp)
movswl -0x202(%rbp), %edx
movq -0x1d8(%rbp), %rax
movsbl (%rax), %ecx
addl %edx, %ecx
movb %cl, (%rax)
movswl -0x204(%rbp), %ecx
movq -0x1d8(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x1d8(%rbp)
movswl -0x206(%rbp), %edx
movq -0x1d8(%rbp), %rax
movsbl (%rax), %ecx
addl %edx, %ecx
movb %cl, (%rax)
movswl -0x208(%rbp), %ecx
movq -0x1d8(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x1d8(%rbp)
movq -0x1d8(%rbp), %rax
cmpb $0x0, (%rax)
jne 0x35f2
jmp 0x3694
movq -0x1e8(%rbp), %rax
addq $0x10, %rax
movq %rax, -0x1e8(%rbp)
movq -0x1e8(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x308(%rbp)
jmp 0x3bce
movq -0x1d8(%rbp), %rax
cmpb $0x0, (%rax)
je 0x3783
movq -0x1e8(%rbp), %rax
movw -0x3c(%rax), %ax
movw %ax, -0x20a(%rbp)
movq -0x1e8(%rbp), %rax
movw -0x2c(%rax), %ax
movw %ax, -0x20c(%rbp)
movq -0x1e8(%rbp), %rax
movw -0x1c(%rax), %ax
movw %ax, -0x20e(%rbp)
movq -0x1e8(%rbp), %rax
movw -0xc(%rax), %ax
movw %ax, -0x210(%rbp)
movswl -0x20a(%rbp), %edx
movq -0x1d8(%rbp), %rax
movsbl (%rax), %ecx
addl %edx, %ecx
movb %cl, (%rax)
movswl -0x20c(%rbp), %ecx
movq -0x1d8(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x1d8(%rbp)
movswl -0x20e(%rbp), %edx
movq -0x1d8(%rbp), %rax
movsbl (%rax), %ecx
addl %edx, %ecx
movb %cl, (%rax)
movswl -0x210(%rbp), %ecx
movq -0x1d8(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x1d8(%rbp)
movq -0x1d8(%rbp), %rax
cmpb $0x0, (%rax)
jne 0x3715
jmp 0x3783
movq -0x1e8(%rbp), %rax
addq $0x10, %rax
movq %rax, -0x1e8(%rbp)
movq -0x1e8(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x308(%rbp)
jmp 0x3bce
movq -0x1e8(%rbp), %rax
movswl 0x4(%rax), %esi
movq -0x1d8(%rbp), %rax
movq -0x1e8(%rbp), %rcx
movswq -0xc(%rcx), %rcx
movsbl (%rax,%rcx), %edx
addl %esi, %edx
movb %dl, (%rax,%rcx)
movq -0x1e8(%rbp), %rax
addq $0x10, %rax
movq %rax, -0x1e8(%rbp)
movq -0x1e8(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x308(%rbp)
jmp 0x3bce
movq -0x1e8(%rbp), %rax
movswl 0x4(%rax), %ecx
movq -0x1e8(%rbp), %rax
movslq %ecx, %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq %rax, -0x1e8(%rbp)
movq -0x1e8(%rbp), %rax
addq $0x10, %rax
movq %rax, -0x1e8(%rbp)
movq -0x1e8(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x308(%rbp)
jmp 0x3bce
movq -0x1e8(%rbp), %rax
addq $0x10, %rax
movq %rax, -0x1e8(%rbp)
movq -0x1e8(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x308(%rbp)
jmp 0x3bce
movq -0x1d8(%rbp), %rax
movsbl (%rax), %esi
addl $0x100, %esi            # imm = 0x100
movq -0x1d8(%rbp), %rax
movq -0x1e8(%rbp), %rcx
movswq 0x4(%rcx), %rcx
movsbl (%rax,%rcx), %edx
addl %esi, %edx
movb %dl, (%rax,%rcx)
movq -0x1d8(%rbp), %rax
movb $0x0, (%rax)
movq -0x1e8(%rbp), %rax
addq $0x10, %rax
movq %rax, -0x1e8(%rbp)
movq -0x1e8(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x308(%rbp)
jmp 0x3bce
movq -0x1d8(%rbp), %rax
movq -0x1e8(%rbp), %rcx
movswq 0x4(%rcx), %rcx
movsbl (%rax,%rcx), %edx
addl $0x100, %edx            # imm = 0x100
movq -0x1d8(%rbp), %rax
movsbl (%rax), %ecx
addl %edx, %ecx
movb %cl, (%rax)
movq -0x1d8(%rbp), %rax
movq -0x1e8(%rbp), %rcx
movswq 0x4(%rcx), %rcx
movb $0x0, (%rax,%rcx)
movq -0x1e8(%rbp), %rax
addq $0x10, %rax
movq %rax, -0x1e8(%rbp)
movq -0x1e8(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x308(%rbp)
jmp 0x3bce
movq -0x1e8(%rbp), %rax
movswl 0x4(%rax), %ecx
movq -0x1d8(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x1d8(%rbp)
movq -0x1e8(%rbp), %rax
addq $0x10, %rax
movq %rax, -0x1e8(%rbp)
movq -0x1e8(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x308(%rbp)
jmp 0x3bce
movq -0x1e8(%rbp), %rax
movswl 0x4(%rax), %edx
movq -0x1d8(%rbp), %rax
movsbl (%rax), %ecx
addl %edx, %ecx
movb %cl, (%rax)
movq -0x1e8(%rbp), %rax
addq $0x10, %rax
movq %rax, -0x1e8(%rbp)
movq -0x1e8(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x308(%rbp)
jmp 0x3bce
jmp 0x39c7
movq -0x1d8(%rbp), %rax
cmpb $0x0, (%rax)
je 0x39f4
movq -0x1e8(%rbp), %rax
movswl 0x4(%rax), %ecx
movq -0x1d8(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x1d8(%rbp)
jmp 0x39c7
movq -0x1e8(%rbp), %rax
addq $0x10, %rax
movq %rax, -0x1e8(%rbp)
movq -0x1e8(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x308(%rbp)
jmp 0x3bce
movq -0x1d8(%rbp), %rax
cmpb $0x0, (%rax)
je 0x3a3e
movq -0x1d8(%rbp), %rax
movb $0x0, 0x1(%rax)
movq -0x1d8(%rbp), %rax
movb $0x0, (%rax)
movq -0x1e8(%rbp), %rax
addq $0x10, %rax
movq %rax, -0x1e8(%rbp)
movq -0x1e8(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x308(%rbp)
jmp 0x3bce
movq -0x1d8(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x1d8(%rbp)
movb $0x0, (%rax)
movq -0x1e8(%rbp), %rax
addq $0x10, %rax
movq %rax, -0x1e8(%rbp)
movq -0x1e8(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x308(%rbp)
jmp 0x3bce
movq -0x1d8(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x1d8(%rbp)
movb $0x0, 0x1(%rax)
movq -0x1e8(%rbp), %rax
addq $0x10, %rax
movq %rax, -0x1e8(%rbp)
movq -0x1e8(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x308(%rbp)
jmp 0x3bce
movq -0x1d8(%rbp), %rax
movb $0x0, (%rax)
movq -0x1e8(%rbp), %rax
addq $0x10, %rax
movq %rax, -0x1e8(%rbp)
movq -0x1e8(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x308(%rbp)
jmp 0x3bce
movq -0x1d8(%rbp), %rax
movsbl (%rax), %esi
movq 0x10492(%rip), %rdi     # 0x13fc0
callq 0x2220
jmp 0x3b35
movq -0x1e8(%rbp), %rax
addq $0x10, %rax
movq %rax, -0x1e8(%rbp)
movq -0x1e8(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x308(%rbp)
jmp 0x3bce
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x1c8(%rbp), %rdi
callq 0x5ae0
jmp 0x3bd7
movq -0x1d8(%rbp), %rsi
movq 0x10455(%rip), %rdi     # 0x13fd8
callq 0x2270
jmp 0x3b8a
movq -0x1e8(%rbp), %rax
addq $0x10, %rax
movq %rax, -0x1e8(%rbp)
movq -0x1e8(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x308(%rbp)
jmp 0x3bce
leaq -0x1c8(%rbp), %rdi
callq 0x5ae0
leaq -0x38(%rbp), %rdi
callq 0x5b40
addq $0x310, %rsp            # imm = 0x310
popq %rbp
retq
movq -0x308(%rbp), %rax
jmpq *%rax
leaq -0x38(%rbp), %rdi
callq 0x5b40
movq -0x48(%rbp), %rdi
callq 0x2330
nopl (%rax)