// File: /workspace/github_c_makefile_star2_O0/derhass[P]glx_hook/glx_hook.c
// Function: get_override_attributes
static int* get_override_attributes(gl_context_creation_opts_t *opts, const int *attribs)
{
	const int our_count=5;
	int count = 0;
	int additional_count = 0;
	int req_version[2] = {1,0};
	int req_profile_mask = GLX_CONTEXT_CORE_PROFILE_BIT_ARB;
	int req_no_error = -1;
	int req_flags = 0;
	int legacy = 0;
	int *attr_override;
	int pos=0;
	int i;

	GH_verbose(GH_MSG_INFO, "overriding context attributes for creation\n");
	if (attribs) {
		while (attribs[2*count] != None) {
			unsigned int name = (unsigned)attribs[2*count];
			int value = attribs[2*count + 1];
			GH_verbose(GH_MSG_INFO, "originally requested attrib: 0x%x = %d\n", name, value);
			switch(name) {
				case GLX_CONTEXT_MAJOR_VERSION_ARB:
					req_version[0] = value;
					break;
				case GLX_CONTEXT_MINOR_VERSION_ARB:
					req_version[1] = value;
					break;
				case GLX_CONTEXT_PROFILE_MASK_ARB:
					req_profile_mask = value;
					break;
				case GLX_CONTEXT_FLAGS_ARB:
					req_flags = value;
					break;
				case GLX_CONTEXT_OPENGL_NO_ERROR_ARB:
					req_no_error = value;
					break;
				default:
					additional_count++;
			}
			count++;
		}
	}

	legacy = ((req_version[0] < 3) || ( (req_version[0] == 3) && req_version[1] < 2) );
	if (legacy && (opts->flags & GH_GLCTX_COMPAT_IF_LEGACY)) {
		GH_verbose(GH_MSG_INFO, "overriding legacy context to compat profile\n");
		req_profile_mask &= ~GLX_CONTEXT_CORE_PROFILE_BIT_ARB;
		req_profile_mask |= GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB;
	}

	if (opts->force_version_min[0] >= 0) {
		if (req_version[0] < opts->force_version_min[0]) {
			GH_verbose(GH_MSG_INFO, "overriding context major version from %d to %d [min]\n",
				   req_version[0], opts->force_version_min[0]);
			req_version[0] = opts->force_version_min[0];
		}
	}
	if (opts->force_version_min[1] >= 0) {
		int override=0;
		if (opts->force_version_min[0] >= 0) {
			if (req_version[0] <= opts->force_version_min[0]) {
				if (req_version[1] < opts->force_version_min[1]) {
					override = 1;
				}
			}
		} else {
			if (req_version[1] < opts->force_version_min[1]) {
				override = 1;
			}
		}

		if (override) {
			GH_verbose(GH_MSG_INFO, "overriding context minor version from %d to %d [min]\n",
				   req_version[1], opts->force_version_min[1]);
			req_version[1] = opts->force_version_min[1];
		}
	}

	if (opts->force_version_max[0] >= 0) {
		if (req_version[0] > opts->force_version_max[0]) {
			GH_verbose(GH_MSG_INFO, "overriding context major version from %d to %d [max]\n",
				   req_version[0], opts->force_version_max[0]);
			req_version[0] = opts->force_version_max[0];
		}
	}
	if (opts->force_version_max[1] >= 0) {
		int override=0;
		if (opts->force_version_max[0] >= 0) {
			if (req_version[0] >= opts->force_version_max[0]) {
				if (req_version[1] > opts->force_version_max[1]) {
					override = 1;
				}
			}
		} else {
			if (req_version[1] > opts->force_version_max[1]) {
				override = 1;
			}
		}

		if (override) {
			GH_verbose(GH_MSG_INFO, "overriding context minor version from %d to %d [max]\n",
				   req_version[1], opts->force_version_max[1]);
			req_version[1] = opts->force_version_max[1];
		}
	}

	if (opts->force_version[0] >= 0) {
		GH_verbose(GH_MSG_INFO, "overriding context major version from %d to %d\n",
			   req_version[0], opts->force_version[0]);
		req_version[0] = opts->force_version[0];
	}
	if (opts->force_version[1] >= 0) {
		GH_verbose(GH_MSG_INFO, "overriding context minor version from %d to %d\n",
			   req_version[1], opts->force_version[1]);
		req_version[1] = opts->force_version[1];
	}
	if (opts->force_flags_on || opts->force_flags_off) {
		int new_flags = (req_flags | opts->force_flags_on)&(~opts->force_flags_off);
		GH_verbose(GH_MSG_INFO, "overriding context flags from 0x%x to 0x%x\n",
			   (unsigned)req_flags, (unsigned)new_flags);
		req_flags = new_flags;
	}
	if (opts->force_profile_on || opts->force_profile_off) {
		int new_profile = (req_profile_mask | opts->force_profile_on)&(~opts->force_profile_off);
		GH_verbose(GH_MSG_INFO, "overriding context profile mask from 0x%x to 0x%x\n",
			   (unsigned)req_profile_mask, (unsigned)new_profile);
		req_profile_mask = new_profile;
	}
	if (opts->force_no_error >= 0) {
		GH_verbose(GH_MSG_INFO, "overriding context NO_ERROR behavior from %d to %d\n",
			   req_no_error, opts->force_no_error);
		req_no_error = opts->force_no_error;
	}

	attr_override = malloc(sizeof(*attr_override) * ((additional_count + our_count) * 2 + 2));
	if (!attr_override) {
		GH_verbose(GH_MSG_ERROR, "overriding context attributes not possible: out of memory\n");
		return NULL;
	}

	GH_verbose(GH_MSG_INFO, "requesting GL %d.%d flags: 0x%x, profile: 0x%x\n",
		   req_version[0], req_version[1], (unsigned)req_flags, (unsigned)req_profile_mask);
	attr_override[pos++] = GLX_CONTEXT_MAJOR_VERSION_ARB;
	attr_override[pos++] = req_version[0];
	attr_override[pos++] = GLX_CONTEXT_MINOR_VERSION_ARB;
	attr_override[pos++] = req_version[1];
	attr_override[pos++] = GLX_CONTEXT_PROFILE_MASK_ARB;
	attr_override[pos++] = req_profile_mask;
	attr_override[pos++] = GLX_CONTEXT_FLAGS_ARB;
	attr_override[pos++] = req_flags;
	if (req_no_error >= 0) {
		attr_override[pos++] = GLX_CONTEXT_OPENGL_NO_ERROR_ARB;
		attr_override[pos++] = req_no_error;
	}

	for (i=0; i<count; i++) {
		unsigned int name = (unsigned)attribs[2*i];
		int value = attribs[2*i+1];
		switch (name) {
			case GLX_CONTEXT_MAJOR_VERSION_ARB:
			case GLX_CONTEXT_MINOR_VERSION_ARB:
			case GLX_CONTEXT_PROFILE_MASK_ARB:
			case GLX_CONTEXT_FLAGS_ARB:
			case GLX_CONTEXT_OPENGL_NO_ERROR_ARB:
				(void)0;
				break;
			default:
				attr_override[pos++] = (int)name;
				attr_override[pos++] = value;
		}
	}
	attr_override[pos++] = None;
	attr_override[pos++] = None;

	return attr_override;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x80, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movl $0x5, -0x1c(%rbp)
movl $0x0, -0x20(%rbp)
movl $0x0, -0x24(%rbp)
movq 0x4999(%rip), %rax      # 0xa5e8
movq %rax, -0x2c(%rbp)
movl $0x1, -0x30(%rbp)
movl $0xffffffff, -0x34(%rbp) # imm = 0xFFFFFFFF
movl $0x0, -0x38(%rbp)
movl $0x0, -0x3c(%rbp)
movl $0x0, -0x4c(%rbp)
movl $0x3, %edi
leaq 0x3c8e(%rip), %rsi      # 0x9910
movb $0x0, %al
callq 0x3020
cmpq $0x0, -0x18(%rbp)
je 0x5d6e
jmp 0x5c96
movq -0x18(%rbp), %rax
movl -0x20(%rbp), %ecx
shll %ecx
movslq %ecx, %rcx
movslq (%rax,%rcx,4), %rax
cmpq $0x0, %rax
je 0x5d6c
movq -0x18(%rbp), %rax
movl -0x20(%rbp), %ecx
addl %ecx, %ecx
movslq %ecx, %rcx
movl (%rax,%rcx,4), %eax
movl %eax, -0x54(%rbp)
movq -0x18(%rbp), %rax
movl -0x20(%rbp), %ecx
addl %ecx, %ecx
movslq %ecx, %rcx
movl 0x4(%rax,%rcx,4), %eax
movl %eax, -0x58(%rbp)
movl -0x54(%rbp), %edx
movl -0x58(%rbp), %ecx
leaq 0x3c5a(%rip), %rsi      # 0x993c
xorl %eax, %eax
movl $0x3, %edi
callq 0x3020
movl -0x54(%rbp), %eax
movl %eax, -0x74(%rbp)
subl $0x2091, %eax           # imm = 0x2091
je 0x5d2d
jmp 0x5cfd
movl -0x74(%rbp), %eax
subl $0x2092, %eax           # imm = 0x2092
je 0x5d35
jmp 0x5d09
movl -0x74(%rbp), %eax
subl $0x2094, %eax           # imm = 0x2094
je 0x5d45
jmp 0x5d15
movl -0x74(%rbp), %eax
subl $0x31b3, %eax           # imm = 0x31B3
je 0x5d4d
jmp 0x5d21
movl -0x74(%rbp), %eax
subl $0x9126, %eax           # imm = 0x9126
je 0x5d3d
jmp 0x5d55
movl -0x58(%rbp), %eax
movl %eax, -0x2c(%rbp)
jmp 0x5d5e
movl -0x58(%rbp), %eax
movl %eax, -0x28(%rbp)
jmp 0x5d5e
movl -0x58(%rbp), %eax
movl %eax, -0x30(%rbp)
jmp 0x5d5e
movl -0x58(%rbp), %eax
movl %eax, -0x38(%rbp)
jmp 0x5d5e
movl -0x58(%rbp), %eax
movl %eax, -0x34(%rbp)
jmp 0x5d5e
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
movl -0x20(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x20(%rbp)
jmp 0x5c96
jmp 0x5d6e
movb $0x1, %al
cmpl $0x3, -0x2c(%rbp)
movb %al, -0x75(%rbp)
jl 0x5d94
xorl %eax, %eax
cmpl $0x3, -0x2c(%rbp)
movb %al, -0x76(%rbp)
jne 0x5d8e
cmpl $0x2, -0x28(%rbp)
setl %al
movb %al, -0x76(%rbp)
movb -0x76(%rbp), %al
movb %al, -0x75(%rbp)
movb -0x75(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x3c(%rbp)
cmpl $0x0, -0x3c(%rbp)
je 0x5dd9
movq -0x10(%rbp), %rax
movl 0x28(%rax), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x5dd9
movl $0x3, %edi
leaq 0x3ba4(%rip), %rsi      # 0x9964
movb $0x0, %al
callq 0x3020
movl -0x30(%rbp), %eax
andl $-0x2, %eax
movl %eax, -0x30(%rbp)
movl -0x30(%rbp), %eax
orl $0x2, %eax
movl %eax, -0x30(%rbp)
movq -0x10(%rbp), %rax
cmpl $0x0, 0x34(%rax)
jl 0x5e18
movl -0x2c(%rbp), %eax
movq -0x10(%rbp), %rcx
cmpl 0x34(%rcx), %eax
jge 0x5e16
movl -0x2c(%rbp), %edx
movq -0x10(%rbp), %rax
movl 0x34(%rax), %ecx
movl $0x3, %edi
leaq 0x3b8c(%rip), %rsi      # 0x9991
movb $0x0, %al
callq 0x3020
movq -0x10(%rbp), %rax
movl 0x34(%rax), %eax
movl %eax, -0x2c(%rbp)
jmp 0x5e18
movq -0x10(%rbp), %rax
cmpl $0x0, 0x38(%rax)
jl 0x5e9a
movl $0x0, -0x5c(%rbp)
movq -0x10(%rbp), %rax
cmpl $0x0, 0x34(%rax)
jl 0x5e56
movl -0x2c(%rbp), %eax
movq -0x10(%rbp), %rcx
cmpl 0x34(%rcx), %eax
jg 0x5e54
movl -0x28(%rbp), %eax
movq -0x10(%rbp), %rcx
cmpl 0x38(%rcx), %eax
jge 0x5e52
movl $0x1, -0x5c(%rbp)
jmp 0x5e54
jmp 0x5e6b
movl -0x28(%rbp), %eax
movq -0x10(%rbp), %rcx
cmpl 0x38(%rcx), %eax
jge 0x5e69
movl $0x1, -0x5c(%rbp)
jmp 0x5e6b
cmpl $0x0, -0x5c(%rbp)
je 0x5e98
movl -0x28(%rbp), %edx
movq -0x10(%rbp), %rax
movl 0x38(%rax), %ecx
movl $0x3, %edi
leaq 0x3b40(%rip), %rsi      # 0x99c7
movb $0x0, %al
callq 0x3020
movq -0x10(%rbp), %rax
movl 0x38(%rax), %eax
movl %eax, -0x28(%rbp)
jmp 0x5e9a
movq -0x10(%rbp), %rax
cmpl $0x0, 0x3c(%rax)
jl 0x5ed9
movl -0x2c(%rbp), %eax
movq -0x10(%rbp), %rcx
cmpl 0x3c(%rcx), %eax
jle 0x5ed7
movl -0x2c(%rbp), %edx
movq -0x10(%rbp), %rax
movl 0x3c(%rax), %ecx
movl $0x3, %edi
leaq 0x3b37(%rip), %rsi      # 0x99fd
movb $0x0, %al
callq 0x3020
movq -0x10(%rbp), %rax
movl 0x3c(%rax), %eax
movl %eax, -0x2c(%rbp)
jmp 0x5ed9
movq -0x10(%rbp), %rax
cmpl $0x0, 0x40(%rax)
jl 0x5f5b
movl $0x0, -0x60(%rbp)
movq -0x10(%rbp), %rax
cmpl $0x0, 0x3c(%rax)
jl 0x5f17
movl -0x2c(%rbp), %eax
movq -0x10(%rbp), %rcx
cmpl 0x3c(%rcx), %eax
jl 0x5f15
movl -0x28(%rbp), %eax
movq -0x10(%rbp), %rcx
cmpl 0x40(%rcx), %eax
jle 0x5f13
movl $0x1, -0x60(%rbp)
jmp 0x5f15
jmp 0x5f2c
movl -0x28(%rbp), %eax
movq -0x10(%rbp), %rcx
cmpl 0x40(%rcx), %eax
jle 0x5f2a
movl $0x1, -0x60(%rbp)
jmp 0x5f2c
cmpl $0x0, -0x60(%rbp)
je 0x5f59
movl -0x28(%rbp), %edx
movq -0x10(%rbp), %rax
movl 0x40(%rax), %ecx
movl $0x3, %edi
leaq 0x3aeb(%rip), %rsi      # 0x9a33
movb $0x0, %al
callq 0x3020
movq -0x10(%rbp), %rax
movl 0x40(%rax), %eax
movl %eax, -0x28(%rbp)
jmp 0x5f5b
movq -0x10(%rbp), %rax
cmpl $0x0, 0x2c(%rax)
jl 0x5f8c
movl -0x2c(%rbp), %edx
movq -0x10(%rbp), %rax
movl 0x2c(%rax), %ecx
movl $0x3, %edi
leaq 0x3aee(%rip), %rsi      # 0x9a69
movb $0x0, %al
callq 0x3020
movq -0x10(%rbp), %rax
movl 0x2c(%rax), %eax
movl %eax, -0x2c(%rbp)
movq -0x10(%rbp), %rax
cmpl $0x0, 0x30(%rax)
jl 0x5fbd
movl -0x28(%rbp), %edx
movq -0x10(%rbp), %rax
movl 0x30(%rax), %ecx
movl $0x3, %edi
leaq 0x3aed(%rip), %rsi      # 0x9a99
movb $0x0, %al
callq 0x3020
movq -0x10(%rbp), %rax
movl 0x30(%rax), %eax
movl %eax, -0x28(%rbp)
movq -0x10(%rbp), %rax
cmpl $0x0, 0x44(%rax)
jne 0x5fd1
movq -0x10(%rbp), %rax
cmpl $0x0, 0x48(%rax)
je 0x6009
movl -0x38(%rbp), %eax
movq -0x10(%rbp), %rcx
orl 0x44(%rcx), %eax
movq -0x10(%rbp), %rcx
movl 0x48(%rcx), %ecx
xorl $-0x1, %ecx
andl %ecx, %eax
movl %eax, -0x64(%rbp)
movl -0x38(%rbp), %edx
movl -0x64(%rbp), %ecx
movl $0x3, %edi
leaq 0x3acd(%rip), %rsi      # 0x9ac9
movb $0x0, %al
callq 0x3020
movl -0x64(%rbp), %eax
movl %eax, -0x38(%rbp)
movq -0x10(%rbp), %rax
cmpl $0x0, 0x4c(%rax)
jne 0x601d
movq -0x10(%rbp), %rax
cmpl $0x0, 0x50(%rax)
je 0x6055
movl -0x30(%rbp), %eax
movq -0x10(%rbp), %rcx
orl 0x4c(%rcx), %eax
movq -0x10(%rbp), %rcx
movl 0x50(%rcx), %ecx
xorl $-0x1, %ecx
andl %ecx, %eax
movl %eax, -0x68(%rbp)
movl -0x30(%rbp), %edx
movl -0x68(%rbp), %ecx
movl $0x3, %edi
leaq 0x3aad(%rip), %rsi      # 0x9af5
movb $0x0, %al
callq 0x3020
movl -0x68(%rbp), %eax
movl %eax, -0x30(%rbp)
movq -0x10(%rbp), %rax
cmpl $0x0, 0x54(%rax)
jl 0x6086
movl -0x34(%rbp), %edx
movq -0x10(%rbp), %rax
movl 0x54(%rax), %ecx
movl $0x3, %edi
leaq 0x3ab3(%rip), %rsi      # 0x9b28
movb $0x0, %al
callq 0x3020
movq -0x10(%rbp), %rax
movl 0x54(%rax), %eax
movl %eax, -0x34(%rbp)
movl -0x24(%rbp), %eax
addl $0x5, %eax
shll %eax
addl $0x2, %eax
movslq %eax, %rdi
shlq $0x2, %rdi
callq 0x2140
movq %rax, -0x48(%rbp)
cmpq $0x0, -0x48(%rbp)
jne 0x60c8
movl $0x1, %edi
leaq 0x3aa8(%rip), %rsi      # 0x9b5c
movb $0x0, %al
callq 0x3020
movq $0x0, -0x8(%rbp)
jmp 0x62ce
movl -0x2c(%rbp), %edx
movl -0x28(%rbp), %ecx
movl -0x38(%rbp), %r8d
movl -0x30(%rbp), %r9d
movl $0x3, %edi
leaq 0x3ab5(%rip), %rsi      # 0x9b97
movb $0x0, %al
callq 0x3020
movq -0x48(%rbp), %rax
movl -0x4c(%rbp), %ecx
movl %ecx, %edx
addl $0x1, %edx
movl %edx, -0x4c(%rbp)
movslq %ecx, %rcx
movl $0x2091, (%rax,%rcx,4)  # imm = 0x2091
movl -0x2c(%rbp), %edx
movq -0x48(%rbp), %rax
movl -0x4c(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x4c(%rbp)
movslq %ecx, %rcx
movl %edx, (%rax,%rcx,4)
movq -0x48(%rbp), %rax
movl -0x4c(%rbp), %ecx
movl %ecx, %edx
addl $0x1, %edx
movl %edx, -0x4c(%rbp)
movslq %ecx, %rcx
movl $0x2092, (%rax,%rcx,4)  # imm = 0x2092
movl -0x28(%rbp), %edx
movq -0x48(%rbp), %rax
movl -0x4c(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x4c(%rbp)
movslq %ecx, %rcx
movl %edx, (%rax,%rcx,4)
movq -0x48(%rbp), %rax
movl -0x4c(%rbp), %ecx
movl %ecx, %edx
addl $0x1, %edx
movl %edx, -0x4c(%rbp)
movslq %ecx, %rcx
movl $0x9126, (%rax,%rcx,4)  # imm = 0x9126
movl -0x30(%rbp), %edx
movq -0x48(%rbp), %rax
movl -0x4c(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x4c(%rbp)
movslq %ecx, %rcx
movl %edx, (%rax,%rcx,4)
movq -0x48(%rbp), %rax
movl -0x4c(%rbp), %ecx
movl %ecx, %edx
addl $0x1, %edx
movl %edx, -0x4c(%rbp)
movslq %ecx, %rcx
movl $0x2094, (%rax,%rcx,4)  # imm = 0x2094
movl -0x38(%rbp), %edx
movq -0x48(%rbp), %rax
movl -0x4c(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x4c(%rbp)
movslq %ecx, %rcx
movl %edx, (%rax,%rcx,4)
cmpl $0x0, -0x34(%rbp)
jl 0x61e4
movq -0x48(%rbp), %rax
movl -0x4c(%rbp), %ecx
movl %ecx, %edx
addl $0x1, %edx
movl %edx, -0x4c(%rbp)
movslq %ecx, %rcx
movl $0x31b3, (%rax,%rcx,4)  # imm = 0x31B3
movl -0x34(%rbp), %edx
movq -0x48(%rbp), %rax
movl -0x4c(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x4c(%rbp)
movslq %ecx, %rcx
movl %edx, (%rax,%rcx,4)
movl $0x0, -0x50(%rbp)
movl -0x50(%rbp), %eax
cmpl -0x20(%rbp), %eax
jge 0x6294
movq -0x18(%rbp), %rax
movl -0x50(%rbp), %ecx
addl %ecx, %ecx
movslq %ecx, %rcx
movl (%rax,%rcx,4), %eax
movl %eax, -0x6c(%rbp)
movq -0x18(%rbp), %rax
movl -0x50(%rbp), %ecx
addl %ecx, %ecx
movslq %ecx, %rcx
movl 0x4(%rax,%rcx,4), %eax
movl %eax, -0x70(%rbp)
movl -0x6c(%rbp), %eax
movl %eax, -0x7c(%rbp)
addl $0xffffdf6f, %eax       # imm = 0xFFFFDF6F
subl $0x2, %eax
jb 0x6252
jmp 0x622e
movl -0x7c(%rbp), %eax
subl $0x2094, %eax           # imm = 0x2094
je 0x6252
jmp 0x623a
movl -0x7c(%rbp), %eax
subl $0x31b3, %eax           # imm = 0x31B3
je 0x6252
jmp 0x6246
movl -0x7c(%rbp), %eax
subl $0x9126, %eax           # imm = 0x9126
jne 0x6254
jmp 0x6252
jmp 0x6284
movl -0x6c(%rbp), %edx
movq -0x48(%rbp), %rax
movl -0x4c(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x4c(%rbp)
movslq %ecx, %rcx
movl %edx, (%rax,%rcx,4)
movl -0x70(%rbp), %edx
movq -0x48(%rbp), %rax
movl -0x4c(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x4c(%rbp)
movslq %ecx, %rcx
movl %edx, (%rax,%rcx,4)
jmp 0x6286
movl -0x50(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x50(%rbp)
jmp 0x61eb
movq -0x48(%rbp), %rax
movl -0x4c(%rbp), %ecx
movl %ecx, %edx
addl $0x1, %edx
movl %edx, -0x4c(%rbp)
movslq %ecx, %rcx
movl $0x0, (%rax,%rcx,4)
movq -0x48(%rbp), %rax
movl -0x4c(%rbp), %ecx
movl %ecx, %edx
addl $0x1, %edx
movl %edx, -0x4c(%rbp)
movslq %ecx, %rcx
movl $0x0, (%rax,%rcx,4)
movq -0x48(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x80, %rsp
popq %rbp
retq
nopl (%rax,%rax)