// File: /workspace/github_c_makefile_star2_O3/jonof[P]jftekwar/jfbuild/src/engine.c
// Function: drawrooms
void drawrooms(int daposx, int daposy, int daposz,
		 short daang, int dahoriz, short dacursectnum)
{
	int i, j, z, cz, fz, closest;
	short *shortptr1, *shortptr2;

#if defined(DEBUGGINGAIDS)
	if (numscans > MAXWALLSB) debugprintf("damage report: numscans %d exceeded %d\n", numscans, MAXWALLSB);
	if (numbunches > MAXWALLSB) debugprintf("damage report: numbunches %d exceeded %d\n", numbunches, MAXWALLSB);
	if (maskwallcnt > MAXWALLSB) debugprintf("damage report: maskwallcnt %d exceeded %d\n", maskwallcnt, MAXWALLSB);
	if (smostwallcnt > MAXWALLSB) debugprintf("damage report: smostwallcnt %d exceeded %d\n", smostwallcnt, MAXWALLSB);
#endif

	beforedrawrooms = 0;

	globalposx = daposx; globalposy = daposy; globalposz = daposz;
	globalang = (daang&2047);

	globalhoriz = mulscale16(dahoriz-100,xdimenscale)+(ydimen>>1);
	globaluclip = (0-globalhoriz)*xdimscale;
	globaldclip = (ydimen-globalhoriz)*xdimscale;

	i = mulscale16(xdimenscale,viewingrangerecip);
	globalpisibility = mulscale16(parallaxvisibility,i);
	globalvisibility = mulscale16(visibility,i);
	globalhisibility = mulscale16(globalvisibility,xyaspect);
	globalcisibility = mulscale8(globalhisibility,320);

	globalcursectnum = dacursectnum;
	totalclocklock = totalclock;

	cosglobalang = sintable[(globalang+512)&2047];
	singlobalang = sintable[globalang&2047];
	cosviewingrangeglobalang = mulscale16(cosglobalang,viewingrange);
	sinviewingrangeglobalang = mulscale16(singlobalang,viewingrange);

	if ((xyaspect != oxyaspect) || (xdimen != oxdimen) || (viewingrange != oviewingrange))
		dosetaspect();

	//clearbufbyte(&gotsector[0],(int)((numsectors+7)>>3),0L);
	Bmemset(&gotsector[0],0,(int)((numsectors+7)>>3));

	shortptr1 = (short *)&startumost[windowx1];
	shortptr2 = (short *)&startdmost[windowx1];
	i = xdimen-1;
	do
	{
		umost[i] = shortptr1[i]-windowy1;
		dmost[i] = shortptr2[i]-windowy1;
		i--;
	} while (i != 0);
	umost[0] = shortptr1[0]-windowy1;
	dmost[0] = shortptr2[0]-windowy1;

	//============================================================================= //POLYMOST BEGINS
#if USE_POLYMOST
	polymost_drawrooms(); if (rendmode) { return; }
#endif
	//============================================================================= //POLYMOST ENDS

	frameoffset = frameplace + windowy1*bytesperline + windowx1;

	numhits = xdimen; numscans = 0; numbunches = 0;
	maskwallcnt = 0; smostwallcnt = 0; smostcnt = 0; spritesortcnt = 0;

	if (globalcursectnum >= MAXSECTORS)
		globalcursectnum -= MAXSECTORS;
	else
	{
		i = globalcursectnum;
		updatesector(globalposx,globalposy,&globalcursectnum);
		if (globalcursectnum < 0) globalcursectnum = i;
	}

	globparaceilclip = 1;
	globparaflorclip = 1;
	getzsofslope(globalcursectnum,globalposx,globalposy,&cz,&fz);
	if (globalposz < cz) globparaceilclip = 0;
	if (globalposz > fz) globparaflorclip = 0;

	scansector(globalcursectnum);

	if (inpreparemirror)
	{
		inpreparemirror = 0;
		mirrorsx1 = xdimen-1; mirrorsx2 = 0;
		for(i=numscans-1;i>=0;i--)
		{
			if (wall[thewall[i]].nextsector < 0) continue;
			if (xb1[i] < mirrorsx1) mirrorsx1 = xb1[i];
			if (xb2[i] > mirrorsx2) mirrorsx2 = xb2[i];
		}

		for(i=0;i<mirrorsx1;i++)
			if (umost[i] <= dmost[i])
				{ umost[i] = 1; dmost[i] = 0; numhits--; }
		for(i=mirrorsx2+1;i<xdimen;i++)
			if (umost[i] <= dmost[i])
				{ umost[i] = 1; dmost[i] = 0; numhits--; }

		drawalls(0L);
		numbunches--;
		bunchfirst[0] = bunchfirst[numbunches];
		bunchlast[0] = bunchlast[numbunches];

		mirrorsy1 = min(umost[mirrorsx1],umost[mirrorsx2]);
		mirrorsy2 = max(dmost[mirrorsx1],dmost[mirrorsx2]);
	}

	while ((numbunches > 0) && (numhits > 0))
	{
		clearbuf(&tempbuf[0],(int)((numbunches+3)>>2),0L);
		tempbuf[0] = 1;

		closest = 0;              //Almost works, but not quite :(
		for(i=1;i<numbunches;i++)
		{
			if ((j = bunchfront(i,closest)) < 0) continue;
			tempbuf[i] = 1;
			if (j == 0) tempbuf[closest] = 1, closest = i;
		}
		for(i=0;i<numbunches;i++) //Double-check
		{
			if (tempbuf[i]) continue;
			if ((j = bunchfront(i,closest)) < 0) continue;
			tempbuf[i] = 1;
			if (j == 0) tempbuf[closest] = 1, closest = i, i = 0;
		}

		drawalls(closest);

		if (automapping)
		{
			for(z=bunchfirst[closest];z>=0;z=p2[z])
				show2dwall[thewall[z]>>3] |= pow2char[thewall[z]&7];
		}

		numbunches--;
		bunchfirst[closest] = bunchfirst[numbunches];
		bunchlast[closest] = bunchlast[numbunches];
	}
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movl $0x0, 0x7e916(%rip)     # 0xa4788
movl %edi, 0x214bd8(%rip)    # 0x23aa50
movl %esi, 0x214bd6(%rip)    # 0x23aa54
movl %edx, 0x245bdc(%rip)    # 0x26ba60
movl $0x7ff, %edx            # imm = 0x7FF
movl %ecx, %eax
andl %edx, %eax
movw %ax, 0x3a8e9c(%rip)     # 0x3ced30
addl $-0x64, %r8d
movslq 0x255bf9(%rip), %rsi    # 0x27ba98
movslq %r8d, %rdi
imulq %rsi, %rdi
shrq $0x10, %rdi
movl 0x255be3(%rip), %r8d    # 0x27ba94
movl %r8d, %r10d
sarl %r10d
addl %edi, %r10d
movl %r10d, 0x255bdb(%rip)   # 0x27ba9c
movl 0x3a8e6d(%rip), %edi    # 0x3ced34
subl %r10d, %r8d
imull %edi, %r8d
imull %r10d, %edi
negl %edi
movl %edi, 0x24dba6(%rip)    # 0x273a80
movl %r8d, 0x255baf(%rip)    # 0x27ba90
movslq 0x3a8e50(%rip), %rdi    # 0x3ced38
movslq 0x386601(%rip), %r8     # 0x3ac4f0
imulq %rsi, %rdi
shrq $0x10, %rdi
movslq %edi, %rsi
imulq %rsi, %r8
shrq $0x10, %r8
movl %r8d, 0x3a8e33(%rip)    # 0x3ced3c
movslq 0x3865dc(%rip), %rdi    # 0x3ac4ec
imulq %rsi, %rdi
shrq $0x10, %rdi
movl %edi, 0x3a8e22(%rip)    # 0x3ced40
movl 0x337994(%rip), %esi    # 0x35d8b8
movslq %esi, %rsi
movslq %edi, %rdi
imulq %rsi, %rdi
shrq $0x10, %rdi
movl %edi, 0x3a8e0c(%rip)    # 0x3ced44
movslq %edi, %rdi
shlq $0x6, %rdi
leaq (%rdi,%rdi,4), %rdi
shrq $0x8, %rdi
movl %edi, 0x3a8dfb(%rip)    # 0x3ced48
movw %r9w, 0x3a8df7(%rip)    # 0x3ced4c
movl 0x38658d(%rip), %edi    # 0x3ac4e8
movl %edi, 0x214af7(%rip)    # 0x23aa58
addl $0x200, %ecx            # imm = 0x200
andl %edx, %ecx
leaq 0x3a8de0(%rip), %rdx    # 0x3ced50
movswq (%rdx,%rcx,2), %rcx
movl %ecx, 0x249af5(%rip)    # 0x26fa70
movswq (%rdx,%rax,2), %rdx
movl %edx, 0x249af2(%rip)    # 0x26fa78
movslq 0x3a9dc3(%rip), %rax    # 0x3cfd50
imulq %rax, %rcx
shrq $0x10, %rcx
movl %ecx, 0x249ae1(%rip)    # 0x26fa7c
imulq %rax, %rdx
shrq $0x10, %rdx
movl %edx, 0x249acb(%rip)    # 0x26fa74
cmpl 0x7ec99(%rip), %esi     # 0xa4c48
jne 0x25fd8
movl 0x7e879(%rip), %ebp     # 0xa4830
movl 0x7ec8f(%rip), %ecx     # 0xa4c4c
movl 0x7ec8d(%rip), %edx     # 0xa4c50
cmpl %ecx, %ebp
jne 0x26095
cmpl %edx, %eax
jne 0x2607b
jmp 0x2618c
movl %esi, 0x7ec6a(%rip)     # 0xa4c48
shlq $0x6, %rsi
leaq (%rsi,%rsi,4), %rcx
movabsq $0x80000000000, %rax    # imm = 0x80000000000
xorl %edx, %edx
idivq %rcx
movq 0x3f0c8c(%rip), %rdx    # 0x416c88
movslq 0x3f0c8d(%rip), %rsi    # 0x416c90
movl %eax, -0x4(%rdx,%rsi,4)
movl 0x3e1fe3(%rip), %eax    # 0x407ff0
testl %eax, %eax
jle 0x2607b
movl %esi, %esi
leal (,%rax,4), %edi
movl %esi, %r8d
negl %r8d
subq %rdi, %rsi
leal -0x4(,%rax,4), %eax
leaq 0xc(,%rax,4), %r9
leaq (%rdx,%rax,4), %r10
addq $0xc, %r10
addq 0x3f0c3f(%rip), %r9     # 0x416c80
xorl %r11d, %r11d
cmpq %r11, %rsi
je 0x2606e
leal (%r8,%rdi), %ebx
movl $0x10000000, %eax       # imm = 0x10000000
xorl %edx, %edx
idivl %ebx
movl %eax, (%r9,%r11,4)
movl %eax, %edx
negl %edx
cmovnsl %edx, %eax
shlq $0xe, %rax
xorl %edx, %edx
idivq %rcx
movl %eax, (%r10,%r11,4)
leal -0x1(%rdi), %eax
decq %r11
cmpl $0x1, %edi
movl %eax, %edi
jg 0x26044
movl 0x7e7af(%rip), %esi     # 0xa4830
movl 0x7ebc5(%rip), %ecx     # 0xa4c4c
movl 0x3a9cc3(%rip), %eax    # 0x3cfd50
movl 0x7ebbd(%rip), %edx     # 0xa4c50
jmp 0x26097
movl %ebp, %esi
cmpl %ecx, %esi
jne 0x260a5
movl %ecx, %ebp
cmpl %edx, %eax
je 0x2618c
movl %esi, 0x7eba1(%rip)     # 0xa4c4c
movl %eax, 0x7eb9f(%rip)     # 0xa4c50
movslq %esi, %rcx
testl %esi, %esi
jle 0x2614f
shll $0x6, %eax
leal (%rax,%rax,4), %eax
movslq 0x4104d3(%rip), %rdx    # 0x43659c
movslq %eax, %rdi
imulq %rdx, %rdi
movq %rdi, %rax
shrq $0x20, %rax
sarq $0x20, %rdi
imulq %rcx, %rdi
shrq %rdi
movl $0x2800000, %edx        # imm = 0x2800000
subl %edi, %edx
movl %esi, %edi
addq %rdi, %rdi
xorl %r8d, %r8d
leaq 0x40aa48(%rip), %r9     # 0x430b40
leaq 0x434001(%rip), %r10    # 0x45a100
movl %edx, %r11d
sarl $0x10, %r11d
movl %edx, %ebx
movslq %r11d, %r11
andl $0xffff, %ebx           # imm = 0xFFFF
je 0x2612d
movswq 0x2(%r9,%r11,2), %r14
movswq (%r9,%r11,2), %r11
subq %r11, %r14
movl %ebx, %ebx
imulq %r14, %rbx
shrq $0x10, %rbx
jmp 0x26134
movzwl (%r9,%r11,2), %r11d
xorl %ebx, %ebx
addl %eax, %edx
movswl %r11w, %r11d
addl %ebx, %r11d
shrl $0x6, %r11d
movw %r11w, (%r8,%r10)
addq $0x2, %r8
cmpq %r8, %rdi
jne 0x260ff
shlq $0x14, %rcx
movl $0x1, %edi
leaq 0x435da1(%rip), %r8     # 0x45bf00
movq %rcx, %rax
cqto
idivq %rdi
movl %eax, (%r8,%rdi,4)
incq %rdi
cmpq $0x10000, %rdi          # imm = 0x10000
jne 0x2615f
imull $0x834, %esi, %eax      # imm = 0x834
movl %eax, 0x475d7d(%rip)    # 0x49bf00
movb $0x1, 0x475d7a(%rip)    # 0x49bf04
movl %esi, %ebp
movswl 0x3a9dcd(%rip), %eax    # 0x3cff60
addl $0x7, %eax
sarl $0x3, %eax
movslq %eax, %rdx
leaq 0x3a9bbd(%rip), %rdi    # 0x3cfd60
xorl %ebx, %ebx
xorl %esi, %esi
callq 0x62f0
movslq 0x3abbbd(%rip), %rax    # 0x3d1d70
decl %ebp
movzwl 0x3ad9c4(%rip), %ecx    # 0x3d3b80
movslq %ebp, %rdx
leaq (%rdx,%rdx), %rsi
leaq (%rsi,%rax,2), %r8
negq %rdx
leaq 0x3a9d9f(%rip), %r9     # 0x3cff70
leaq 0x3ad9b8(%rip), %r13    # 0x3d3b90
leaq 0x3abba1(%rip), %rdi    # 0x3d1d80
leaq 0x3af7aa(%rip), %r12    # 0x3d5990
leaq (%r8,%rbx,2), %r10
movzwl (%r9,%r10), %r11d
subl %ecx, %r11d
leaq (%rsi,%rbx,2), %r14
movw %r11w, (%r13,%r14)
movzwl (%rdi,%r10), %r10d
subl %ecx, %r10d
movw %r10w, (%r12,%r14)
decq %rbx
cmpq %rbx, %rdx
jne 0x261e6
movzwl (%r9,%rax,2), %edx
subl %ecx, %edx
movw %dx, 0x3ad971(%rip)     # 0x3d3b90
movzwl (%rdi,%rax,2), %eax
subl %ecx, %eax
movw %ax, 0x3af764(%rip)     # 0x3d5990
callq 0x53a53
leaq 0x5d4718(%rip), %rax    # 0x5fa950
cmpl $0x0, (%rax)
je 0x2624c
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x157e5d(%rip), %rax    # 0x17e0b0
movslq 0x3ad926(%rip), %rcx    # 0x3d3b80
leaq 0x158023(%rip), %rdx    # 0x17e284
movslq (%rdx), %rdx
imulq %rcx, %rdx
addq (%rax), %rdx
movslq 0x3abafe(%rip), %rax    # 0x3d1d70
addq %rdx, %rax
movq %rax, 0x3b1514(%rip)    # 0x3d7790
movzwl 0x7e5ad(%rip), %eax     # 0xa4830
movw %ax, 0x3b150e(%rip)     # 0x3d7798
xorl %eax, %eax
movw %ax, 0x3b1507(%rip)     # 0x3d779a
movw %ax, 0x3b1502(%rip)     # 0x3d779c
movw %ax, 0x3b14fd(%rip)     # 0x3d779e
movl %eax, 0x7e9ad(%rip)     # 0xa4c54
movw %ax, 0x3b14f2(%rip)     # 0x3d77a0
movl %eax, 0x3b14f0(%rip)    # 0x3d77a4
movswl 0x3a8a90(%rip), %r14d   # 0x3ced4c
cmpl $0x1000, %r14d          # imm = 0x1000
jl 0x262e2
addl $0xfffff000, %r14d      # imm = 0xFFFFF000
movw %r14w, 0x3a8a78(%rip)   # 0x3ced4c
movl 0x214776(%rip), %ebx    # 0x23aa50
movl 0x214774(%rip), %ebp    # 0x23aa54
jmp 0x26317
movl 0x214768(%rip), %ebx    # 0x23aa50
movl 0x214766(%rip), %ebp    # 0x23aa54
leaq 0x3a8a57(%rip), %rdx    # 0x3ced4c
movl %ebx, %edi
movl %ebp, %esi
callq 0x2668d
movzwl 0x3a8a47(%rip), %eax    # 0x3ced4c
testw %ax, %ax
js 0x2630f
movl %eax, %r14d
jmp 0x26317
movw %r14w, 0x3a8a35(%rip)   # 0x3ced4c
movb $0x1, %al
movb %al, 0x3b1489(%rip)     # 0x3d77a8
movb %al, 0x3b1484(%rip)     # 0x3d77a9
movswl %r14w, %r14d
leaq 0x4(%rsp), %r15
movq %rsp, %r8
movl %r14d, %edi
movl %ebx, %esi
movl %ebp, %edx
movq %r15, %rcx
callq 0x26766
movl 0x24571a(%rip), %eax    # 0x26ba60
cmpl (%r15), %eax
jge 0x26352
movb $0x0, 0x3b1456(%rip)    # 0x3d77a8
cmpl (%rsp), %eax
jle 0x2635e
movb $0x0, 0x3b144b(%rip)    # 0x3d77a9
movl %r14d, %edi
callq 0x2688e
cmpb $0x0, 0x1926d1(%rip)    # 0x1b8a3e
je 0x26409
movb $0x0, 0x1926c4(%rip)    # 0x1b8a3e
movl 0x7e4b0(%rip), %eax     # 0xa4830
leal -0x1(%rax), %esi
movl %esi, 0x3b1423(%rip)    # 0x3d77ac
movl $0x0, 0x3b141d(%rip)    # 0x3d77b0
movswq 0x3b13ff(%rip), %rcx    # 0x3d779a
testq %rcx, %rcx
jle 0x26415
incq %rcx
xorl %r11d, %r11d
leaq 0x2126a3(%rip), %rdi    # 0x238a50
leaq 0x19269c(%rip), %r8     # 0x1b8a50
leaq 0x2456b5(%rip), %r9     # 0x26ba70
leaq 0x2496be(%rip), %r10    # 0x26fa80
movswq -0x4(%rdi,%rcx,2), %rdx
shlq $0x5, %rdx
cmpw $0x0, 0xc(%rdx,%r8)
js 0x263f8
movl -0x8(%r9,%rcx,4), %edx
cmpl %esi, %edx
jge 0x263e6
movl %edx, 0x3b13c8(%rip)    # 0x3d77ac
movl %edx, %esi
movl -0x8(%r10,%rcx,4), %edx
cmpl %r11d, %edx
jle 0x263f8
movl %edx, 0x3b13ba(%rip)    # 0x3d77b0
jmp 0x263fb
movl %r11d, %edx
decq %rcx
movl %edx, %r11d
cmpq $0x1, %rcx
ja 0x263c2
jmp 0x26417
movzwl 0x3b138c(%rip), %eax    # 0x3d779c
jmp 0x26521
xorl %edx, %edx
movzwl 0x3b137a(%rip), %ecx    # 0x3d7798
testl %esi, %esi
jle 0x26455
movl %esi, %esi
addq %rsi, %rsi
xorl %edi, %edi
movzwl (%rdi,%r13), %r8d
cmpw (%rdi,%r12), %r8w
jg 0x2644c
movw $0x1, (%rdi,%r13)
movw $0x0, (%rdi,%r12)
decl %ecx
movw %cx, 0x3b134c(%rip)     # 0x3d7798
addq $0x2, %rdi
cmpq %rdi, %rsi
jne 0x26429
leal 0x1(%rdx), %esi
cmpl %eax, %esi
jge 0x264a0
movslq %edx, %rsi
addq %rsi, %rsi
subl %edx, %eax
movl $0x1, %edx
leaq (%rsi,%rdx,2), %rdi
movzwl (%r13,%rdi), %r8d
cmpw (%r12,%rdi), %r8w
jg 0x26499
leaq (%rdx,%rdx), %rdi
addq %rsi, %rdi
movw $0x1, (%r13,%rdi)
movw $0x0, (%r12,%rdi)
decl %ecx
movw %cx, 0x3b12ff(%rip)     # 0x3d7798
incq %rdx
cmpl %edx, %eax
jne 0x26469
xorl %edi, %edi
callq 0x27059
movzwl 0x3b12ee(%rip), %eax    # 0x3d779c
decl %eax
movw %ax, 0x3b12e5(%rip)     # 0x3d779c
movswq %ax, %rcx
leaq 0x3b12fe(%rip), %rdx    # 0x3d77c0
movzwl (%rdx,%rcx,2), %edx
movw %dx, 0x3b12f3(%rip)     # 0x3d77c0
leaq 0x3b32ec(%rip), %rdx    # 0x3d97c0
movzwl (%rdx,%rcx,2), %ecx
movw %cx, 0x3b32e1(%rip)     # 0x3d97c0
movslq 0x3b12c6(%rip), %rcx    # 0x3d77ac
movzwl (%r13,%rcx,2), %edx
movslq 0x3b12bd(%rip), %rsi    # 0x3d77b0
movzwl (%r13,%rsi,2), %edi
cmpw %di, %dx
cmovll %edx, %edi
movswl %di, %edx
movl %edx, 0x3b52b8(%rip)    # 0x3db7c0
movzwl (%r12,%rcx,2), %ecx
movzwl (%r12,%rsi,2), %edx
cmpw %dx, %cx
cmovgl %ecx, %edx
movswl %dx, %ecx
movl %ecx, 0x3b52a3(%rip)    # 0x3db7c4
testw %ax, %ax
jle 0x2623d
cmpw $0x0, 0x3b1266(%rip)    # 0x3d7798
jle 0x2623d
leaq 0x3b5291(%rip), %rbx    # 0x3db7d0
leaq 0x3b928a(%rip), %r13    # 0x3df7d0
addl $0x3, %eax
movzwl %ax, %esi
shrl $0x2, %esi
xorl %ebp, %ebp
movq %rbx, %rdi
xorl %edx, %edx
callq 0x4d2d8
movb $0x1, 0x3b526e(%rip)    # 0x3db7d0
movswl 0x3b1232(%rip), %r12d   # 0x3d779c
cmpl $0x2, %r12d
jl 0x265a2
movl %r12d, %r15d
xorl %ebp, %ebp
movl $0x1, %r14d
movl %r14d, %edi
movl %ebp, %esi
callq 0x29b51
testl %eax, %eax
js 0x2659a
movb $0x1, (%r14,%rbx)
jne 0x2659a
movslq %ebp, %rax
movb $0x1, (%rax,%rbx)
movl %r14d, %ebp
incq %r14
cmpq %r14, %r15
jne 0x2657b
testw %r12w, %r12w
jle 0x265e3
xorl %r14d, %r14d
movslq %r14d, %r15
cmpb $0x0, (%r15,%rbx)
je 0x265bf
incl %r14d
cmpl %r12d, %r14d
jl 0x265ab
jmp 0x265e3
movl %r14d, %edi
movl %ebp, %esi
callq 0x29b51
testl %eax, %eax
js 0x265b5
movb $0x1, (%r15,%rbx)
jne 0x265b5
movslq %ebp, %rax
movb $0x1, (%rax,%rbx)
movl %r14d, %ebp
xorl %r14d, %r14d
jmp 0x265b5
movl %ebp, %edi
callq 0x27059
cmpb $0x0, 0x385eef(%rip)    # 0x3ac4e0
movslq %ebp, %rcx
leaq 0x212455(%rip), %rdi    # 0x238a50
leaq 0x7e19e(%rip), %r8      # 0xa47a0
leaq 0x3856d7(%rip), %r9     # 0x3abce0
je 0x2663f
leaq 0x3b11ae(%rip), %rax    # 0x3d77c0
movzwl (%rax,%rcx,2), %eax
testw %ax, %ax
js 0x2663f
movzwl %ax, %eax
addl %eax, %eax
movswq (%rax,%rdi), %rdx
movl %edx, %esi
andl $0x7, %esi
movb (%rsi,%r8), %sil
sarl $0x3, %edx
movslq %edx, %rdx
orb %sil, (%rdx,%r9)
movzwl (%rax,%r13), %eax
jmp 0x26616
movzwl 0x3b1156(%rip), %eax    # 0x3d779c
decl %eax
movw %ax, 0x3b114d(%rip)     # 0x3d779c
movswq %ax, %rdx
leaq 0x3b1166(%rip), %rdi    # 0x3d77c0
movzwl (%rdi,%rdx,2), %esi
movw %si, (%rdi,%rcx,2)
leaq 0x3b3157(%rip), %rsi    # 0x3d97c0
movzwl (%rsi,%rdx,2), %edx
movw %dx, (%rsi,%rcx,2)
testw %ax, %ax
jle 0x2623d
cmpw $0x0, 0x3b1116(%rip)    # 0x3d7798
jg 0x26546
jmp 0x2623d