// File: AndrewAlbert[P]Compiler-Theory/SourceCode/codeGenerator.cpp
// Function: codeGenerator::reg2mm[abi:cxx11](int, int, int, int, int, bool, bool, int, bool)
string codeGenerator::reg2mm(int regType, int memType, int regSize, int memSize, int FPoffset, bool isGlobal, bool indirect, int indirect_type, bool useSP ){
	if( !ShouldGenerate() ) return "";
	int index;
	string reg, mem, indirect_reg, pointer;

	if( useSP ) pointer = "SP_reg";
	else pointer = "FP_reg";
	
	if( regSize == 0 ) regSize++;
	if( memSize == 0 ) memSize++;
	
	for( index = 0; index < regSize; index++ ){
		reg = popStack('E', regType);
		pushStack( reg, 'R', regType );
	}

	if( indirect ){
		if(savedArgument.set == false) cout << "not a saved argument" << endl;
		reg = popStack('R', regType);
		indirect_reg = popStack('E', indirect_type);
		comment("indirect off " + indirect_reg);
		fprintf( oFile, "   TP_reg = %s + %d;\n", pointer.c_str(), FPoffset );
		fprintf( oFile, "   MM[TP_reg + %s] = %s;\n", indirect_reg.c_str(), reg.c_str() );
	}
	else{
		if( isGlobal ) comment("Global Variable: Reg to MM");
		else comment("Variable: Reg to MM");
		
		if( regSize > 1 && regSize == memSize ){
			for( index = 0; index < memSize; index++ ){
				reg = popStack('R', regType);
				if( isGlobal ){
					mem = "MM[" + to_string(FPoffset + index) + "]";
				}
				else{
					mem = "MM[" + pointer + " + " + to_string(FPoffset + index) + "]";
				}
				if( memType == TYPE_FLOAT) fprintf( oFile, "   memcpy( &%s, &%s, sizeof(int) );\n", mem.c_str(), reg.c_str() );
				else fprintf( oFile, "   %s = %s;\n", mem.c_str(), reg.c_str() );
			}
		}
		else if ( regSize == 1 ){
			reg = popStack('R', regType);
			for( index = 0; index < memSize; index++ ){
				if( isGlobal ){
					mem = "MM[" + to_string(FPoffset + index) + "]";
				}
				else{
					mem = "MM[" + pointer + " + " + to_string(FPoffset + index) + "]";
				}
				if( memType == TYPE_FLOAT) fprintf( oFile, "   memcpy( &%s, &%s, sizeof(int) );\n", mem.c_str(), reg.c_str() );
				else fprintf( oFile, "   %s = %s;\n", mem.c_str(), reg.c_str() );
			}
		}
	}
	return "";
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %rbx
subq $0x4b8, %rsp            # imm = 0x4B8
movl %ecx, -0x418(%rbp)
movl %edx, -0x414(%rbp)
movq %rsi, %r10
movl -0x418(%rbp), %esi
movq %rdi, %r11
movl -0x414(%rbp), %edi
movq %r11, -0x410(%rbp)
movq %r11, %rax
movq %rax, -0x408(%rbp)
movb 0x30(%rbp), %al
movl 0x28(%rbp), %ecx
movb 0x20(%rbp), %cl
movb 0x18(%rbp), %dl
movl 0x10(%rbp), %ebx
movq %r11, -0x10(%rbp)
movq %r10, -0x18(%rbp)
movl %edi, -0x1c(%rbp)
movl %esi, -0x20(%rbp)
movl %r8d, -0x24(%rbp)
movl %r9d, -0x28(%rbp)
andb $0x1, %dl
movb %dl, -0x29(%rbp)
andb $0x1, %cl
movb %cl, -0x2a(%rbp)
andb $0x1, %al
movb %al, -0x2b(%rbp)
movq -0x18(%rbp), %rdi
movq %rdi, -0x400(%rbp)
callq 0x19590
testb $0x1, %al
jne 0x1d3c9
leaq -0x2c(%rbp), %rdi
movq %rdi, -0x420(%rbp)
callq 0x3430
movq -0x410(%rbp), %rdi
movq -0x420(%rbp), %rdx
leaq 0x98e7(%rip), %rsi      # 0x26c81
callq 0x62d0
jmp 0x1d3a1
leaq -0x2c(%rbp), %rdi
callq 0x32e0
jmp 0x1deaa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x2c(%rbp), %rdi
callq 0x32e0
jmp 0x1debb
leaq -0x60(%rbp), %rdi
callq 0x3370
leaq -0x80(%rbp), %rdi
callq 0x3370
leaq -0xa0(%rbp), %rdi
callq 0x3370
leaq -0xc0(%rbp), %rdi
callq 0x3370
testb $0x1, -0x2b(%rbp)
je 0x1d421
leaq 0x98d9(%rip), %rsi      # 0x26cd9
leaq -0xc0(%rbp), %rdi
callq 0x3360
jmp 0x1d40e
jmp 0x1d438
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x1de7e
leaq 0x98aa(%rip), %rsi      # 0x26cd2
leaq -0xc0(%rbp), %rdi
callq 0x3360
jmp 0x1d436
jmp 0x1d438
cmpl $0x0, -0x24(%rbp)
jne 0x1d447
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
cmpl $0x0, -0x28(%rbp)
jne 0x1d456
movl -0x28(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x28(%rbp)
movl $0x0, -0x40(%rbp)
movl -0x40(%rbp), %eax
cmpl -0x24(%rbp), %eax
jge 0x1d519
movq -0x400(%rbp), %rsi
movl -0x1c(%rbp), %ecx
leaq -0xe0(%rbp), %rdi
movl $0x45, %edx
callq 0x1a7a0
jmp 0x1d486
leaq -0x60(%rbp), %rdi
movq %rdi, -0x428(%rbp)
leaq -0xe0(%rbp), %rsi
movq %rsi, -0x430(%rbp)
callq 0x3340
movq -0x430(%rbp), %rdi
callq 0x31a0
movq -0x428(%rbp), %rsi
leaq -0x100(%rbp), %rdi
callq 0x3130
jmp 0x1d4c5
movq -0x400(%rbp), %rdi
movl -0x1c(%rbp), %ecx
leaq -0x100(%rbp), %rsi
movl $0x52, %edx
callq 0x1a6b0
jmp 0x1d4e2
leaq -0x100(%rbp), %rdi
callq 0x31a0
movl -0x40(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x40(%rbp)
jmp 0x1d45d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x100(%rbp), %rdi
callq 0x31a0
jmp 0x1de7e
testb $0x1, -0x2a(%rbp)
je 0x1d6c5
movq -0x400(%rbp), %rax
movb 0x2b6(%rax), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x1d56d
movq 0x15a8f(%rip), %rdi     # 0x32fd0
leaq 0x9d46(%rip), %rsi      # 0x2728e
callq 0x3270
movq %rax, -0x438(%rbp)
jmp 0x1d556
movq -0x438(%rbp), %rdi
movq 0x15a54(%rip), %rsi     # 0x32fb8
callq 0x32c0
jmp 0x1d56b
jmp 0x1d56d
movq -0x400(%rbp), %rsi
movl -0x1c(%rbp), %ecx
leaq -0x120(%rbp), %rdi
movl $0x52, %edx
callq 0x1a7a0
jmp 0x1d58a
leaq -0x60(%rbp), %rdi
leaq -0x120(%rbp), %rsi
movq %rsi, -0x440(%rbp)
callq 0x3340
movq -0x440(%rbp), %rdi
callq 0x31a0
movq -0x400(%rbp), %rsi
movl 0x28(%rbp), %ecx
leaq -0x140(%rbp), %rdi
movl $0x45, %edx
callq 0x1a7a0
jmp 0x1d5ca
leaq -0xa0(%rbp), %rdi
movq %rdi, -0x448(%rbp)
leaq -0x140(%rbp), %rsi
movq %rsi, -0x450(%rbp)
callq 0x3340
movq -0x450(%rbp), %rdi
callq 0x31a0
movq -0x448(%rbp), %rdx
leaq 0x9c1e(%rip), %rsi      # 0x27223
leaq -0x160(%rbp), %rdi
callq 0x124f0
jmp 0x1d613
movq -0x400(%rbp), %rdi
leaq -0x160(%rbp), %rsi
xorl %edx, %edx
callq 0x19bb0
leaq -0x160(%rbp), %rdi
callq 0x31a0
movq -0x400(%rbp), %rax
movq 0x308(%rax), %rax
movq %rax, -0x468(%rbp)
leaq -0xc0(%rbp), %rdi
callq 0x3120
movq -0x468(%rbp), %rdi
movq %rax, %rdx
movl 0x10(%rbp), %ecx
leaq 0x9bc8(%rip), %rsi      # 0x27231
movb $0x0, %al
callq 0x3380
movq -0x400(%rbp), %rax
movq 0x308(%rax), %rax
movq %rax, -0x460(%rbp)
leaq -0xa0(%rbp), %rdi
callq 0x3120
movq %rax, -0x458(%rbp)
leaq -0x60(%rbp), %rdi
callq 0x3120
movq -0x460(%rbp), %rdi
movq -0x458(%rbp), %rdx
movq %rax, %rcx
leaq 0x9bea(%rip), %rsi      # 0x272a3
movb $0x0, %al
callq 0x3380
jmp 0x1ddff
testb $0x1, -0x29(%rbp)
je 0x1d749
leaq -0x181(%rbp), %rdi
movq %rdi, -0x470(%rbp)
callq 0x3430
movq -0x470(%rbp), %rdx
leaq 0x9bd1(%rip), %rsi      # 0x272bd
leaq -0x180(%rbp), %rdi
callq 0x62d0
jmp 0x1d6fa
movq -0x400(%rbp), %rdi
leaq -0x180(%rbp), %rsi
xorl %edx, %edx
callq 0x19bb0
leaq -0x180(%rbp), %rdi
callq 0x31a0
leaq -0x181(%rbp), %rdi
callq 0x32e0
jmp 0x1d7c4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x181(%rbp), %rdi
callq 0x32e0
jmp 0x1de7e
leaq -0x1a9(%rbp), %rdi
movq %rdi, -0x478(%rbp)
callq 0x3430
movq -0x478(%rbp), %rdx
leaq 0x9b5a(%rip), %rsi      # 0x272c4
leaq -0x1a8(%rbp), %rdi
callq 0x62d0
jmp 0x1d778
movq -0x400(%rbp), %rdi
leaq -0x1a8(%rbp), %rsi
xorl %edx, %edx
callq 0x19bb0
leaq -0x1a8(%rbp), %rdi
callq 0x31a0
leaq -0x1a9(%rbp), %rdi
callq 0x32e0
jmp 0x1d7c4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x1a9(%rbp), %rdi
callq 0x32e0
jmp 0x1de7e
cmpl $0x1, -0x24(%rbp)
jle 0x1dae7
movl -0x24(%rbp), %eax
cmpl -0x28(%rbp), %eax
jne 0x1dae7
movl $0x0, -0x40(%rbp)
movl -0x40(%rbp), %eax
cmpl -0x28(%rbp), %eax
jge 0x1dae2
movq -0x400(%rbp), %rsi
movl -0x1c(%rbp), %ecx
leaq -0x1d0(%rbp), %rdi
movl $0x52, %edx
callq 0x1a7a0
jmp 0x1d80a
leaq -0x60(%rbp), %rdi
leaq -0x1d0(%rbp), %rsi
callq 0x3340
leaq -0x1d0(%rbp), %rdi
callq 0x31a0
testb $0x1, -0x29(%rbp)
je 0x1d8ee
movl 0x10(%rbp), %esi
movl -0x40(%rbp), %eax
addl %eax, %esi
leaq -0x230(%rbp), %rdi
callq 0x123d0
jmp 0x1d846
leaq 0x9a14(%rip), %rsi      # 0x27261
leaq -0x210(%rbp), %rdi
leaq -0x230(%rbp), %rdx
callq 0x12380
jmp 0x1d862
leaq 0x7ac5(%rip), %rdx      # 0x2532e
leaq -0x1f0(%rbp), %rdi
leaq -0x210(%rbp), %rsi
callq 0x12330
jmp 0x1d87e
leaq -0x80(%rbp), %rdi
leaq -0x1f0(%rbp), %rsi
callq 0x3340
leaq -0x1f0(%rbp), %rdi
callq 0x31a0
leaq -0x210(%rbp), %rdi
callq 0x31a0
leaq -0x230(%rbp), %rdi
callq 0x31a0
jmp 0x1da2d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x1d8dd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x210(%rbp), %rdi
callq 0x31a0
leaq -0x230(%rbp), %rdi
callq 0x31a0
jmp 0x1de7e
leaq 0x996c(%rip), %rsi      # 0x27261
leaq -0x2b0(%rbp), %rdi
leaq -0xc0(%rbp), %rdx
callq 0x124f0
jmp 0x1d90a
leaq 0x9954(%rip), %rdx      # 0x27265
leaq -0x290(%rbp), %rdi
leaq -0x2b0(%rbp), %rsi
callq 0x12330
jmp 0x1d926
movl 0x10(%rbp), %esi
movl -0x40(%rbp), %eax
addl %eax, %esi
leaq -0x2d0(%rbp), %rdi
callq 0x123d0
jmp 0x1d93c
leaq -0x270(%rbp), %rdi
leaq -0x290(%rbp), %rsi
leaq -0x2d0(%rbp), %rdx
callq 0x12990
jmp 0x1d958
leaq 0x79cf(%rip), %rdx      # 0x2532e
leaq -0x250(%rbp), %rdi
leaq -0x270(%rbp), %rsi
callq 0x12330
jmp 0x1d974
leaq -0x80(%rbp), %rdi
leaq -0x250(%rbp), %rsi
callq 0x3340
leaq -0x250(%rbp), %rdi
callq 0x31a0
leaq -0x270(%rbp), %rdi
callq 0x31a0
leaq -0x2d0(%rbp), %rdi
callq 0x31a0
leaq -0x290(%rbp), %rdi
callq 0x31a0
leaq -0x2b0(%rbp), %rdi
callq 0x31a0
jmp 0x1da2d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x1da1c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x1da10
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x1da04
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x270(%rbp), %rdi
callq 0x31a0
leaq -0x2d0(%rbp), %rdi
callq 0x31a0
leaq -0x290(%rbp), %rdi
callq 0x31a0
leaq -0x2b0(%rbp), %rdi
callq 0x31a0
jmp 0x1de7e
cmpl $0x10b, -0x20(%rbp)     # imm = 0x10B
jne 0x1da85
movq -0x400(%rbp), %rax
movq 0x308(%rax), %rax
movq %rax, -0x488(%rbp)
leaq -0x80(%rbp), %rdi
callq 0x3120
movq %rax, -0x480(%rbp)
leaq -0x60(%rbp), %rdi
callq 0x3120
movq -0x488(%rbp), %rdi
movq -0x480(%rbp), %rdx
movq %rax, %rcx
leaq 0x97ed(%rip), %rsi      # 0x27269
movb $0x0, %al
callq 0x3380
jmp 0x1dad2
movq -0x400(%rbp), %rax
movq 0x308(%rax), %rax
movq %rax, -0x498(%rbp)
leaq -0x80(%rbp), %rdi
callq 0x3120
movq %rax, -0x490(%rbp)
leaq -0x60(%rbp), %rdi
callq 0x3120
movq -0x498(%rbp), %rdi
movq -0x490(%rbp), %rdx
movq %rax, %rcx
leaq 0x96bd(%rip), %rsi      # 0x27188
movb $0x0, %al
callq 0x3380
jmp 0x1dad4
movl -0x40(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x40(%rbp)
jmp 0x1d7e1
jmp 0x1ddfd
cmpl $0x1, -0x24(%rbp)
jne 0x1ddfb
movq -0x400(%rbp), %rsi
movl -0x1c(%rbp), %ecx
leaq -0x2f0(%rbp), %rdi
movl $0x52, %edx
callq 0x1a7a0
jmp 0x1db0e
leaq -0x60(%rbp), %rdi
leaq -0x2f0(%rbp), %rsi
callq 0x3340
leaq -0x2f0(%rbp), %rdi
callq 0x31a0
movl $0x0, -0x40(%rbp)
movl -0x40(%rbp), %eax
cmpl -0x28(%rbp), %eax
jge 0x1ddf9
testb $0x1, -0x29(%rbp)
je 0x1dc05
movl 0x10(%rbp), %esi
movl -0x40(%rbp), %eax
addl %eax, %esi
leaq -0x350(%rbp), %rdi
callq 0x123d0
jmp 0x1db5d
leaq 0x96fd(%rip), %rsi      # 0x27261
leaq -0x330(%rbp), %rdi
leaq -0x350(%rbp), %rdx
callq 0x12380
jmp 0x1db79
leaq 0x77ae(%rip), %rdx      # 0x2532e
leaq -0x310(%rbp), %rdi
leaq -0x330(%rbp), %rsi
callq 0x12330
jmp 0x1db95
leaq -0x80(%rbp), %rdi
leaq -0x310(%rbp), %rsi
callq 0x3340
leaq -0x310(%rbp), %rdi
callq 0x31a0
leaq -0x330(%rbp), %rdi
callq 0x31a0
leaq -0x350(%rbp), %rdi
callq 0x31a0
jmp 0x1dd44
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x1dbf4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x330(%rbp), %rdi
callq 0x31a0
leaq -0x350(%rbp), %rdi
callq 0x31a0
jmp 0x1de7e
leaq 0x9655(%rip), %rsi      # 0x27261
leaq -0x3d0(%rbp), %rdi
leaq -0xc0(%rbp), %rdx
callq 0x124f0
jmp 0x1dc21
leaq 0x963d(%rip), %rdx      # 0x27265
leaq -0x3b0(%rbp), %rdi
leaq -0x3d0(%rbp), %rsi
callq 0x12330
jmp 0x1dc3d
movl 0x10(%rbp), %esi
movl -0x40(%rbp), %eax
addl %eax, %esi
leaq -0x3f0(%rbp), %rdi
callq 0x123d0
jmp 0x1dc53
leaq -0x390(%rbp), %rdi
leaq -0x3b0(%rbp), %rsi
leaq -0x3f0(%rbp), %rdx
callq 0x12990
jmp 0x1dc6f
leaq 0x76b8(%rip), %rdx      # 0x2532e
leaq -0x370(%rbp), %rdi
leaq -0x390(%rbp), %rsi
callq 0x12330
jmp 0x1dc8b
leaq -0x80(%rbp), %rdi
leaq -0x370(%rbp), %rsi
callq 0x3340
leaq -0x370(%rbp), %rdi
callq 0x31a0
leaq -0x390(%rbp), %rdi
callq 0x31a0
leaq -0x3f0(%rbp), %rdi
callq 0x31a0
leaq -0x3b0(%rbp), %rdi
callq 0x31a0
leaq -0x3d0(%rbp), %rdi
callq 0x31a0
jmp 0x1dd44
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x1dd33
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x1dd27
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x1dd1b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x390(%rbp), %rdi
callq 0x31a0
leaq -0x3f0(%rbp), %rdi
callq 0x31a0
leaq -0x3b0(%rbp), %rdi
callq 0x31a0
leaq -0x3d0(%rbp), %rdi
callq 0x31a0
jmp 0x1de7e
cmpl $0x10b, -0x20(%rbp)     # imm = 0x10B
jne 0x1dd9c
movq -0x400(%rbp), %rax
movq 0x308(%rax), %rax
movq %rax, -0x4a8(%rbp)
leaq -0x80(%rbp), %rdi
callq 0x3120
movq %rax, -0x4a0(%rbp)
leaq -0x60(%rbp), %rdi
callq 0x3120
movq -0x4a8(%rbp), %rdi
movq -0x4a0(%rbp), %rdx
movq %rax, %rcx
leaq 0x94d6(%rip), %rsi      # 0x27269
movb $0x0, %al
callq 0x3380
jmp 0x1dde9
movq -0x400(%rbp), %rax
movq 0x308(%rax), %rax
movq %rax, -0x4b8(%rbp)
leaq -0x80(%rbp), %rdi
callq 0x3120
movq %rax, -0x4b0(%rbp)
leaq -0x60(%rbp), %rdi
callq 0x3120
movq -0x4b8(%rbp), %rdi
movq -0x4b0(%rbp), %rdx
movq %rax, %rcx
leaq 0x93a6(%rip), %rsi      # 0x27188
movb $0x0, %al
callq 0x3380
jmp 0x1ddeb
movl -0x40(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x40(%rbp)
jmp 0x1db31
jmp 0x1ddfb
jmp 0x1ddfd
jmp 0x1ddff
leaq -0x3f1(%rbp), %rdi
movq %rdi, -0x4c0(%rbp)
callq 0x3430
movq -0x410(%rbp), %rdi
movq -0x4c0(%rbp), %rdx
leaq 0x8e5a(%rip), %rsi      # 0x26c81
callq 0x62d0
jmp 0x1de2e
leaq -0x3f1(%rbp), %rdi
callq 0x32e0
leaq -0xc0(%rbp), %rdi
callq 0x31a0
leaq -0xa0(%rbp), %rdi
callq 0x31a0
leaq -0x80(%rbp), %rdi
callq 0x31a0
leaq -0x60(%rbp), %rdi
callq 0x31a0
jmp 0x1deaa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x3f1(%rbp), %rdi
callq 0x32e0
leaq -0xc0(%rbp), %rdi
callq 0x31a0
leaq -0xa0(%rbp), %rdi
callq 0x31a0
leaq -0x80(%rbp), %rdi
callq 0x31a0
leaq -0x60(%rbp), %rdi
callq 0x31a0
jmp 0x1debb
movq -0x408(%rbp), %rax
addq $0x4b8, %rsp            # imm = 0x4B8
popq %rbx
popq %rbp
retq
movq -0x38(%rbp), %rdi
callq 0x3420
nopw %cs:(%rax,%rax)