// File: stacksmith[P]picoasm/cpicoblaze.cpp
// Function: CCode::Disassemble(unsigned int)
CInstruction * CCode::Disassemble( uint32_t code )
{
	uint32_t code_17_0  = (code & 0x3ffff) ;
	uint32_t code_17_12 = (code & 0x3f000) ;
	uint32_t code_17_10 = (code & 0x3fC00) ;
	uint32_t code_7_0   = (code & 0x000ff) ;

	switch( code_17_0 ) {
	case instrRETURN            : return new RETURN( m_cpu, code ) ;
	case instrRETURNC           : return new RETURNC( m_cpu, code ) ;
	case instrRETURNNC          : return new RETURNNC( m_cpu, code ) ;
	case instrRETURNNZ          : return new RETURNNZ( m_cpu, code ) ;
	case instrRETURNZ           : return new RETURNZ( m_cpu, code ) ;
	case instrRETURNI_DISABLE   : return new RETURNI_DISABLE( m_cpu, code ) ;
	case instrRETURNI_ENABLE    : return new RETURNI_ENABLE( m_cpu, code ) ;
	case instrDISABLE_INTERRUPT : return new DISABLE_INTERRUPT( m_cpu, code ) ;
	case instrENABLE_INTERRUPT  : return new ENABLE_INTERRUPT( m_cpu, code ) ;
	default:
		switch( code_17_10 ) {
		case instrCALL   : return new CALL( m_cpu, code ) ;
		case instrCALLC  : return new CALLC( m_cpu, code ) ;
		case instrCALLNC : return new CALLNC( m_cpu, code ) ;
		case instrCALLNZ : return new CALLNZ( m_cpu, code ) ;
		case instrCALLZ  : return new CALLZ( m_cpu, code ) ;
		case instrJUMP   : return new JUMP( m_cpu, code ) ;
		case instrJUMPC  : return new JUMPC( m_cpu, code ) ;
		case instrJUMPNC : return new JUMPNC( m_cpu, code ) ;
		case instrJUMPNZ : return new JUMPNZ( m_cpu, code ) ;
		case instrJUMPZ  : return new JUMPZ( m_cpu, code ) ;
		default:
			switch ( code_17_12 ) {
			case instrADD_SX_KK     : return new ADD_SX_KK( m_cpu, code ) ;
			case instrADD_SX_SY     : return new ADD_SX_SY( m_cpu, code ) ;
			case instrADDCY_SX_KK   : return new ADDCY_SX_KK( m_cpu, code ) ;
			case instrADDCY_SX_SY   : return new ADDCY_SX_SY( m_cpu, code ) ;
			case instrAND_SX_KK     : return new AND_SX_KK( m_cpu, code ) ;
			case instrAND_SX_SY     : return new AND_SX_SY( m_cpu, code ) ;
			case instrCOMPARE_SX_KK : return new COMPARE_SX_KK( m_cpu, code ) ;
			case instrCOMPARE_SX_SY : return new COMPARE_SX_SY( m_cpu, code ) ;
			case instrFETCH_SX_SS   : return new FETCH_SX_SS( m_cpu, code ) ;
			case instrFETCH_SX_SY   : return new FETCH_SX_SY( m_cpu, code ) ;
			case instrINPUT_SX_SY   : return new INPUT_SX_SY( m_cpu, code ) ;
			case instrINPUT_SX_PP   : return new INPUT_SX_PP( m_cpu, code ) ;
			case instrLOAD_SX_KK    : return new LOAD_SX_KK( m_cpu, code ) ;
			case instrLOAD_SX_SY    : return new LOAD_SX_SY( m_cpu, code ) ;
			case instrOR_SX_KK      : return new OR_SX_KK( m_cpu, code ) ;
			case instrOR_SX_SY      : return new OR_SX_SY( m_cpu, code ) ;
			case instrOUTPUT_SX_SY  : return new OUTPUT_SX_SY( m_cpu, code ) ;
			case instrOUTPUT_SX_PP  : return new OUTPUT_SX_PP( m_cpu, code ) ;
			case instrSTORE_SX_SS   : return new STORE_SX_SS( m_cpu, code ) ;	  
			case instrSTORE_SX_SY   : return new STORE_SX_SY( m_cpu, code ) ;	  
			case instrSUB_SX_KK     : return new SUB_SX_KK( m_cpu, code ) ;	  
			case instrSUB_SX_SY     : return new SUB_SX_SY( m_cpu, code ) ;	  
			case instrSUBCY_SX_KK   : return new SUBCY_SX_KK( m_cpu, code ) ;	  
			case instrSUBCY_SX_SY   : return new SUBCY_SX_SY( m_cpu, code ) ;	  
			case instrTEST_SX_KK    : return new TEST_SX_KK( m_cpu, code ) ;	  
			case instrTEST_SX_SY    : return new TEST_SX_SY( m_cpu, code ) ;	  
			case instrXOR_SX_KK		: return new XOR_SX_KK( m_cpu, code ) ;
			case instrXOR_SX_SY		: return new XOR_SX_SY( m_cpu, code ) ;
			
			case instrROTATE:
				switch( code_7_0 ) {
				case instrRL_SX  : return new RL_SX( m_cpu, code ) ;
				case instrRR_SX  : return new RR_SX( m_cpu, code ) ;
				case instrSL0_SX : return new SL0_SX( m_cpu, code ) ;
				case instrSL1_SX : return new SL1_SX( m_cpu, code ) ;
				case instrSLA_SX : return new SLA_SX( m_cpu, code ) ;
				case instrSLX_SX : return new SLX_SX( m_cpu, code ) ;
				case instrSR0_SX : return new SR0_SX( m_cpu, code ) ;
				case instrSR1_SX : return new SR1_SX( m_cpu, code ) ;
				case instrSRA_SX : return new SRA_SX( m_cpu, code ) ;
				case instrSRX_SX : return new SRX_SX( m_cpu, code ) ;
				}
			}
		}
	}

	cout << "Invalid code (" << code << endl ;
	
	return NULL ;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x220, %rsp            # imm = 0x220
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x40(%rbp)
movl -0x14(%rbp), %eax
andl $0x3ffff, %eax          # imm = 0x3FFFF
movl %eax, -0x18(%rbp)
movl -0x14(%rbp), %eax
andl $0x3f000, %eax          # imm = 0x3F000
movl %eax, -0x1c(%rbp)
movl -0x14(%rbp), %eax
andl $0x3fc00, %eax          # imm = 0x3FC00
movl %eax, -0x20(%rbp)
movzbl -0x14(%rbp), %eax
movl %eax, -0x24(%rbp)
movl -0x18(%rbp), %eax
movl %eax, -0x38(%rbp)
subl $0x2a000, %eax          # imm = 0x2A000
je 0x412188
jmp 0x412105
movl -0x38(%rbp), %eax
subl $0x2b000, %eax          # imm = 0x2B000
je 0x4122cc
jmp 0x412115
movl -0x38(%rbp), %eax
subl $0x2b400, %eax          # imm = 0x2B400
je 0x41227b
jmp 0x412125
movl -0x38(%rbp), %eax
subl $0x2b800, %eax          # imm = 0x2B800
je 0x4121d9
jmp 0x412135
movl -0x38(%rbp), %eax
subl $0x2bc00, %eax          # imm = 0x2BC00
je 0x41222a
jmp 0x412145
movl -0x38(%rbp), %eax
subl $0x38000, %eax          # imm = 0x38000
je 0x41231d
jmp 0x412155
movl -0x38(%rbp), %eax
subl $0x38001, %eax          # imm = 0x38001
je 0x41236e
jmp 0x412165
movl -0x38(%rbp), %eax
subl $0x3c000, %eax          # imm = 0x3C000
je 0x4123bf
jmp 0x412175
movl -0x38(%rbp), %eax
subl $0x3c001, %eax          # imm = 0x3C001
je 0x412410
jmp 0x41246a
movl $0x28, %edi
callq 0x416f20
movq %rax, %rdi
movq -0x40(%rbp), %rax
movq %rdi, %rcx
movq %rcx, -0x48(%rbp)
movq (%rax), %rsi
movl -0x14(%rbp), %edx
callq 0x4144e0
jmp 0x4121ad
movq -0x48(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x413898
movq -0x48(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
movl $0x28, %esi
callq 0x416080
jmp 0x4138a5
movl $0x28, %edi
callq 0x416f20
movq %rax, %rdi
movq -0x40(%rbp), %rax
movq %rdi, %rcx
movq %rcx, -0x50(%rbp)
movq (%rax), %rsi
movl -0x14(%rbp), %edx
callq 0x414520
jmp 0x4121fe
movq -0x50(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x413898
movq -0x50(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
movl $0x28, %esi
callq 0x416080
jmp 0x4138a5
movl $0x28, %edi
callq 0x416f20
movq %rax, %rdi
movq -0x40(%rbp), %rax
movq %rdi, %rcx
movq %rcx, -0x58(%rbp)
movq (%rax), %rsi
movl -0x14(%rbp), %edx
callq 0x414560
jmp 0x41224f
movq -0x58(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x413898
movq -0x58(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
movl $0x28, %esi
callq 0x416080
jmp 0x4138a5
movl $0x28, %edi
callq 0x416f20
movq %rax, %rdi
movq -0x40(%rbp), %rax
movq %rdi, %rcx
movq %rcx, -0x60(%rbp)
movq (%rax), %rsi
movl -0x14(%rbp), %edx
callq 0x4145a0
jmp 0x4122a0
movq -0x60(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x413898
movq -0x60(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
movl $0x28, %esi
callq 0x416080
jmp 0x4138a5
movl $0x28, %edi
callq 0x416f20
movq %rax, %rdi
movq -0x40(%rbp), %rax
movq %rdi, %rcx
movq %rcx, -0x68(%rbp)
movq (%rax), %rsi
movl -0x14(%rbp), %edx
callq 0x4145e0
jmp 0x4122f1
movq -0x68(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x413898
movq -0x68(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
movl $0x28, %esi
callq 0x416080
jmp 0x4138a5
movl $0x28, %edi
callq 0x416f20
movq %rax, %rdi
movq -0x40(%rbp), %rax
movq %rdi, %rcx
movq %rcx, -0x70(%rbp)
movq (%rax), %rsi
movl -0x14(%rbp), %edx
callq 0x414620
jmp 0x412342
movq -0x70(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x413898
movq -0x70(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
movl $0x28, %esi
callq 0x416080
jmp 0x4138a5
movl $0x28, %edi
callq 0x416f20
movq %rax, %rdi
movq -0x40(%rbp), %rax
movq %rdi, %rcx
movq %rcx, -0x78(%rbp)
movq (%rax), %rsi
movl -0x14(%rbp), %edx
callq 0x414660
jmp 0x412393
movq -0x78(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x413898
movq -0x78(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
movl $0x28, %esi
callq 0x416080
jmp 0x4138a5
movl $0x28, %edi
callq 0x416f20
movq %rax, %rdi
movq -0x40(%rbp), %rax
movq %rdi, %rcx
movq %rcx, -0x80(%rbp)
movq (%rax), %rsi
movl -0x14(%rbp), %edx
callq 0x4146a0
jmp 0x4123e4
movq -0x80(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x413898
movq -0x80(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
movl $0x28, %esi
callq 0x416080
jmp 0x4138a5
movl $0x28, %edi
callq 0x416f20
movq %rax, %rdi
movq -0x40(%rbp), %rax
movq %rdi, %rcx
movq %rcx, -0x88(%rbp)
movq (%rax), %rsi
movl -0x14(%rbp), %edx
callq 0x4146e0
jmp 0x412438
movq -0x88(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x413898
movq -0x88(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
movl $0x28, %esi
callq 0x416080
jmp 0x4138a5
movl -0x20(%rbp), %eax
movl %eax, -0x8c(%rbp)
subl $0x30000, %eax          # imm = 0x30000
je 0x41252e
jmp 0x412480
movl -0x8c(%rbp), %eax
subl $0x31000, %eax          # imm = 0x31000
je 0x412696
jmp 0x412493
movl -0x8c(%rbp), %eax
subl $0x31400, %eax          # imm = 0x31400
je 0x41263c
jmp 0x4124a6
movl -0x8c(%rbp), %eax
subl $0x31800, %eax          # imm = 0x31800
je 0x412588
jmp 0x4124b9
movl -0x8c(%rbp), %eax
subl $0x31c00, %eax          # imm = 0x31C00
je 0x4125e2
jmp 0x4124cc
movl -0x8c(%rbp), %eax
subl $0x34000, %eax          # imm = 0x34000
je 0x4126f0
jmp 0x4124df
movl -0x8c(%rbp), %eax
subl $0x35000, %eax          # imm = 0x35000
je 0x412858
jmp 0x4124f2
movl -0x8c(%rbp), %eax
subl $0x35400, %eax          # imm = 0x35400
je 0x4127fe
jmp 0x412505
movl -0x8c(%rbp), %eax
subl $0x35800, %eax          # imm = 0x35800
je 0x41274a
jmp 0x412518
movl -0x8c(%rbp), %eax
subl $0x35c00, %eax          # imm = 0x35C00
je 0x4127a4
jmp 0x4128b2
movl $0x28, %edi
callq 0x416f20
movq %rax, %rdi
movq -0x40(%rbp), %rax
movq %rdi, %rcx
movq %rcx, -0x98(%rbp)
movq (%rax), %rsi
movl -0x14(%rbp), %edx
callq 0x414720
jmp 0x412556
movq -0x98(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x413898
movq -0x98(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
movl $0x28, %esi
callq 0x416080
jmp 0x4138a5
movl $0x28, %edi
callq 0x416f20
movq %rax, %rdi
movq -0x40(%rbp), %rax
movq %rdi, %rcx
movq %rcx, -0xa0(%rbp)
movq (%rax), %rsi
movl -0x14(%rbp), %edx
callq 0x414760
jmp 0x4125b0
movq -0xa0(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x413898
movq -0xa0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
movl $0x28, %esi
callq 0x416080
jmp 0x4138a5
movl $0x28, %edi
callq 0x416f20
movq %rax, %rdi
movq -0x40(%rbp), %rax
movq %rdi, %rcx
movq %rcx, -0xa8(%rbp)
movq (%rax), %rsi
movl -0x14(%rbp), %edx
callq 0x4147a0
jmp 0x41260a
movq -0xa8(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x413898
movq -0xa8(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
movl $0x28, %esi
callq 0x416080
jmp 0x4138a5
movl $0x28, %edi
callq 0x416f20
movq %rax, %rdi
movq -0x40(%rbp), %rax
movq %rdi, %rcx
movq %rcx, -0xb0(%rbp)
movq (%rax), %rsi
movl -0x14(%rbp), %edx
callq 0x4147e0
jmp 0x412664
movq -0xb0(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x413898
movq -0xb0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
movl $0x28, %esi
callq 0x416080
jmp 0x4138a5
movl $0x28, %edi
callq 0x416f20
movq %rax, %rdi
movq -0x40(%rbp), %rax
movq %rdi, %rcx
movq %rcx, -0xb8(%rbp)
movq (%rax), %rsi
movl -0x14(%rbp), %edx
callq 0x414820
jmp 0x4126be
movq -0xb8(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x413898
movq -0xb8(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
movl $0x28, %esi
callq 0x416080
jmp 0x4138a5
movl $0x28, %edi
callq 0x416f20
movq %rax, %rdi
movq -0x40(%rbp), %rax
movq %rdi, %rcx
movq %rcx, -0xc0(%rbp)
movq (%rax), %rsi
movl -0x14(%rbp), %edx
callq 0x414860
jmp 0x412718
movq -0xc0(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x413898
movq -0xc0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
movl $0x28, %esi
callq 0x416080
jmp 0x4138a5
movl $0x28, %edi
callq 0x416f20
movq %rax, %rdi
movq -0x40(%rbp), %rax
movq %rdi, %rcx
movq %rcx, -0xc8(%rbp)
movq (%rax), %rsi
movl -0x14(%rbp), %edx
callq 0x4148a0
jmp 0x412772
movq -0xc8(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x413898
movq -0xc8(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
movl $0x28, %esi
callq 0x416080
jmp 0x4138a5
movl $0x28, %edi
callq 0x416f20
movq %rax, %rdi
movq -0x40(%rbp), %rax
movq %rdi, %rcx
movq %rcx, -0xd0(%rbp)
movq (%rax), %rsi
movl -0x14(%rbp), %edx
callq 0x4148e0
jmp 0x4127cc
movq -0xd0(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x413898
movq -0xd0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
movl $0x28, %esi
callq 0x416080
jmp 0x4138a5
movl $0x28, %edi
callq 0x416f20
movq %rax, %rdi
movq -0x40(%rbp), %rax
movq %rdi, %rcx
movq %rcx, -0xd8(%rbp)
movq (%rax), %rsi
movl -0x14(%rbp), %edx
callq 0x414920
jmp 0x412826
movq -0xd8(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x413898
movq -0xd8(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
movl $0x28, %esi
callq 0x416080
jmp 0x4138a5
movl $0x28, %edi
callq 0x416f20
movq %rax, %rdi
movq -0x40(%rbp), %rax
movq %rdi, %rcx
movq %rcx, -0xe0(%rbp)
movq (%rax), %rsi
movl -0x14(%rbp), %edx
callq 0x414960
jmp 0x412880
movq -0xe0(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x413898
movq -0xe0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
movl $0x28, %esi
callq 0x416080
jmp 0x4138a5
movl -0x1c(%rbp), %eax
movl %eax, -0xe4(%rbp)
testl %eax, %eax
je 0x412f14
jmp 0x4128c5
movl -0xe4(%rbp), %eax
subl $0x1000, %eax           # imm = 0x1000
je 0x412f6e
jmp 0x4128d8
movl -0xe4(%rbp), %eax
subl $0x4000, %eax           # imm = 0x4000
je 0x412eba
jmp 0x4128eb
movl -0xe4(%rbp), %eax
subl $0x5000, %eax           # imm = 0x5000
je 0x412e60
jmp 0x4128fe
movl -0xe4(%rbp), %eax
subl $0x6000, %eax           # imm = 0x6000
je 0x412dac
jmp 0x412911
movl -0xe4(%rbp), %eax
subl $0x7000, %eax           # imm = 0x7000
je 0x412e06
jmp 0x412924
movl -0xe4(%rbp), %eax
subl $0xa000, %eax           # imm = 0xA000
je 0x412c44
jmp 0x412937
movl -0xe4(%rbp), %eax
subl $0xb000, %eax           # imm = 0xB000
je 0x412c9e
jmp 0x41294a
movl -0xe4(%rbp), %eax
subl $0xc000, %eax           # imm = 0xC000
je 0x412fc8
jmp 0x41295d
movl -0xe4(%rbp), %eax
subl $0xd000, %eax           # imm = 0xD000
je 0x413022
jmp 0x412970
movl -0xe4(%rbp), %eax
subl $0xe000, %eax           # imm = 0xE000
je 0x413400
jmp 0x412983
movl -0xe4(%rbp), %eax
subl $0xf000, %eax           # imm = 0xF000
je 0x41345a
jmp 0x412996
movl -0xe4(%rbp), %eax
subl $0x12000, %eax          # imm = 0x12000
je 0x41334c
jmp 0x4129a9
movl -0xe4(%rbp), %eax
subl $0x13000, %eax          # imm = 0x13000
je 0x4133a6
jmp 0x4129bc
movl -0xe4(%rbp), %eax
subl $0x14000, %eax          # imm = 0x14000
je 0x412cf8
jmp 0x4129cf
movl -0xe4(%rbp), %eax
subl $0x15000, %eax          # imm = 0x15000
je 0x412d52
jmp 0x4129e2
movl -0xe4(%rbp), %eax
subl $0x18000, %eax          # imm = 0x18000
je 0x412adc
jmp 0x4129f5
movl -0xe4(%rbp), %eax
subl $0x19000, %eax          # imm = 0x19000
je 0x412b36
jmp 0x412a08
movl -0xe4(%rbp), %eax
subl $0x1a000, %eax          # imm = 0x1A000
je 0x412b90
jmp 0x412a1b
movl -0xe4(%rbp), %eax
subl $0x1b000, %eax          # imm = 0x1B000
je 0x412bea
jmp 0x412a2e
movl -0xe4(%rbp), %eax
subl $0x1c000, %eax          # imm = 0x1C000
je 0x4131e4
jmp 0x412a41
movl -0xe4(%rbp), %eax
subl $0x1d000, %eax          # imm = 0x1D000
je 0x41323e
jmp 0x412a54
movl -0xe4(%rbp), %eax
subl $0x1e000, %eax          # imm = 0x1E000
je 0x413298
jmp 0x412a67
movl -0xe4(%rbp), %eax
subl $0x1f000, %eax          # imm = 0x1F000
je 0x4132f2
jmp 0x412a7a
movl -0xe4(%rbp), %eax
subl $0x20000, %eax          # imm = 0x20000
je 0x4134b4
jmp 0x412a8d
movl -0xe4(%rbp), %eax
subl $0x2c000, %eax          # imm = 0x2C000
je 0x4130d6
jmp 0x412aa0
movl -0xe4(%rbp), %eax
subl $0x2d000, %eax          # imm = 0x2D000
je 0x41307c
jmp 0x412ab3
movl -0xe4(%rbp), %eax
subl $0x2e000, %eax          # imm = 0x2E000
je 0x413130
jmp 0x412ac6
movl -0xe4(%rbp), %eax
subl $0x2f000, %eax          # imm = 0x2F000
je 0x41318a
jmp 0x41385f
movl $0x28, %edi
callq 0x416f20
movq %rax, %rdi
movq -0x40(%rbp), %rax
movq %rdi, %rcx
movq %rcx, -0xf0(%rbp)
movq (%rax), %rsi
movl -0x14(%rbp), %edx
callq 0x4149a0
jmp 0x412b04
movq -0xf0(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x413898
movq -0xf0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
movl $0x28, %esi
callq 0x416080
jmp 0x4138a5
movl $0x28, %edi
callq 0x416f20
movq %rax, %rdi
movq -0x40(%rbp), %rax
movq %rdi, %rcx
movq %rcx, -0xf8(%rbp)
movq (%rax), %rsi
movl -0x14(%rbp), %edx
callq 0x4149e0
jmp 0x412b5e
movq -0xf8(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x413898
movq -0xf8(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
movl $0x28, %esi
callq 0x416080
jmp 0x4138a5
movl $0x28, %edi
callq 0x416f20
movq %rax, %rdi
movq -0x40(%rbp), %rax
movq %rdi, %rcx
movq %rcx, -0x100(%rbp)
movq (%rax), %rsi
movl -0x14(%rbp), %edx
callq 0x414a20
jmp 0x412bb8
movq -0x100(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x413898
movq -0x100(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
movl $0x28, %esi
callq 0x416080
jmp 0x4138a5
movl $0x28, %edi
callq 0x416f20
movq %rax, %rdi
movq -0x40(%rbp), %rax
movq %rdi, %rcx
movq %rcx, -0x108(%rbp)
movq (%rax), %rsi
movl -0x14(%rbp), %edx
callq 0x414a60
jmp 0x412c12
movq -0x108(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x413898
movq -0x108(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
movl $0x28, %esi
callq 0x416080
jmp 0x4138a5
movl $0x28, %edi
callq 0x416f20
movq %rax, %rdi
movq -0x40(%rbp), %rax
movq %rdi, %rcx
movq %rcx, -0x110(%rbp)
movq (%rax), %rsi
movl -0x14(%rbp), %edx
callq 0x414aa0
jmp 0x412c6c
movq -0x110(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x413898
movq -0x110(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
movl $0x28, %esi
callq 0x416080
jmp 0x4138a5
movl $0x28, %edi
callq 0x416f20
movq %rax, %rdi
movq -0x40(%rbp), %rax
movq %rdi, %rcx
movq %rcx, -0x118(%rbp)
movq (%rax), %rsi
movl -0x14(%rbp), %edx
callq 0x414ae0
jmp 0x412cc6
movq -0x118(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x413898
movq -0x118(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
movl $0x28, %esi
callq 0x416080
jmp 0x4138a5
movl $0x28, %edi
callq 0x416f20
movq %rax, %rdi
movq -0x40(%rbp), %rax
movq %rdi, %rcx
movq %rcx, -0x120(%rbp)
movq (%rax), %rsi
movl -0x14(%rbp), %edx
callq 0x414b20
jmp 0x412d20
movq -0x120(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x413898
movq -0x120(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
movl $0x28, %esi
callq 0x416080
jmp 0x4138a5
movl $0x28, %edi
callq 0x416f20
movq %rax, %rdi
movq -0x40(%rbp), %rax
movq %rdi, %rcx
movq %rcx, -0x128(%rbp)
movq (%rax), %rsi
movl -0x14(%rbp), %edx
callq 0x414b60
jmp 0x412d7a
movq -0x128(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x413898
movq -0x128(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
movl $0x28, %esi
callq 0x416080
jmp 0x4138a5
movl $0x28, %edi
callq 0x416f20
movq %rax, %rdi
movq -0x40(%rbp), %rax
movq %rdi, %rcx
movq %rcx, -0x130(%rbp)
movq (%rax), %rsi
movl -0x14(%rbp), %edx
callq 0x414ba0
jmp 0x412dd4
movq -0x130(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x413898
movq -0x130(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
movl $0x28, %esi
callq 0x416080
jmp 0x4138a5
movl $0x28, %edi
callq 0x416f20
movq %rax, %rdi
movq -0x40(%rbp), %rax
movq %rdi, %rcx
movq %rcx, -0x138(%rbp)
movq (%rax), %rsi
movl -0x14(%rbp), %edx
callq 0x414be0
jmp 0x412e2e
movq -0x138(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x413898
movq -0x138(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
movl $0x28, %esi
callq 0x416080
jmp 0x4138a5
movl $0x28, %edi
callq 0x416f20
movq %rax, %rdi
movq -0x40(%rbp), %rax
movq %rdi, %rcx
movq %rcx, -0x140(%rbp)
movq (%rax), %rsi
movl -0x14(%rbp), %edx
callq 0x414c20
jmp 0x412e88
movq -0x140(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x413898
movq -0x140(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
movl $0x28, %esi
callq 0x416080
jmp 0x4138a5
movl $0x28, %edi
callq 0x416f20
movq %rax, %rdi
movq -0x40(%rbp), %rax
movq %rdi, %rcx
movq %rcx, -0x148(%rbp)
movq (%rax), %rsi
movl -0x14(%rbp), %edx
callq 0x414c60
jmp 0x412ee2
movq -0x148(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x413898
movq -0x148(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
movl $0x28, %esi
callq 0x416080
jmp 0x4138a5
movl $0x28, %edi
callq 0x416f20
movq %rax, %rdi
movq -0x40(%rbp), %rax
movq %rdi, %rcx
movq %rcx, -0x150(%rbp)
movq (%rax), %rsi
movl -0x14(%rbp), %edx
callq 0x414ca0
jmp 0x412f3c
movq -0x150(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x413898
movq -0x150(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
movl $0x28, %esi
callq 0x416080
jmp 0x4138a5
movl $0x28, %edi
callq 0x416f20
movq %rax, %rdi
movq -0x40(%rbp), %rax
movq %rdi, %rcx
movq %rcx, -0x158(%rbp)
movq (%rax), %rsi
movl -0x14(%rbp), %edx
callq 0x414ce0
jmp 0x412f96
movq -0x158(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x413898
movq -0x158(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
movl $0x28, %esi
callq 0x416080
jmp 0x4138a5
movl $0x28, %edi
callq 0x416f20
movq %rax, %rdi
movq -0x40(%rbp), %rax
movq %rdi, %rcx
movq %rcx, -0x160(%rbp)
movq (%rax), %rsi
movl -0x14(%rbp), %edx
callq 0x414d20
jmp 0x412ff0
movq -0x160(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x413898
movq -0x160(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
movl $0x28, %esi
callq 0x416080
jmp 0x4138a5
movl $0x28, %edi
callq 0x416f20
movq %rax, %rdi
movq -0x40(%rbp), %rax
movq %rdi, %rcx
movq %rcx, -0x168(%rbp)
movq (%rax), %rsi
movl -0x14(%rbp), %edx
callq 0x414d60
jmp 0x41304a
movq -0x168(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x413898
movq -0x168(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
movl $0x28, %esi
callq 0x416080
jmp 0x4138a5
movl $0x28, %edi
callq 0x416f20
movq %rax, %rdi
movq -0x40(%rbp), %rax
movq %rdi, %rcx
movq %rcx, -0x170(%rbp)
movq (%rax), %rsi
movl -0x14(%rbp), %edx
callq 0x414da0
jmp 0x4130a4
movq -0x170(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x413898
movq -0x170(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
movl $0x28, %esi
callq 0x416080
jmp 0x4138a5
movl $0x28, %edi
callq 0x416f20
movq %rax, %rdi
movq -0x40(%rbp), %rax
movq %rdi, %rcx
movq %rcx, -0x178(%rbp)
movq (%rax), %rsi
movl -0x14(%rbp), %edx
callq 0x414de0
jmp 0x4130fe
movq -0x178(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x413898
movq -0x178(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
movl $0x28, %esi
callq 0x416080
jmp 0x4138a5
movl $0x28, %edi
callq 0x416f20
movq %rax, %rdi
movq -0x40(%rbp), %rax
movq %rdi, %rcx
movq %rcx, -0x180(%rbp)
movq (%rax), %rsi
movl -0x14(%rbp), %edx
callq 0x414e20
jmp 0x413158
movq -0x180(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x413898
movq -0x180(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
movl $0x28, %esi
callq 0x416080
jmp 0x4138a5
movl $0x28, %edi
callq 0x416f20
movq %rax, %rdi
movq -0x40(%rbp), %rax
movq %rdi, %rcx
movq %rcx, -0x188(%rbp)
movq (%rax), %rsi
movl -0x14(%rbp), %edx
callq 0x414e60
jmp 0x4131b2
movq -0x188(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x413898
movq -0x188(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
movl $0x28, %esi
callq 0x416080
jmp 0x4138a5
movl $0x28, %edi
callq 0x416f20
movq %rax, %rdi
movq -0x40(%rbp), %rax
movq %rdi, %rcx
movq %rcx, -0x190(%rbp)
movq (%rax), %rsi
movl -0x14(%rbp), %edx
callq 0x414ea0
jmp 0x41320c
movq -0x190(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x413898
movq -0x190(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
movl $0x28, %esi
callq 0x416080
jmp 0x4138a5
movl $0x28, %edi
callq 0x416f20
movq %rax, %rdi
movq -0x40(%rbp), %rax
movq %rdi, %rcx
movq %rcx, -0x198(%rbp)
movq (%rax), %rsi
movl -0x14(%rbp), %edx
callq 0x414ee0
jmp 0x413266
movq -0x198(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x413898
movq -0x198(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
movl $0x28, %esi
callq 0x416080
jmp 0x4138a5
movl $0x28, %edi
callq 0x416f20
movq %rax, %rdi
movq -0x40(%rbp), %rax
movq %rdi, %rcx
movq %rcx, -0x1a0(%rbp)
movq (%rax), %rsi
movl -0x14(%rbp), %edx
callq 0x414f20
jmp 0x4132c0
movq -0x1a0(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x413898
movq -0x1a0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
movl $0x28, %esi
callq 0x416080
jmp 0x4138a5
movl $0x28, %edi
callq 0x416f20
movq %rax, %rdi
movq -0x40(%rbp), %rax
movq %rdi, %rcx
movq %rcx, -0x1a8(%rbp)
movq (%rax), %rsi
movl -0x14(%rbp), %edx
callq 0x414f60
jmp 0x41331a
movq -0x1a8(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x413898
movq -0x1a8(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
movl $0x28, %esi
callq 0x416080
jmp 0x4138a5
movl $0x28, %edi
callq 0x416f20
movq %rax, %rdi
movq -0x40(%rbp), %rax
movq %rdi, %rcx
movq %rcx, -0x1b0(%rbp)
movq (%rax), %rsi
movl -0x14(%rbp), %edx
callq 0x414fa0
jmp 0x413374
movq -0x1b0(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x413898
movq -0x1b0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
movl $0x28, %esi
callq 0x416080
jmp 0x4138a5
movl $0x28, %edi
callq 0x416f20
movq %rax, %rdi
movq -0x40(%rbp), %rax
movq %rdi, %rcx
movq %rcx, -0x1b8(%rbp)
movq (%rax), %rsi
movl -0x14(%rbp), %edx
callq 0x414fe0
jmp 0x4133ce
movq -0x1b8(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x413898
movq -0x1b8(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
movl $0x28, %esi
callq 0x416080
jmp 0x4138a5
movl $0x28, %edi
callq 0x416f20
movq %rax, %rdi
movq -0x40(%rbp), %rax
movq %rdi, %rcx
movq %rcx, -0x1c0(%rbp)
movq (%rax), %rsi
movl -0x14(%rbp), %edx
callq 0x415020
jmp 0x413428
movq -0x1c0(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x413898
movq -0x1c0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
movl $0x28, %esi
callq 0x416080
jmp 0x4138a5
movl $0x28, %edi
callq 0x416f20
movq %rax, %rdi
movq -0x40(%rbp), %rax
movq %rdi, %rcx
movq %rcx, -0x1c8(%rbp)
movq (%rax), %rsi
movl -0x14(%rbp), %edx
callq 0x415060
jmp 0x413482
movq -0x1c8(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x413898
movq -0x1c8(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
movl $0x28, %esi
callq 0x416080
jmp 0x4138a5
movl -0x24(%rbp), %eax
movq %rax, -0x1d0(%rbp)
subq $0xf, %rax
ja 0x41385d
movq -0x1d0(%rbp), %rax
leaq 0x1788de(%rip), %rcx    # 0x58bdb4
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movl $0x28, %edi
callq 0x416f20
movq %rax, %rdi
movq -0x40(%rbp), %rax
movq %rdi, %rcx
movq %rcx, -0x1d8(%rbp)
movq (%rax), %rsi
movl -0x14(%rbp), %edx
callq 0x4150a0
jmp 0x413507
movq -0x1d8(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x413898
movq -0x1d8(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
movl $0x28, %esi
callq 0x416080
jmp 0x4138a5
movl $0x28, %edi
callq 0x416f20
movq %rax, %rdi
movq -0x40(%rbp), %rax
movq %rdi, %rcx
movq %rcx, -0x1e0(%rbp)
movq (%rax), %rsi
movl -0x14(%rbp), %edx
callq 0x4150e0
jmp 0x413561
movq -0x1e0(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x413898
movq -0x1e0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
movl $0x28, %esi
callq 0x416080
jmp 0x4138a5
movl $0x28, %edi
callq 0x416f20
movq %rax, %rdi
movq -0x40(%rbp), %rax
movq %rdi, %rcx
movq %rcx, -0x1e8(%rbp)
movq (%rax), %rsi
movl -0x14(%rbp), %edx
callq 0x415120
jmp 0x4135bb
movq -0x1e8(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x413898
movq -0x1e8(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
movl $0x28, %esi
callq 0x416080
jmp 0x4138a5
movl $0x28, %edi
callq 0x416f20
movq %rax, %rdi
movq -0x40(%rbp), %rax
movq %rdi, %rcx
movq %rcx, -0x1f0(%rbp)
movq (%rax), %rsi
movl -0x14(%rbp), %edx
callq 0x415160
jmp 0x413615
movq -0x1f0(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x413898
movq -0x1f0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
movl $0x28, %esi
callq 0x416080
jmp 0x4138a5
movl $0x28, %edi
callq 0x416f20
movq %rax, %rdi
movq -0x40(%rbp), %rax
movq %rdi, %rcx
movq %rcx, -0x1f8(%rbp)
movq (%rax), %rsi
movl -0x14(%rbp), %edx
callq 0x4151a0
jmp 0x41366f
movq -0x1f8(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x413898
movq -0x1f8(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
movl $0x28, %esi
callq 0x416080
jmp 0x4138a5
movl $0x28, %edi
callq 0x416f20
movq %rax, %rdi
movq -0x40(%rbp), %rax
movq %rdi, %rcx
movq %rcx, -0x200(%rbp)
movq (%rax), %rsi
movl -0x14(%rbp), %edx
callq 0x4151e0
jmp 0x4136c9
movq -0x200(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x413898
movq -0x200(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
movl $0x28, %esi
callq 0x416080
jmp 0x4138a5
movl $0x28, %edi
callq 0x416f20
movq %rax, %rdi
movq -0x40(%rbp), %rax
movq %rdi, %rcx
movq %rcx, -0x208(%rbp)
movq (%rax), %rsi
movl -0x14(%rbp), %edx
callq 0x415220
jmp 0x413723
movq -0x208(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x413898
movq -0x208(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
movl $0x28, %esi
callq 0x416080
jmp 0x4138a5
movl $0x28, %edi
callq 0x416f20
movq %rax, %rdi
movq -0x40(%rbp), %rax
movq %rdi, %rcx
movq %rcx, -0x210(%rbp)
movq (%rax), %rsi
movl -0x14(%rbp), %edx
callq 0x415260
jmp 0x41377d
movq -0x210(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x413898
movq -0x210(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
movl $0x28, %esi
callq 0x416080
jmp 0x4138a5
movl $0x28, %edi
callq 0x416f20
movq %rax, %rdi
movq -0x40(%rbp), %rax
movq %rdi, %rcx
movq %rcx, -0x218(%rbp)
movq (%rax), %rsi
movl -0x14(%rbp), %edx
callq 0x4152a0
jmp 0x4137d7
movq -0x218(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x413898
movq -0x218(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
movl $0x28, %esi
callq 0x416080
jmp 0x4138a5
movl $0x28, %edi
callq 0x416f20
movq %rax, %rdi
movq -0x40(%rbp), %rax
movq %rdi, %rcx
movq %rcx, -0x220(%rbp)
movq (%rax), %rsi
movl -0x14(%rbp), %edx
callq 0x4152e0
jmp 0x413831
movq -0x220(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x413898
movq -0x220(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
movl $0x28, %esi
callq 0x416080
jmp 0x4138a5
jmp 0x41385f
jmp 0x413861
jmp 0x413863
movq $0x602580, %rdi         # imm = 0x602580
leaq 0x1785b4(%rip), %rsi    # 0x58be25
callq 0x47f700
movq %rax, %rdi
movl -0x14(%rbp), %esi
callq 0x47fd30
movq %rax, %rdi
movq $0x47efe0, %rsi         # imm = 0x47EFE0
callq 0x47e1f0
movq $0x0, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x220, %rsp            # imm = 0x220
popq %rbp
retq
movq -0x30(%rbp), %rdi
callq 0x4b74e0
nop