// File: /workspace/github_c_makefile_star2_O0/jsummers[P]deark/src/fmtutil-lzw.c
// Function: delzw_on_codes_start
static void delzw_on_codes_start(delzwctx *dc)
{
	DELZW_CODE i;
	UI default_max_codesize = 0;

	if(dc->errcode) goto done;

	if(dc->header_size > 0) {
		delzw_debugmsg(dc, 2, "processing header");

		if(dc->header_type==DELZW_HEADERTYPE_UNIXCOMPRESS3BYTE) {
			delzw_process_unixcompress_3byteheader(dc);
		}
		else if(dc->header_type==DELZW_HEADERTYPE_ARC1BYTE) {
			delzw_process_arc_1byteheader(dc);
		}

		lzw_after_header_parsed(dc);
	}

	delzw_debugmsg(dc, 2, "start of codes");

	if(dc->fmt==DE_LZWFMT_UNIXCOMPRESS) {
		dc->is_lsb = 1;
		dc->auto_inc_codesize = 1;
	}
	else if(dc->fmt==DE_LZWFMT_GIF) {
		dc->is_lsb = 1;
		dc->auto_inc_codesize = 1;
		dc->min_codesize = dc->delzwp_copy.gif_root_code_size + 1;
		dc->max_codesize = 12;
	}
	else if(dc->fmt==DE_LZWFMT_ZIPSHRINK) {
		dc->is_lsb = 1;
		dc->has_partial_clearing = 1;
		dc->max_codesize = 13;
	}
	else if(dc->fmt==DE_LZWFMT_ZOOLZD) {
		dc->is_lsb = 1;
		dc->auto_inc_codesize = 1;
		default_max_codesize = 13;
	}
	else if(dc->fmt==DE_LZWFMT_TIFFNEW) {
		dc->auto_inc_codesize = 1;
		dc->early_codesize_inc = 1;
		default_max_codesize = 12;
	}
	else if(dc->fmt==DE_LZWFMT_TIFFOLD) {
		dc->is_lsb = 1;
		dc->auto_inc_codesize = 1;
		default_max_codesize = 12;
	}
	else if(dc->fmt==DE_LZWFMT_ARC5) {
		dc->is_hashed = 1;
		dc->max_codesize = 12;
		dc->min_codesize = 12;
	}
	else if(dc->fmt==DE_LZWFMT_DWC) {
		dc->early_codesize_inc = 1;
		dc->auto_inc_codesize = 1;
		default_max_codesize = 14;
	}
	else if(dc->fmt==DE_LZWFMT_SHRINKIT1 || dc->fmt==DE_LZWFMT_SHRINKIT2) {
		dc->is_lsb = 1;
		default_max_codesize = 12;
		dc->auto_inc_codesize = 1;
		dc->early_codesize_inc = 1;
	}
	else if(dc->fmt==DE_LZWFMT_PAKLEO) {
		default_max_codesize = 14;
	}
	else if(dc->fmt==DE_LZWFMT_ASC2COM) {
		dc->is_lsb = 1;
		default_max_codesize = 10;
	}

	if(dc->min_codesize==0) {
		// 9 is the usual minimum codesize for general purpose LZW compression schemes
		// with a variable code size.
		dc->min_codesize = 9;
	}

	if(dc->max_codesize==0) {
		dc->max_codesize = dc->delzwp_copy.max_code_size ?
			dc->delzwp_copy.max_code_size : default_max_codesize;
	}

	if(dc->min_codesize<DELZW_MINMINCODESIZE || dc->min_codesize>DELZW_MAXMAXCODESIZE ||
		dc->max_codesize<DELZW_MINMINCODESIZE || dc->max_codesize>DELZW_MAXMAXCODESIZE ||
		dc->min_codesize>dc->max_codesize)
	{
		delzw_set_errorf(dc, DELZW_ERRCODE_UNSUPPORTED_OPTION, "Unsupported code size (%u,%u)",
			dc->min_codesize, dc->max_codesize);
		goto done;
	}

	delzw_debugmsg(dc, 2, "code size: %u, max=%u", dc->min_codesize, dc->max_codesize);

	dc->curr_codesize = dc->min_codesize;

	dc->ct_capacity = ((DELZW_CODE)1)<<dc->max_codesize;
	dc->ct = de_mallocarray(dc->c, dc->ct_capacity, sizeof(struct delzw_tableentry));
	if(dc->is_hashed) {
		dc->ct2 = de_mallocarray(dc->c, dc->ct_capacity, sizeof(struct delzw_tableentry2));
	}
	dc->valbuf_capacity = dc->ct_capacity;
	dc->valbuf = de_malloc(dc->c, dc->valbuf_capacity);

	if(dc->fmt==DE_LZWFMT_UNIXCOMPRESS) {
		set_std_static_codes(dc);

		if(dc->unixcompress_has_clear_code) {
			dc->ct[256].codetype = DELZW_CODETYPE_CLEAR;
			dc->first_dynamic_code = 257;
		}
		else {
			dc->first_dynamic_code = 256;
		}
	}
	else if(dc->fmt==DE_LZWFMT_GIF) {
		DELZW_CODE n = DELZW_NBITS_TO_NCODES(dc->delzwp_copy.gif_root_code_size);

		for(i=0; i<n; i++) {
			dc->ct[i].codetype = DELZW_CODETYPE_STATIC;
			dc->ct[i].value = (i<=255)?((u8)i):0;
		}
		dc->ct[n].codetype = DELZW_CODETYPE_CLEAR;
		dc->ct[n+1].codetype = DELZW_CODETYPE_STOP;
		dc->first_dynamic_code = n+2;
	}
	else if(dc->fmt==DE_LZWFMT_ZIPSHRINK) {
		set_std_static_codes(dc);
		dc->ct[256].codetype = DELZW_CODETYPE_SPECIAL;
		dc->first_dynamic_code = 257;
	}
	else if(dc->fmt==DE_LZWFMT_ZOOLZD) {
		set_std_static_codes(dc);
		dc->ct[256].codetype = DELZW_CODETYPE_CLEAR;
		dc->ct[257].codetype = DELZW_CODETYPE_STOP;
		dc->first_dynamic_code = 258;
	}
	else if(dc->fmt==DE_LZWFMT_TIFFNEW || dc->fmt==DE_LZWFMT_TIFFOLD) {
		set_std_static_codes(dc);
		dc->ct[256].codetype = DELZW_CODETYPE_CLEAR;
		dc->ct[257].codetype = DELZW_CODETYPE_STOP;
		dc->first_dynamic_code = 258;
	}
	else if(dc->fmt==DE_LZWFMT_DWC) {
		set_std_static_codes(dc);
		dc->first_dynamic_code = 256;
	}
	else if(dc->fmt==DE_LZWFMT_SHRINKIT1) {
		set_std_static_codes(dc);
		dc->ct[256].codetype = DELZW_CODETYPE_INVALID; // ??
		dc->first_dynamic_code = 257;
	}
	else if(dc->fmt==DE_LZWFMT_SHRINKIT2) {
		set_std_static_codes(dc);
		dc->ct[256].codetype = DELZW_CODETYPE_CLEAR;
		dc->first_dynamic_code = 257;
	}
	else if(dc->fmt==DE_LZWFMT_PAKLEO) {
		set_std_static_codes(dc);
		dc->ct[256].codetype = DELZW_CODETYPE_STOP;
		dc->ct[257].codetype = DELZW_CODETYPE_INC_CDSZ;
		dc->ct[258].codetype = DELZW_CODETYPE_CLEAR;
		dc->first_dynamic_code = 259;
	}
	else if(dc->fmt==DE_LZWFMT_ASC2COM) {
		set_std_static_codes(dc);
		dc->ct[256].codetype = DELZW_CODETYPE_INVALID;
		dc->ct[257].codetype = DELZW_CODETYPE_INC_CDSZ;
		dc->ct[258].codetype = DELZW_CODETYPE_STOP;
		dc->first_dynamic_code = 259;
	}

	if(dc->is_hashed) {
		for(i=0; i<dc->ct_capacity; i++) {
			dc->ct2[i].next = DELZW_NEXTPTR_NONE;
		}
	}

	for(i=dc->first_dynamic_code; i<dc->ct_capacity; i++) {
		dc->ct[i].codetype = DELZW_CODETYPE_DYN_UNUSED;
	}
	dc->free_code_search_start = dc->first_dynamic_code;

	if(dc->is_hashed) {
		if(dc->delzwp_copy.arc5_has_stop_code) {
			dc->ct[0].codetype = DELZW_CODETYPE_STOP;
			dc->ct_code_count++;
		}

		for(i=0; i<256; i++) {
			delzw_hashed_add_root_code_to_dict(dc, (u8)i);
		}
	}

	dc->bbll.is_lsb = dc->is_lsb;
	de_bitbuf_lowlevel_empty(&dc->bbll);
done:
	;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movl $0x0, -0x10(%rbp)
movq -0x8(%rbp), %rax
cmpl $0x0, 0x60(%rax)
je 0x184dd2
jmp 0x1855fc
movq -0x8(%rbp), %rax
cmpq $0x0, 0x50(%rax)
jbe 0x184e27
movq -0x8(%rbp), %rdi
movl $0x2, %esi
leaq 0x5285c(%rip), %rdx     # 0x1d7649
movb $0x0, %al
callq 0x1848d0
movq -0x8(%rbp), %rax
cmpl $0x1, 0x2c(%rax)
jne 0x184e09
movq -0x8(%rbp), %rdi
callq 0x1858d0
jmp 0x184e1e
movq -0x8(%rbp), %rax
cmpl $0x2, 0x2c(%rax)
jne 0x184e1c
movq -0x8(%rbp), %rdi
callq 0x1859c0
jmp 0x184e1e
movq -0x8(%rbp), %rdi
callq 0x185a20
movq -0x8(%rbp), %rdi
movl $0x2, %esi
leaq 0x52824(%rip), %rdx     # 0x1d765b
movb $0x0, %al
callq 0x1848d0
movq -0x8(%rbp), %rax
cmpl $0x1, 0x14(%rax)
jne 0x184e5d
movq -0x8(%rbp), %rax
movb $0x1, 0x58(%rax)
movq -0x8(%rbp), %rax
movb $0x1, 0x40(%rax)
jmp 0x184ff9
movq -0x8(%rbp), %rax
cmpl $0x2, 0x14(%rax)
jne 0x184e98
movq -0x8(%rbp), %rax
movb $0x1, 0x58(%rax)
movq -0x8(%rbp), %rax
movb $0x1, 0x40(%rax)
movq -0x8(%rbp), %rax
movl 0x20(%rax), %ecx
addl $0x1, %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x44(%rax)
movq -0x8(%rbp), %rax
movl $0xc, 0x48(%rax)
jmp 0x184ff7
movq -0x8(%rbp), %rax
cmpl $0x3, 0x14(%rax)
jne 0x184ec2
movq -0x8(%rbp), %rax
movb $0x1, 0x58(%rax)
movq -0x8(%rbp), %rax
movb $0x1, 0x5a(%rax)
movq -0x8(%rbp), %rax
movl $0xd, 0x48(%rax)
jmp 0x184ff5
movq -0x8(%rbp), %rax
cmpl $0x4, 0x14(%rax)
jne 0x184ee8
movq -0x8(%rbp), %rax
movb $0x1, 0x58(%rax)
movq -0x8(%rbp), %rax
movb $0x1, 0x40(%rax)
movl $0xd, -0x10(%rbp)
jmp 0x184ff3
movq -0x8(%rbp), %rax
cmpl $0x6, 0x14(%rax)
jne 0x184f0e
movq -0x8(%rbp), %rax
movb $0x1, 0x40(%rax)
movq -0x8(%rbp), %rax
movb $0x1, 0x59(%rax)
movl $0xc, -0x10(%rbp)
jmp 0x184ff1
movq -0x8(%rbp), %rax
cmpl $0x5, 0x14(%rax)
jne 0x184f34
movq -0x8(%rbp), %rax
movb $0x1, 0x58(%rax)
movq -0x8(%rbp), %rax
movb $0x1, 0x40(%rax)
movl $0xc, -0x10(%rbp)
jmp 0x184fef
movq -0x8(%rbp), %rax
cmpl $0x7, 0x14(%rax)
jne 0x184f61
movq -0x8(%rbp), %rax
movb $0x1, 0x5b(%rax)
movq -0x8(%rbp), %rax
movl $0xc, 0x48(%rax)
movq -0x8(%rbp), %rax
movl $0xc, 0x44(%rax)
jmp 0x184fed
movq -0x8(%rbp), %rax
cmpl $0x8, 0x14(%rax)
jne 0x184f84
movq -0x8(%rbp), %rax
movb $0x1, 0x59(%rax)
movq -0x8(%rbp), %rax
movb $0x1, 0x40(%rax)
movl $0xe, -0x10(%rbp)
jmp 0x184feb
movq -0x8(%rbp), %rax
cmpl $0x9, 0x14(%rax)
je 0x184f98
movq -0x8(%rbp), %rax
cmpl $0xa, 0x14(%rax)
jne 0x184fb9
movq -0x8(%rbp), %rax
movb $0x1, 0x58(%rax)
movl $0xc, -0x10(%rbp)
movq -0x8(%rbp), %rax
movb $0x1, 0x40(%rax)
movq -0x8(%rbp), %rax
movb $0x1, 0x59(%rax)
jmp 0x184fe9
movq -0x8(%rbp), %rax
cmpl $0xb, 0x14(%rax)
jne 0x184fcc
movl $0xe, -0x10(%rbp)
jmp 0x184fe7
movq -0x8(%rbp), %rax
cmpl $0xc, 0x14(%rax)
jne 0x184fe5
movq -0x8(%rbp), %rax
movb $0x1, 0x58(%rax)
movl $0xa, -0x10(%rbp)
jmp 0x184fe7
jmp 0x184fe9
jmp 0x184feb
jmp 0x184fed
jmp 0x184fef
jmp 0x184ff1
jmp 0x184ff3
jmp 0x184ff5
jmp 0x184ff7
jmp 0x184ff9
movq -0x8(%rbp), %rax
cmpl $0x0, 0x44(%rax)
jne 0x18500e
movq -0x8(%rbp), %rax
movl $0x9, 0x44(%rax)
movq -0x8(%rbp), %rax
cmpl $0x0, 0x48(%rax)
jne 0x18503e
movq -0x8(%rbp), %rax
cmpl $0x0, 0x24(%rax)
je 0x18502e
movq -0x8(%rbp), %rax
movl 0x24(%rax), %eax
movl %eax, -0x18(%rbp)
jmp 0x185034
movl -0x10(%rbp), %eax
movl %eax, -0x18(%rbp)
movl -0x18(%rbp), %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x48(%rax)
movq -0x8(%rbp), %rax
cmpl $0x3, 0x44(%rax)
jb 0x185076
movq -0x8(%rbp), %rax
cmpl $0x10, 0x44(%rax)
ja 0x185076
movq -0x8(%rbp), %rax
cmpl $0x3, 0x48(%rax)
jb 0x185076
movq -0x8(%rbp), %rax
cmpl $0x10, 0x48(%rax)
ja 0x185076
movq -0x8(%rbp), %rax
movl 0x44(%rax), %eax
movq -0x8(%rbp), %rcx
cmpl 0x48(%rcx), %eax
jbe 0x1850a1
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movl 0x44(%rax), %ecx
movq -0x8(%rbp), %rax
movl 0x48(%rax), %r8d
movl $0x9, %esi
leaq 0x525d5(%rip), %rdx     # 0x1d766a
movb $0x0, %al
callq 0x185b00
jmp 0x1855fc
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movl 0x44(%rax), %ecx
movq -0x8(%rbp), %rax
movl 0x48(%rax), %r8d
movl $0x2, %esi
leaq 0x525c8(%rip), %rdx     # 0x1d7688
movb $0x0, %al
callq 0x1848d0
movq -0x8(%rbp), %rax
movl 0x44(%rax), %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x90(%rax)
movq -0x8(%rbp), %rax
movl 0x48(%rax), %ecx
movl $0x1, %eax
shll %cl, %eax
movl %eax, %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0xc8(%rax)
movq -0x8(%rbp), %rax
movq (%rax), %rdi
movq -0x8(%rbp), %rax
movl 0xc8(%rax), %eax
movl %eax, %esi
movl $0x6, %edx
callq 0x15c450
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0xd0(%rax)
movq -0x8(%rbp), %rax
cmpb $0x0, 0x5b(%rax)
je 0x185152
movq -0x8(%rbp), %rax
movq (%rax), %rdi
movq -0x8(%rbp), %rax
movl 0xc8(%rax), %eax
movl %eax, %esi
movl $0x2, %edx
callq 0x15c450
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0xd8(%rax)
movq -0x8(%rbp), %rax
movl 0xc8(%rax), %eax
movl %eax, %ecx
movq -0x8(%rbp), %rax
movq %rcx, 0xe8(%rax)
movq -0x8(%rbp), %rax
movq (%rax), %rdi
movq -0x8(%rbp), %rax
movq 0xe8(%rax), %rsi
callq 0x15b780
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0xf0(%rax)
movq -0x8(%rbp), %rax
cmpl $0x1, 0x14(%rax)
jne 0x1851e0
movq -0x8(%rbp), %rdi
callq 0x185bd0
movq -0x8(%rbp), %rax
cmpb $0x0, 0x41(%rax)
je 0x1851cd
movq -0x8(%rbp), %rax
movq 0xd0(%rax), %rax
movb $0x8, 0x603(%rax)
movq -0x8(%rbp), %rax
movl $0x101, 0xac(%rax)      # imm = 0x101
jmp 0x1851db
movq -0x8(%rbp), %rax
movl $0x100, 0xac(%rax)      # imm = 0x100
jmp 0x1854e4
movq -0x8(%rbp), %rax
cmpl $0x2, 0x14(%rax)
jne 0x1852b6
movq -0x8(%rbp), %rax
movl 0x20(%rax), %ecx
movl $0x1, %eax
shll %cl, %eax
movl %eax, -0x14(%rbp)
movl $0x0, -0xc(%rbp)
movl -0xc(%rbp), %eax
cmpl -0x14(%rbp), %eax
jae 0x18526a
movq -0x8(%rbp), %rax
movq 0xd0(%rax), %rax
movl -0xc(%rbp), %ecx
imulq $0x6, %rcx, %rcx
addq %rcx, %rax
movb $0x1, 0x3(%rax)
cmpl $0xff, -0xc(%rbp)
ja 0x18523b
movl -0xc(%rbp), %eax
movzbl %al, %eax
movl %eax, -0x1c(%rbp)
jmp 0x185242
xorl %eax, %eax
movl %eax, -0x1c(%rbp)
jmp 0x185242
movl -0x1c(%rbp), %eax
movb %al, %cl
movq -0x8(%rbp), %rax
movq 0xd0(%rax), %rax
movl -0xc(%rbp), %edx
imulq $0x6, %rdx, %rdx
addq %rdx, %rax
movb %cl, 0x2(%rax)
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0x185206
movq -0x8(%rbp), %rax
movq 0xd0(%rax), %rax
movl -0x14(%rbp), %ecx
imulq $0x6, %rcx, %rcx
addq %rcx, %rax
movb $0x8, 0x3(%rax)
movq -0x8(%rbp), %rax
movq 0xd0(%rax), %rax
movl -0x14(%rbp), %ecx
addl $0x1, %ecx
movl %ecx, %ecx
imulq $0x6, %rcx, %rcx
addq %rcx, %rax
movb $0x9, 0x3(%rax)
movl -0x14(%rbp), %ecx
addl $0x2, %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0xac(%rax)
jmp 0x1854e2
movq -0x8(%rbp), %rax
cmpl $0x3, 0x14(%rax)
jne 0x1852ee
movq -0x8(%rbp), %rdi
callq 0x185bd0
movq -0x8(%rbp), %rax
movq 0xd0(%rax), %rax
movb $0xf, 0x603(%rax)
movq -0x8(%rbp), %rax
movl $0x101, 0xac(%rax)      # imm = 0x101
jmp 0x1854e0
movq -0x8(%rbp), %rax
cmpl $0x4, 0x14(%rax)
jne 0x185338
movq -0x8(%rbp), %rdi
callq 0x185bd0
movq -0x8(%rbp), %rax
movq 0xd0(%rax), %rax
movb $0x8, 0x603(%rax)
movq -0x8(%rbp), %rax
movq 0xd0(%rax), %rax
movb $0x9, 0x609(%rax)
movq -0x8(%rbp), %rax
movl $0x102, 0xac(%rax)      # imm = 0x102
jmp 0x1854de
movq -0x8(%rbp), %rax
cmpl $0x6, 0x14(%rax)
je 0x18534c
movq -0x8(%rbp), %rax
cmpl $0x5, 0x14(%rax)
jne 0x18538c
movq -0x8(%rbp), %rdi
callq 0x185bd0
movq -0x8(%rbp), %rax
movq 0xd0(%rax), %rax
movb $0x8, 0x603(%rax)
movq -0x8(%rbp), %rax
movq 0xd0(%rax), %rax
movb $0x9, 0x609(%rax)
movq -0x8(%rbp), %rax
movl $0x102, 0xac(%rax)      # imm = 0x102
jmp 0x1854dc
movq -0x8(%rbp), %rax
cmpl $0x8, 0x14(%rax)
jne 0x1853b2
movq -0x8(%rbp), %rdi
callq 0x185bd0
movq -0x8(%rbp), %rax
movl $0x100, 0xac(%rax)      # imm = 0x100
jmp 0x1854da
movq -0x8(%rbp), %rax
cmpl $0x9, 0x14(%rax)
jne 0x1853ea
movq -0x8(%rbp), %rdi
callq 0x185bd0
movq -0x8(%rbp), %rax
movq 0xd0(%rax), %rax
movb $0x0, 0x603(%rax)
movq -0x8(%rbp), %rax
movl $0x101, 0xac(%rax)      # imm = 0x101
jmp 0x1854d8
movq -0x8(%rbp), %rax
cmpl $0xa, 0x14(%rax)
jne 0x185422
movq -0x8(%rbp), %rdi
callq 0x185bd0
movq -0x8(%rbp), %rax
movq 0xd0(%rax), %rax
movb $0x8, 0x603(%rax)
movq -0x8(%rbp), %rax
movl $0x101, 0xac(%rax)      # imm = 0x101
jmp 0x1854d6
movq -0x8(%rbp), %rax
cmpl $0xb, 0x14(%rax)
jne 0x18547b
movq -0x8(%rbp), %rdi
callq 0x185bd0
movq -0x8(%rbp), %rax
movq 0xd0(%rax), %rax
movb $0x9, 0x603(%rax)
movq -0x8(%rbp), %rax
movq 0xd0(%rax), %rax
movb $0xa, 0x609(%rax)
movq -0x8(%rbp), %rax
movq 0xd0(%rax), %rax
movb $0x8, 0x60f(%rax)
movq -0x8(%rbp), %rax
movl $0x103, 0xac(%rax)      # imm = 0x103
jmp 0x1854d4
movq -0x8(%rbp), %rax
cmpl $0xc, 0x14(%rax)
jne 0x1854d2
movq -0x8(%rbp), %rdi
callq 0x185bd0
movq -0x8(%rbp), %rax
movq 0xd0(%rax), %rax
movb $0x0, 0x603(%rax)
movq -0x8(%rbp), %rax
movq 0xd0(%rax), %rax
movb $0xa, 0x609(%rax)
movq -0x8(%rbp), %rax
movq 0xd0(%rax), %rax
movb $0x9, 0x60f(%rax)
movq -0x8(%rbp), %rax
movl $0x103, 0xac(%rax)      # imm = 0x103
jmp 0x1854d4
jmp 0x1854d6
jmp 0x1854d8
jmp 0x1854da
jmp 0x1854dc
jmp 0x1854de
jmp 0x1854e0
jmp 0x1854e2
jmp 0x1854e4
movq -0x8(%rbp), %rax
cmpb $0x0, 0x5b(%rax)
je 0x185525
movl $0x0, -0xc(%rbp)
movl -0xc(%rbp), %eax
movq -0x8(%rbp), %rcx
cmpl 0xc8(%rcx), %eax
jae 0x185523
movq -0x8(%rbp), %rax
movq 0xd8(%rax), %rax
movl -0xc(%rbp), %ecx
movw $0xffff, (%rax,%rcx,2)  # imm = 0xFFFF
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0x1854f5
jmp 0x185525
movq -0x8(%rbp), %rax
movl 0xac(%rax), %eax
movl %eax, -0xc(%rbp)
movl -0xc(%rbp), %eax
movq -0x8(%rbp), %rcx
cmpl 0xc8(%rcx), %eax
jae 0x185565
movq -0x8(%rbp), %rax
movq 0xd0(%rax), %rax
movl -0xc(%rbp), %ecx
imulq $0x6, %rcx, %rcx
addq %rcx, %rax
movb $0x2, 0x3(%rax)
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0x185532
movq -0x8(%rbp), %rax
movl 0xac(%rax), %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0xa8(%rax)
movq -0x8(%rbp), %rax
cmpb $0x0, 0x5b(%rax)
je 0x1855db
movq -0x8(%rbp), %rax
cmpb $0x0, 0x28(%rax)
je 0x1855af
movq -0x8(%rbp), %rax
movq 0xd0(%rax), %rax
movb $0x9, 0x3(%rax)
movq -0x8(%rbp), %rax
movl 0xcc(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0xcc(%rax)
movl $0x0, -0xc(%rbp)
cmpl $0x100, -0xc(%rbp)      # imm = 0x100
jae 0x1855d9
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %eax
movzbl %al, %esi
callq 0x185c30
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0x1855b6
jmp 0x1855db
movq -0x8(%rbp), %rax
movb 0x58(%rax), %cl
movq -0x8(%rbp), %rax
movb %cl, 0xb8(%rax)
movq -0x8(%rbp), %rdi
addq $0xb8, %rdi
callq 0x16a360
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)