// File: /workspace/github_c_makefile_star2_O0/MikeGray-APH[P]LibLouisAPH/source/log.c
// Function: log_message
void log_message(const enum log_level level, const char *format, ...)
{
	va_list args;
	char message[LOG_MESSAGE_MAX], *arg_string;
	size_t fcrs, mcrs, len;
	unichar *arg_uchars, arg_uchar;
	unsigned int arg_unt;
	int arg_int;

	if(!log_callback)
		return;

	memset(message, 0, LOG_MESSAGE_MAX);
	va_start(args, format);
	for(fcrs = mcrs = 0; fcrs < strlen(format) - 1; fcrs++)
	{
		if(format[fcrs] != '%')
			message[mcrs++] = format[fcrs];
		else switch(format[++fcrs])
		{
		case 'd':

			arg_int = va_arg(args, int);
			len = snprintf(&message[mcrs], LOG_MESSAGE_MAX - mcrs, "%d", arg_int);
			mcrs += len;
			break;

		case 'u':

			arg_unt = va_arg(args, int);
			len = snprintf(&message[mcrs], LOG_MESSAGE_MAX - mcrs, "%u", arg_unt);
			mcrs += len;
			break;

		case 'x':

			arg_unt = va_arg(args, int);
			len = snprintf(&message[mcrs], LOG_MESSAGE_MAX - mcrs, "%x", arg_unt);
			mcrs += len;
			break;

		case 'o':

			arg_unt = va_arg(args, int);
			len = snprintf(&message[mcrs], LOG_MESSAGE_MAX - mcrs, "%o", arg_unt);
			mcrs += len;
			break;

		case 'b':

			arg_unt = va_arg(args, int);
			len = convert_number(&message[mcrs], LOG_MESSAGE_MAX - mcrs, arg_unt, 2);
			mcrs += len;
			break;

		case 'c':

			arg_int = va_arg(args, int);
			len = snprintf(&message[mcrs], LOG_MESSAGE_MAX - mcrs, "%c", arg_int);
			mcrs += len;
			break;

		case 's':

			arg_string = va_arg(args, char*);
			len = snprintf(&message[mcrs], LOG_MESSAGE_MAX - mcrs, "%s", arg_string);
			mcrs += len;
			break;

		case 'C':

			arg_uchar = (unichar)va_arg(args, int);
			len = utf16_convert_to_utf8(&message[mcrs], LOG_MESSAGE_MAX - mcrs, &arg_uchar, 1, NULL);
			mcrs += len;
			break;

		case 'S':

			arg_uchars = (unichar*)va_arg(args, unichar*);
			len = 0;
			while(arg_uchars[len])
				len++;
			len = utf16_convert_to_utf8(&message[mcrs], LOG_MESSAGE_MAX - mcrs, arg_uchars, len, NULL);
			mcrs += len;
			break;

		case '#':

			fcrs++;
			if(fcrs >= strlen(format))
			{
				/*   copy last chars to message   */
				message[mcrs++] = format[fcrs - 2];
				message[mcrs++] = format[fcrs - 1];
				break;
			}
			if(format[fcrs] == 'S')
			{
				arg_uchars = (unichar*)va_arg(args, unichar*);
				arg_int = va_arg(args, int);
				len = utf16_convert_to_utf8(&message[mcrs], LOG_MESSAGE_MAX - mcrs, arg_uchars, arg_int, NULL);
				mcrs += len;
			}
			else
			{
				snprintf(&message[mcrs], LOG_MESSAGE_MAX - mcrs, ":  ERROR:  unknown specifier %%#%c", format[fcrs]);
				message[LOG_MESSAGE_MAX - 1] = 0;
				goto return_message;
			}
			break;

		default:

			snprintf(&message[mcrs], LOG_MESSAGE_MAX - mcrs, ":  ERROR:  unknown specifier %%%c", format[fcrs]);
			message[LOG_MESSAGE_MAX - 1] = 0;
			goto return_message;
		}

		if(mcrs >= LOG_MESSAGE_MAX - 1)
		{
			mcrs = LOG_MESSAGE_MAX - 1;
			message[mcrs] = 0;
			goto return_message;
		}
	}
	va_end(args);

	/*   copy last char to message   */
	if(fcrs < strlen(format))
	if(mcrs < LOG_MESSAGE_MAX - 1)
		message[mcrs++] = format[fcrs];
	else
		mcrs = LOG_MESSAGE_MAX - 1;
	message[mcrs] = 0;

	return_message:
	OUTPUT_TO_FILE(level, message)
	log_callback(level, message);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1250, %rsp           # imm = 0x1250
testb %al, %al
je 0xf657
movaps %xmm0, -0x10f0(%rbp)
movaps %xmm1, -0x10e0(%rbp)
movaps %xmm2, -0x10d0(%rbp)
movaps %xmm3, -0x10c0(%rbp)
movaps %xmm4, -0x10b0(%rbp)
movaps %xmm5, -0x10a0(%rbp)
movaps %xmm6, -0x1090(%rbp)
movaps %xmm7, -0x1080(%rbp)
movq %r9, -0x10f8(%rbp)
movq %r8, -0x1100(%rbp)
movq %rcx, -0x1108(%rbp)
movq %rdx, -0x1110(%rbp)
movl %edi, -0x4(%rbp)
movq %rsi, -0x10(%rbp)
cmpq $0x0, 0x16bd6(%rip)     # 0x26258
jne 0xf689
jmp 0x1017b
leaq -0x1030(%rbp), %rdi
xorl %esi, %esi
movl $0x1000, %edx           # imm = 0x1000
callq 0x1100
leaq -0x30(%rbp), %rax
leaq -0x1120(%rbp), %rcx
movq %rcx, 0x10(%rax)
leaq 0x10(%rbp), %rcx
movq %rcx, 0x8(%rax)
movl $0x30, 0x4(%rax)
movl $0x10, (%rax)
movq $0x0, -0x1048(%rbp)
movq $0x0, -0x1040(%rbp)
movq -0x1040(%rbp), %rax
movq %rax, -0x1128(%rbp)
movq -0x10(%rbp), %rdi
callq 0x10a0
movq %rax, %rcx
movq -0x1128(%rbp), %rax
subq $0x1, %rcx
cmpq %rcx, %rax
jae 0x100e9
movq -0x10(%rbp), %rax
movq -0x1040(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x25, %eax
je 0xf747
movq -0x10(%rbp), %rax
movq -0x1040(%rbp), %rcx
movb (%rax,%rcx), %cl
movq -0x1048(%rbp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, -0x1048(%rbp)
movb %cl, -0x1030(%rbp,%rax)
jmp 0x100a4
movq -0x10(%rbp), %rax
movq -0x1040(%rbp), %rcx
movq %rcx, %rdx
incq %rdx
movq %rdx, -0x1040(%rbp)
movsbl 0x1(%rax,%rcx), %eax
addl $-0x23, %eax
movl %eax, %ecx
movq %rcx, -0x1130(%rbp)
subl $0x55, %eax
ja 0x10062
movq -0x1130(%rbp), %rax
leaq 0xf50d(%rip), %rcx      # 0x1ec94
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq -0x30(%rbp), %rax
movq %rax, -0x1140(%rbp)
movl -0x30(%rbp), %eax
movl %eax, -0x1134(%rbp)
cmpl $0x28, %eax
ja 0xf7cb
movq -0x1140(%rbp), %rcx
movl -0x1134(%rbp), %edx
movslq %edx, %rax
addq 0x10(%rcx), %rax
addl $0x8, %edx
movl %edx, (%rcx)
movq %rax, -0x1148(%rbp)
jmp 0xf7e8
movq -0x1140(%rbp), %rcx
movq 0x8(%rcx), %rax
movq %rax, %rdx
addq $0x8, %rdx
movq %rdx, 0x8(%rcx)
movq %rax, -0x1148(%rbp)
movq -0x1148(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x1064(%rbp)
leaq -0x1030(%rbp), %rdi
addq -0x1048(%rbp), %rdi
movl $0x1000, %esi           # imm = 0x1000
subq -0x1048(%rbp), %rsi
movl -0x1064(%rbp), %ecx
leaq 0xfbb4(%rip), %rdx      # 0x1f3d2
movb $0x0, %al
callq 0x10d0
cltq
movq %rax, -0x1050(%rbp)
movq -0x1050(%rbp), %rax
addq -0x1048(%rbp), %rax
movq %rax, -0x1048(%rbp)
jmp 0x100a2
leaq -0x30(%rbp), %rax
movq %rax, -0x1158(%rbp)
movl -0x30(%rbp), %eax
movl %eax, -0x114c(%rbp)
cmpl $0x28, %eax
ja 0xf883
movq -0x1158(%rbp), %rcx
movl -0x114c(%rbp), %edx
movslq %edx, %rax
addq 0x10(%rcx), %rax
addl $0x8, %edx
movl %edx, (%rcx)
movq %rax, -0x1160(%rbp)
jmp 0xf8a0
movq -0x1158(%rbp), %rcx
movq 0x8(%rcx), %rax
movq %rax, %rdx
addq $0x8, %rdx
movq %rdx, 0x8(%rcx)
movq %rax, -0x1160(%rbp)
movq -0x1160(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x1060(%rbp)
leaq -0x1030(%rbp), %rdi
addq -0x1048(%rbp), %rdi
movl $0x1000, %esi           # imm = 0x1000
subq -0x1048(%rbp), %rsi
movl -0x1060(%rbp), %ecx
leaq 0xf516(%rip), %rdx      # 0x1edec
movb $0x0, %al
callq 0x10d0
cltq
movq %rax, -0x1050(%rbp)
movq -0x1050(%rbp), %rax
addq -0x1048(%rbp), %rax
movq %rax, -0x1048(%rbp)
jmp 0x100a2
leaq -0x30(%rbp), %rax
movq %rax, -0x1170(%rbp)
movl -0x30(%rbp), %eax
movl %eax, -0x1164(%rbp)
cmpl $0x28, %eax
ja 0xf93b
movq -0x1170(%rbp), %rcx
movl -0x1164(%rbp), %edx
movslq %edx, %rax
addq 0x10(%rcx), %rax
addl $0x8, %edx
movl %edx, (%rcx)
movq %rax, -0x1178(%rbp)
jmp 0xf958
movq -0x1170(%rbp), %rcx
movq 0x8(%rcx), %rax
movq %rax, %rdx
addq $0x8, %rdx
movq %rdx, 0x8(%rcx)
movq %rax, -0x1178(%rbp)
movq -0x1178(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x1060(%rbp)
leaq -0x1030(%rbp), %rdi
addq -0x1048(%rbp), %rdi
movl $0x1000, %esi           # imm = 0x1000
subq -0x1048(%rbp), %rsi
movl -0x1060(%rbp), %ecx
leaq 0xf461(%rip), %rdx      # 0x1edef
movb $0x0, %al
callq 0x10d0
cltq
movq %rax, -0x1050(%rbp)
movq -0x1050(%rbp), %rax
addq -0x1048(%rbp), %rax
movq %rax, -0x1048(%rbp)
jmp 0x100a2
leaq -0x30(%rbp), %rax
movq %rax, -0x1188(%rbp)
movl -0x30(%rbp), %eax
movl %eax, -0x117c(%rbp)
cmpl $0x28, %eax
ja 0xf9f3
movq -0x1188(%rbp), %rcx
movl -0x117c(%rbp), %edx
movslq %edx, %rax
addq 0x10(%rcx), %rax
addl $0x8, %edx
movl %edx, (%rcx)
movq %rax, -0x1190(%rbp)
jmp 0xfa10
movq -0x1188(%rbp), %rcx
movq 0x8(%rcx), %rax
movq %rax, %rdx
addq $0x8, %rdx
movq %rdx, 0x8(%rcx)
movq %rax, -0x1190(%rbp)
movq -0x1190(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x1060(%rbp)
leaq -0x1030(%rbp), %rdi
addq -0x1048(%rbp), %rdi
movl $0x1000, %esi           # imm = 0x1000
subq -0x1048(%rbp), %rsi
movl -0x1060(%rbp), %ecx
leaq 0xf3ac(%rip), %rdx      # 0x1edf2
movb $0x0, %al
callq 0x10d0
cltq
movq %rax, -0x1050(%rbp)
movq -0x1050(%rbp), %rax
addq -0x1048(%rbp), %rax
movq %rax, -0x1048(%rbp)
jmp 0x100a2
leaq -0x30(%rbp), %rax
movq %rax, -0x11a0(%rbp)
movl -0x30(%rbp), %eax
movl %eax, -0x1194(%rbp)
cmpl $0x28, %eax
ja 0xfaab
movq -0x11a0(%rbp), %rcx
movl -0x1194(%rbp), %edx
movslq %edx, %rax
addq 0x10(%rcx), %rax
addl $0x8, %edx
movl %edx, (%rcx)
movq %rax, -0x11a8(%rbp)
jmp 0xfac8
movq -0x11a0(%rbp), %rcx
movq 0x8(%rcx), %rax
movq %rax, %rdx
addq $0x8, %rdx
movq %rdx, 0x8(%rcx)
movq %rax, -0x11a8(%rbp)
movq -0x11a8(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x1060(%rbp)
leaq -0x1030(%rbp), %rdi
addq -0x1048(%rbp), %rdi
movl $0x1000, %eax           # imm = 0x1000
subq -0x1048(%rbp), %rax
movl %eax, %esi
movl -0x1060(%rbp), %edx
movl $0x2, %ecx
callq 0x10190
cltq
movq %rax, -0x1050(%rbp)
movq -0x1050(%rbp), %rax
addq -0x1048(%rbp), %rax
movq %rax, -0x1048(%rbp)
jmp 0x100a2
leaq -0x30(%rbp), %rax
movq %rax, -0x11b8(%rbp)
movl -0x30(%rbp), %eax
movl %eax, -0x11ac(%rbp)
cmpl $0x28, %eax
ja 0xfb61
movq -0x11b8(%rbp), %rcx
movl -0x11ac(%rbp), %edx
movslq %edx, %rax
addq 0x10(%rcx), %rax
addl $0x8, %edx
movl %edx, (%rcx)
movq %rax, -0x11c0(%rbp)
jmp 0xfb7e
movq -0x11b8(%rbp), %rcx
movq 0x8(%rcx), %rax
movq %rax, %rdx
addq $0x8, %rdx
movq %rdx, 0x8(%rcx)
movq %rax, -0x11c0(%rbp)
movq -0x11c0(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x1064(%rbp)
leaq -0x1030(%rbp), %rdi
addq -0x1048(%rbp), %rdi
movl $0x1000, %esi           # imm = 0x1000
subq -0x1048(%rbp), %rsi
movl -0x1064(%rbp), %ecx
leaq 0xf261(%rip), %rdx      # 0x1ee15
movb $0x0, %al
callq 0x10d0
cltq
movq %rax, -0x1050(%rbp)
movq -0x1050(%rbp), %rax
addq -0x1048(%rbp), %rax
movq %rax, -0x1048(%rbp)
jmp 0x100a2
leaq -0x30(%rbp), %rax
movq %rax, -0x11d0(%rbp)
movl -0x30(%rbp), %eax
movl %eax, -0x11c4(%rbp)
cmpl $0x28, %eax
ja 0xfc19
movq -0x11d0(%rbp), %rcx
movl -0x11c4(%rbp), %edx
movslq %edx, %rax
addq 0x10(%rcx), %rax
addl $0x8, %edx
movl %edx, (%rcx)
movq %rax, -0x11d8(%rbp)
jmp 0xfc36
movq -0x11d0(%rbp), %rcx
movq 0x8(%rcx), %rax
movq %rax, %rdx
addq $0x8, %rdx
movq %rdx, 0x8(%rcx)
movq %rax, -0x11d8(%rbp)
movq -0x11d8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x1038(%rbp)
leaq -0x1030(%rbp), %rdi
addq -0x1048(%rbp), %rdi
movl $0x1000, %esi           # imm = 0x1000
subq -0x1048(%rbp), %rsi
movq -0x1038(%rbp), %rcx
leaq 0xefb5(%rip), %rdx      # 0x1ec24
movb $0x0, %al
callq 0x10d0
cltq
movq %rax, -0x1050(%rbp)
movq -0x1050(%rbp), %rax
addq -0x1048(%rbp), %rax
movq %rax, -0x1048(%rbp)
jmp 0x100a2
leaq -0x30(%rbp), %rax
movq %rax, -0x11e8(%rbp)
movl -0x30(%rbp), %eax
movl %eax, -0x11dc(%rbp)
cmpl $0x28, %eax
ja 0xfcd4
movq -0x11e8(%rbp), %rcx
movl -0x11dc(%rbp), %edx
movslq %edx, %rax
addq 0x10(%rcx), %rax
addl $0x8, %edx
movl %edx, (%rcx)
movq %rax, -0x11f0(%rbp)
jmp 0xfcf1
movq -0x11e8(%rbp), %rcx
movq 0x8(%rcx), %rax
movq %rax, %rdx
addq $0x8, %rdx
movq %rdx, 0x8(%rcx)
movq %rax, -0x11f0(%rbp)
movq -0x11f0(%rbp), %rax
movl (%rax), %eax
movw %ax, -0x105a(%rbp)
leaq -0x1030(%rbp), %rdi
addq -0x1048(%rbp), %rdi
movl $0x1000, %eax           # imm = 0x1000
subq -0x1048(%rbp), %rax
movl %eax, %esi
leaq -0x105a(%rbp), %rdx
movl $0x1, %ecx
xorl %eax, %eax
movl %eax, %r8d
callq 0x1ab0
cltq
movq %rax, -0x1050(%rbp)
movq -0x1050(%rbp), %rax
addq -0x1048(%rbp), %rax
movq %rax, -0x1048(%rbp)
jmp 0x100a2
leaq -0x30(%rbp), %rax
movq %rax, -0x1200(%rbp)
movl -0x30(%rbp), %eax
movl %eax, -0x11f4(%rbp)
cmpl $0x28, %eax
ja 0xfd91
movq -0x1200(%rbp), %rcx
movl -0x11f4(%rbp), %edx
movslq %edx, %rax
addq 0x10(%rcx), %rax
addl $0x8, %edx
movl %edx, (%rcx)
movq %rax, -0x1208(%rbp)
jmp 0xfdae
movq -0x1200(%rbp), %rcx
movq 0x8(%rcx), %rax
movq %rax, %rdx
addq $0x8, %rdx
movq %rdx, 0x8(%rcx)
movq %rax, -0x1208(%rbp)
movq -0x1208(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x1058(%rbp)
movq $0x0, -0x1050(%rbp)
movq -0x1058(%rbp), %rax
movq -0x1050(%rbp), %rcx
cmpw $0x0, (%rax,%rcx,2)
je 0xfdf3
movq -0x1050(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x1050(%rbp)
jmp 0xfdca
leaq -0x1030(%rbp), %rdi
addq -0x1048(%rbp), %rdi
movl $0x1000, %eax           # imm = 0x1000
subq -0x1048(%rbp), %rax
movl %eax, %esi
movq -0x1058(%rbp), %rdx
movq -0x1050(%rbp), %rax
movl %eax, %ecx
xorl %eax, %eax
movl %eax, %r8d
callq 0x1ab0
cltq
movq %rax, -0x1050(%rbp)
movq -0x1050(%rbp), %rax
addq -0x1048(%rbp), %rax
movq %rax, -0x1048(%rbp)
jmp 0x100a2
movq -0x1040(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x1040(%rbp)
movq -0x1040(%rbp), %rax
movq %rax, -0x1210(%rbp)
movq -0x10(%rbp), %rdi
callq 0x10a0
movq %rax, %rcx
movq -0x1210(%rbp), %rax
cmpq %rcx, %rax
jb 0xfee5
movq -0x10(%rbp), %rax
movq -0x1040(%rbp), %rcx
subq $0x2, %rcx
movb (%rax,%rcx), %cl
movq -0x1048(%rbp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, -0x1048(%rbp)
movb %cl, -0x1030(%rbp,%rax)
movq -0x10(%rbp), %rax
movq -0x1040(%rbp), %rcx
subq $0x1, %rcx
movb (%rax,%rcx), %cl
movq -0x1048(%rbp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, -0x1048(%rbp)
movb %cl, -0x1030(%rbp,%rax)
jmp 0x100a2
movq -0x10(%rbp), %rax
movq -0x1040(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x53, %eax
jne 0x10020
leaq -0x30(%rbp), %rax
movq %rax, -0x1220(%rbp)
movl -0x30(%rbp), %eax
movl %eax, -0x1214(%rbp)
cmpl $0x28, %eax
ja 0xff38
movq -0x1220(%rbp), %rcx
movl -0x1214(%rbp), %edx
movslq %edx, %rax
addq 0x10(%rcx), %rax
addl $0x8, %edx
movl %edx, (%rcx)
movq %rax, -0x1228(%rbp)
jmp 0xff55
movq -0x1220(%rbp), %rcx
movq 0x8(%rcx), %rax
movq %rax, %rdx
addq $0x8, %rdx
movq %rdx, 0x8(%rcx)
movq %rax, -0x1228(%rbp)
movq -0x1228(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x1058(%rbp)
leaq -0x30(%rbp), %rax
movq %rax, -0x1238(%rbp)
movl -0x30(%rbp), %eax
movl %eax, -0x122c(%rbp)
cmpl $0x28, %eax
ja 0xffa1
movq -0x1238(%rbp), %rcx
movl -0x122c(%rbp), %edx
movslq %edx, %rax
addq 0x10(%rcx), %rax
addl $0x8, %edx
movl %edx, (%rcx)
movq %rax, -0x1240(%rbp)
jmp 0xffbe
movq -0x1238(%rbp), %rcx
movq 0x8(%rcx), %rax
movq %rax, %rdx
addq $0x8, %rdx
movq %rdx, 0x8(%rcx)
movq %rax, -0x1240(%rbp)
movq -0x1240(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x1064(%rbp)
leaq -0x1030(%rbp), %rdi
addq -0x1048(%rbp), %rdi
movl $0x1000, %eax           # imm = 0x1000
subq -0x1048(%rbp), %rax
movl %eax, %esi
movq -0x1058(%rbp), %rdx
movl -0x1064(%rbp), %ecx
xorl %eax, %eax
movl %eax, %r8d
callq 0x1ab0
cltq
movq %rax, -0x1050(%rbp)
movq -0x1050(%rbp), %rax
addq -0x1048(%rbp), %rax
movq %rax, -0x1048(%rbp)
jmp 0x10060
leaq -0x1030(%rbp), %rdi
addq -0x1048(%rbp), %rdi
movl $0x1000, %esi           # imm = 0x1000
subq -0x1048(%rbp), %rsi
movq -0x10(%rbp), %rax
movq -0x1040(%rbp), %rcx
movsbl (%rax,%rcx), %ecx
leaq 0xeda5(%rip), %rdx      # 0x1edf5
movb $0x0, %al
callq 0x10d0
movb $0x0, -0x31(%rbp)
jmp 0x10168
jmp 0x100a2
leaq -0x1030(%rbp), %rdi
addq -0x1048(%rbp), %rdi
movl $0x1000, %esi           # imm = 0x1000
subq -0x1048(%rbp), %rsi
movq -0x10(%rbp), %rax
movq -0x1040(%rbp), %rcx
movsbl (%rax,%rcx), %ecx
leaq 0xed86(%rip), %rdx      # 0x1ee18
movb $0x0, %al
callq 0x10d0
movb $0x0, -0x31(%rbp)
jmp 0x10168
jmp 0x100a4
cmpq $0xfff, -0x1048(%rbp) # imm = 0xFFF
jb 0x100d0
movq $0xfff, -0x1048(%rbp) # imm = 0xFFF
movq -0x1048(%rbp), %rax
movb $0x0, -0x1030(%rbp,%rax)
jmp 0x10168
jmp 0x100d2
movq -0x1040(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x1040(%rbp)
jmp 0xf6d6
leaq -0x30(%rbp), %rax
movq -0x1040(%rbp), %rax
movq %rax, -0x1248(%rbp)
movq -0x10(%rbp), %rdi
callq 0x10a0
movq %rax, %rcx
movq -0x1248(%rbp), %rax
cmpq %rcx, %rax
jae 0x10159
cmpq $0xfff, -0x1048(%rbp) # imm = 0xFFF
jae 0x1014c
movq -0x10(%rbp), %rax
movq -0x1040(%rbp), %rcx
movb (%rax,%rcx), %cl
movq -0x1048(%rbp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, -0x1048(%rbp)
movb %cl, -0x1030(%rbp,%rax)
jmp 0x10157
movq $0xfff, -0x1048(%rbp) # imm = 0xFFF
jmp 0x10159
movq -0x1048(%rbp), %rax
movb $0x0, -0x1030(%rbp,%rax)
movq 0x160e9(%rip), %rax     # 0x26258
movl -0x4(%rbp), %edi
leaq -0x1030(%rbp), %rsi
callq *%rax
addq $0x1250, %rsp           # imm = 0x1250
popq %rbp
retq
nopw %cs:(%rax,%rax)