// File: /workspace/github_c_makefile_star2_O0/jonof[P]jftekwar/jfbuild/src/engine.c
// Function: loadboard
int loadboard(char *filename, char fromwhere, int *daposx, int *daposy, int *daposz,
			 short *daang, short *dacursectnum)
{
	short fil, i, numsprites;
	short maxsectors, maxwalls, maxsprites;

	i = strlen(filename)-1;
	if ((unsigned char)filename[i] == 255) { filename[i] = 0; fromwhere = 1; }	// JBF 20040119: "compatibility"
	if ((fil = kopen4load(filename,fromwhere)) == -1)
		{ mapversion = 7L; return(-1); }

	kread(fil,&mapversion,4); mapversion = B_LITTLE32(mapversion);
	if (mapversion == 7)
	{
		maxsectors = MAXSECTORSV7;
		maxwalls = MAXWALLSV7;
		maxsprites = MAXSPRITESV7;
	}
	else if (mapversion == 8)
	{
		maxsectors = MAXSECTORSV8;
		maxwalls = MAXWALLSV8;
		maxsprites = MAXSPRITESV8;
	}
	else
	{
		kclose(fil);
		return(-2);
	}

	/*
	// Enable this for doing map checksum tests
	clearbufbyte(&wall,   sizeof(wall),   0);
	clearbufbyte(&sector, sizeof(sector), 0);
	clearbufbyte(&sprite, sizeof(sprite), 0);
	*/

	initspritelists();

	clearbuf(&show2dsector[0],(int)((MAXSECTORS+3)>>5),0L);
	clearbuf(&show2dsprite[0],(int)((MAXSPRITES+3)>>5),0L);
	clearbuf(&show2dwall[0],(int)((MAXWALLS+3)>>5),0L);

	kread(fil,daposx,4); *daposx = B_LITTLE32(*daposx);
	kread(fil,daposy,4); *daposy = B_LITTLE32(*daposy);
	kread(fil,daposz,4); *daposz = B_LITTLE32(*daposz);
	kread(fil,daang,2);  *daang  = B_LITTLE16(*daang);
	kread(fil,dacursectnum,2); *dacursectnum = B_LITTLE16(*dacursectnum);

	kread(fil,&numsectors,2); numsectors = B_LITTLE16(numsectors);
	if (numsectors > maxsectors) { kclose(fil); return(-2); }
	kread(fil,&sector[0],sizeof(sectortype)*numsectors);
	for (i=numsectors-1; i>=0; i--) {
		sector[i].wallptr       = B_LITTLE16(sector[i].wallptr);
		sector[i].wallnum       = B_LITTLE16(sector[i].wallnum);
		sector[i].ceilingz      = B_LITTLE32(sector[i].ceilingz);
		sector[i].floorz        = B_LITTLE32(sector[i].floorz);
		sector[i].ceilingstat   = B_LITTLE16(sector[i].ceilingstat);
		sector[i].floorstat     = B_LITTLE16(sector[i].floorstat);
		sector[i].ceilingpicnum = B_LITTLE16(sector[i].ceilingpicnum);
		sector[i].ceilingheinum = B_LITTLE16(sector[i].ceilingheinum);
		sector[i].floorpicnum   = B_LITTLE16(sector[i].floorpicnum);
		sector[i].floorheinum   = B_LITTLE16(sector[i].floorheinum);
		sector[i].lotag         = B_LITTLE16(sector[i].lotag);
		sector[i].hitag         = B_LITTLE16(sector[i].hitag);
		sector[i].extra         = B_LITTLE16(sector[i].extra);
	}

	kread(fil,&numwalls,2); numwalls = B_LITTLE16(numwalls);
	if (numwalls > maxwalls) { kclose(fil); return(-2); }
	kread(fil,&wall[0],sizeof(walltype)*numwalls);
	for (i=numwalls-1; i>=0; i--) {
		wall[i].x          = B_LITTLE32(wall[i].x);
		wall[i].y          = B_LITTLE32(wall[i].y);
		wall[i].point2     = B_LITTLE16(wall[i].point2);
		wall[i].nextwall   = B_LITTLE16(wall[i].nextwall);
		wall[i].nextsector = B_LITTLE16(wall[i].nextsector);
		wall[i].cstat      = B_LITTLE16(wall[i].cstat);
		wall[i].picnum     = B_LITTLE16(wall[i].picnum);
		wall[i].overpicnum = B_LITTLE16(wall[i].overpicnum);
		wall[i].lotag      = B_LITTLE16(wall[i].lotag);
		wall[i].hitag      = B_LITTLE16(wall[i].hitag);
		wall[i].extra      = B_LITTLE16(wall[i].extra);
	}

	kread(fil,&numsprites,2); numsprites = B_LITTLE16(numsprites);
	if (numsprites > maxsprites) { kclose(fil); return(-2); }
	kread(fil,&sprite[0],sizeof(spritetype)*numsprites);
	for (i=numsprites-1; i>=0; i--) {
		sprite[i].x       = B_LITTLE32(sprite[i].x);
		sprite[i].y       = B_LITTLE32(sprite[i].y);
		sprite[i].z       = B_LITTLE32(sprite[i].z);
		sprite[i].cstat   = B_LITTLE16(sprite[i].cstat);
		sprite[i].picnum  = B_LITTLE16(sprite[i].picnum);
		sprite[i].sectnum = B_LITTLE16(sprite[i].sectnum);
		sprite[i].statnum = B_LITTLE16(sprite[i].statnum);
		sprite[i].ang     = B_LITTLE16(sprite[i].ang);
		sprite[i].owner   = B_LITTLE16(sprite[i].owner);
		sprite[i].xvel    = B_LITTLE16(sprite[i].xvel);
		sprite[i].yvel    = B_LITTLE16(sprite[i].yvel);
		sprite[i].zvel    = B_LITTLE16(sprite[i].zvel);
		sprite[i].lotag   = B_LITTLE16(sprite[i].lotag);
		sprite[i].hitag   = B_LITTLE16(sprite[i].hitag);
		sprite[i].extra   = B_LITTLE16(sprite[i].extra);
	}

	for(i=0;i<numsprites;i++) {
		if ((sprite[i].cstat & 48) == 48) sprite[i].cstat &= ~48;
		insertsprite(sprite[i].sectnum,sprite[i].statnum);
	}

		//Must be after loading sectors, etc!
	updatesector(*daposx,*daposy,dacursectnum);

	kclose(fil);

#if USE_POLYMOST && USE_OPENGL
	memset(spriteext, 0, sizeof(spriteext));
#endif
	guniqhudid = 0;

	return(0);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movb %sil, %al
movq 0x10(%rbp), %rsi
movq %rdi, -0x10(%rbp)
movb %al, -0x11(%rbp)
movq %rdx, -0x20(%rbp)
movq %rcx, -0x28(%rbp)
movq %r8, -0x30(%rbp)
movq %r9, -0x38(%rbp)
movq -0x10(%rbp), %rdi
callq 0x63d0
subq $0x1, %rax
movw %ax, -0x3c(%rbp)
movq -0x10(%rbp), %rax
movswq -0x3c(%rbp), %rcx
movzbl (%rax,%rcx), %eax
cmpl $0xff, %eax
jne 0x4578c
movq -0x10(%rbp), %rax
movswq -0x3c(%rbp), %rcx
movb $0x0, (%rax,%rcx)
movb $0x1, -0x11(%rbp)
movq -0x10(%rbp), %rdi
movsbl -0x11(%rbp), %esi
callq 0x2fee0
movw %ax, -0x3a(%rbp)
cwtl
cmpl $-0x1, %eax
jne 0x457b9
movl $0x7, 0x9b4db(%rip)     # 0xe0c88
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x4626e
movswl -0x3a(%rbp), %edi
leaq 0x9b4c4(%rip), %rsi     # 0xe0c88
movl $0x4, %edx
callq 0x302b0
movl 0x9b4b4(%rip), %eax     # 0xe0c88
movl %eax, 0x9b4ae(%rip)     # 0xe0c88
cmpl $0x7, 0x9b4a7(%rip)     # 0xe0c88
jne 0x457f7
movw $0x400, -0x40(%rbp)     # imm = 0x400
movw $0x2000, -0x42(%rbp)    # imm = 0x2000
movw $0x1000, -0x44(%rbp)    # imm = 0x1000
jmp 0x4582b
cmpl $0x8, 0x9b48a(%rip)     # 0xe0c88
jne 0x45814
movw $0x1000, -0x40(%rbp)    # imm = 0x1000
movw $0x4000, -0x42(%rbp)    # imm = 0x4000
movw $0x4000, -0x44(%rbp)    # imm = 0x4000
jmp 0x45829
movswl -0x3a(%rbp), %edi
callq 0x30960
movl $0xfffffffe, -0x4(%rbp) # imm = 0xFFFFFFFE
jmp 0x4626e
jmp 0x4582b
callq 0x385d0
leaq 0x3a2609(%rip), %rdi    # 0x3e7e40
movl $0x80, %esi
xorl %edx, %edx
callq 0x6ed50
leaq 0x3a27f6(%rip), %rdi    # 0x3e8040
movl $0x200, %esi            # imm = 0x200
xorl %edx, %edx
callq 0x6ed50
leaq 0x3a2fe3(%rip), %rdi    # 0x3e8840
movl $0x200, %esi            # imm = 0x200
xorl %edx, %edx
callq 0x6ed50
movswl -0x3a(%rbp), %edi
movq -0x20(%rbp), %rsi
movl $0x4, %edx
callq 0x302b0
movq -0x20(%rbp), %rax
movl (%rax), %ecx
movq -0x20(%rbp), %rax
movl %ecx, (%rax)
movswl -0x3a(%rbp), %edi
movq -0x28(%rbp), %rsi
movl $0x4, %edx
callq 0x302b0
movq -0x28(%rbp), %rax
movl (%rax), %ecx
movq -0x28(%rbp), %rax
movl %ecx, (%rax)
movswl -0x3a(%rbp), %edi
movq -0x30(%rbp), %rsi
movl $0x4, %edx
callq 0x302b0
movq -0x30(%rbp), %rax
movl (%rax), %ecx
movq -0x30(%rbp), %rax
movl %ecx, (%rax)
movswl -0x3a(%rbp), %edi
movq -0x38(%rbp), %rsi
movl $0x2, %edx
callq 0x302b0
movq -0x38(%rbp), %rax
movw (%rax), %cx
movq -0x38(%rbp), %rax
movw %cx, (%rax)
movswl -0x3a(%rbp), %edi
movq 0x10(%rbp), %rsi
movl $0x2, %edx
callq 0x302b0
movq 0x10(%rbp), %rax
movw (%rax), %cx
movq 0x10(%rbp), %rax
movw %cx, (%rax)
movswl -0x3a(%rbp), %edi
leaq 0x3c71b2(%rip), %rsi    # 0x40cac0
movl $0x2, %edx
callq 0x302b0
movw 0x3c71a1(%rip), %ax     # 0x40cac0
movw %ax, 0x3c719a(%rip)     # 0x40cac0
movswl 0x3c7193(%rip), %eax    # 0x40cac0
movswl -0x40(%rbp), %ecx
cmpl %ecx, %eax
jle 0x4594a
movswl -0x3a(%rbp), %edi
callq 0x30960
movl $0xfffffffe, -0x4(%rbp) # imm = 0xFFFFFFFE
jmp 0x4626e
movswl -0x3a(%rbp), %edi
movswq 0x3c716a(%rip), %rax    # 0x40cac0
imulq $0x28, %rax, %rax
movl %eax, %edx
leaq 0x23ac5d(%rip), %rsi    # 0x2805c0
callq 0x302b0
movswl 0x3c7151(%rip), %eax    # 0x40cac0
subl $0x1, %eax
movw %ax, -0x3c(%rbp)
movswl -0x3c(%rbp), %eax
cmpl $0x0, %eax
jl 0x45be4
movswq -0x3c(%rbp), %rcx
leaq 0x23ac31(%rip), %rax    # 0x2805c0
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movw (%rax), %cx
movswq -0x3c(%rbp), %rdx
leaq 0x23ac1b(%rip), %rax    # 0x2805c0
imulq $0x28, %rdx, %rdx
addq %rdx, %rax
movw %cx, (%rax)
movswq -0x3c(%rbp), %rcx
leaq 0x23ac05(%rip), %rax    # 0x2805c0
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movw 0x2(%rax), %cx
movswq -0x3c(%rbp), %rdx
leaq 0x23abee(%rip), %rax    # 0x2805c0
imulq $0x28, %rdx, %rdx
addq %rdx, %rax
movw %cx, 0x2(%rax)
movswq -0x3c(%rbp), %rcx
leaq 0x23abd7(%rip), %rax    # 0x2805c0
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movl 0x4(%rax), %ecx
movswq -0x3c(%rbp), %rdx
leaq 0x23abc1(%rip), %rax    # 0x2805c0
imulq $0x28, %rdx, %rdx
addq %rdx, %rax
movl %ecx, 0x4(%rax)
movswq -0x3c(%rbp), %rcx
leaq 0x23abab(%rip), %rax    # 0x2805c0
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movl 0x8(%rax), %ecx
movswq -0x3c(%rbp), %rdx
leaq 0x23ab95(%rip), %rax    # 0x2805c0
imulq $0x28, %rdx, %rdx
addq %rdx, %rax
movl %ecx, 0x8(%rax)
movswq -0x3c(%rbp), %rcx
leaq 0x23ab7f(%rip), %rax    # 0x2805c0
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movw 0xc(%rax), %cx
movswq -0x3c(%rbp), %rdx
leaq 0x23ab68(%rip), %rax    # 0x2805c0
imulq $0x28, %rdx, %rdx
addq %rdx, %rax
movw %cx, 0xc(%rax)
movswq -0x3c(%rbp), %rcx
leaq 0x23ab51(%rip), %rax    # 0x2805c0
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movw 0xe(%rax), %cx
movswq -0x3c(%rbp), %rdx
leaq 0x23ab3a(%rip), %rax    # 0x2805c0
imulq $0x28, %rdx, %rdx
addq %rdx, %rax
movw %cx, 0xe(%rax)
movswq -0x3c(%rbp), %rcx
leaq 0x23ab23(%rip), %rax    # 0x2805c0
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movw 0x10(%rax), %cx
movswq -0x3c(%rbp), %rdx
leaq 0x23ab0c(%rip), %rax    # 0x2805c0
imulq $0x28, %rdx, %rdx
addq %rdx, %rax
movw %cx, 0x10(%rax)
movswq -0x3c(%rbp), %rcx
leaq 0x23aaf5(%rip), %rax    # 0x2805c0
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movw 0x12(%rax), %cx
movswq -0x3c(%rbp), %rdx
leaq 0x23aade(%rip), %rax    # 0x2805c0
imulq $0x28, %rdx, %rdx
addq %rdx, %rax
movw %cx, 0x12(%rax)
movswq -0x3c(%rbp), %rcx
leaq 0x23aac7(%rip), %rax    # 0x2805c0
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movw 0x18(%rax), %cx
movswq -0x3c(%rbp), %rdx
leaq 0x23aab0(%rip), %rax    # 0x2805c0
imulq $0x28, %rdx, %rdx
addq %rdx, %rax
movw %cx, 0x18(%rax)
movswq -0x3c(%rbp), %rcx
leaq 0x23aa99(%rip), %rax    # 0x2805c0
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movw 0x1a(%rax), %cx
movswq -0x3c(%rbp), %rdx
leaq 0x23aa82(%rip), %rax    # 0x2805c0
imulq $0x28, %rdx, %rdx
addq %rdx, %rax
movw %cx, 0x1a(%rax)
movswq -0x3c(%rbp), %rcx
leaq 0x23aa6b(%rip), %rax    # 0x2805c0
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movw 0x22(%rax), %cx
movswq -0x3c(%rbp), %rdx
leaq 0x23aa54(%rip), %rax    # 0x2805c0
imulq $0x28, %rdx, %rdx
addq %rdx, %rax
movw %cx, 0x22(%rax)
movswq -0x3c(%rbp), %rcx
leaq 0x23aa3d(%rip), %rax    # 0x2805c0
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movw 0x24(%rax), %cx
movswq -0x3c(%rbp), %rdx
leaq 0x23aa26(%rip), %rax    # 0x2805c0
imulq $0x28, %rdx, %rdx
addq %rdx, %rax
movw %cx, 0x24(%rax)
movswq -0x3c(%rbp), %rcx
leaq 0x23aa0f(%rip), %rax    # 0x2805c0
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movw 0x26(%rax), %cx
movswq -0x3c(%rbp), %rdx
leaq 0x23a9f8(%rip), %rax    # 0x2805c0
imulq $0x28, %rdx, %rdx
addq %rdx, %rax
movw %cx, 0x26(%rax)
movw -0x3c(%rbp), %ax
addw $-0x1, %ax
movw %ax, -0x3c(%rbp)
jmp 0x45976
movswl -0x3a(%rbp), %edi
leaq 0x40bdd9(%rip), %rsi    # 0x4519c8
movl $0x2, %edx
callq 0x302b0
movw 0x40bdc8(%rip), %ax     # 0x4519c8
movw %ax, 0x40bdc1(%rip)     # 0x4519c8
movswl 0x40bdba(%rip), %eax    # 0x4519c8
movswl -0x42(%rbp), %ecx
cmpl %ecx, %eax
jle 0x45c2b
movswl -0x3a(%rbp), %edi
callq 0x30960
movl $0xfffffffe, -0x4(%rbp) # imm = 0xFFFFFFFE
jmp 0x4626e
movswl -0x3a(%rbp), %edi
movswq 0x40bd91(%rip), %rax    # 0x4519c8
shlq $0x5, %rax
movl %eax, %edx
leaq 0x1af96c(%rip), %rsi    # 0x1f55b0
callq 0x302b0
movswl 0x40bd78(%rip), %eax    # 0x4519c8
subl $0x1, %eax
movw %ax, -0x3c(%rbp)
movswl -0x3c(%rbp), %eax
cmpl $0x0, %eax
jl 0x45e69
movswq -0x3c(%rbp), %rcx
leaq 0x1af940(%rip), %rax    # 0x1f55b0
shlq $0x5, %rcx
addq %rcx, %rax
movl (%rax), %ecx
movswq -0x3c(%rbp), %rdx
leaq 0x1af92b(%rip), %rax    # 0x1f55b0
shlq $0x5, %rdx
addq %rdx, %rax
movl %ecx, (%rax)
movswq -0x3c(%rbp), %rcx
leaq 0x1af916(%rip), %rax    # 0x1f55b0
shlq $0x5, %rcx
addq %rcx, %rax
movl 0x4(%rax), %ecx
movswq -0x3c(%rbp), %rdx
leaq 0x1af900(%rip), %rax    # 0x1f55b0
shlq $0x5, %rdx
addq %rdx, %rax
movl %ecx, 0x4(%rax)
movswq -0x3c(%rbp), %rcx
leaq 0x1af8ea(%rip), %rax    # 0x1f55b0
shlq $0x5, %rcx
addq %rcx, %rax
movw 0x8(%rax), %cx
movswq -0x3c(%rbp), %rdx
leaq 0x1af8d3(%rip), %rax    # 0x1f55b0
shlq $0x5, %rdx
addq %rdx, %rax
movw %cx, 0x8(%rax)
movswq -0x3c(%rbp), %rcx
leaq 0x1af8bc(%rip), %rax    # 0x1f55b0
shlq $0x5, %rcx
addq %rcx, %rax
movw 0xa(%rax), %cx
movswq -0x3c(%rbp), %rdx
leaq 0x1af8a5(%rip), %rax    # 0x1f55b0
shlq $0x5, %rdx
addq %rdx, %rax
movw %cx, 0xa(%rax)
movswq -0x3c(%rbp), %rcx
leaq 0x1af88e(%rip), %rax    # 0x1f55b0
shlq $0x5, %rcx
addq %rcx, %rax
movw 0xc(%rax), %cx
movswq -0x3c(%rbp), %rdx
leaq 0x1af877(%rip), %rax    # 0x1f55b0
shlq $0x5, %rdx
addq %rdx, %rax
movw %cx, 0xc(%rax)
movswq -0x3c(%rbp), %rcx
leaq 0x1af860(%rip), %rax    # 0x1f55b0
shlq $0x5, %rcx
addq %rcx, %rax
movw 0xe(%rax), %cx
movswq -0x3c(%rbp), %rdx
leaq 0x1af849(%rip), %rax    # 0x1f55b0
shlq $0x5, %rdx
addq %rdx, %rax
movw %cx, 0xe(%rax)
movswq -0x3c(%rbp), %rcx
leaq 0x1af832(%rip), %rax    # 0x1f55b0
shlq $0x5, %rcx
addq %rcx, %rax
movw 0x10(%rax), %cx
movswq -0x3c(%rbp), %rdx
leaq 0x1af81b(%rip), %rax    # 0x1f55b0
shlq $0x5, %rdx
addq %rdx, %rax
movw %cx, 0x10(%rax)
movswq -0x3c(%rbp), %rcx
leaq 0x1af804(%rip), %rax    # 0x1f55b0
shlq $0x5, %rcx
addq %rcx, %rax
movw 0x12(%rax), %cx
movswq -0x3c(%rbp), %rdx
leaq 0x1af7ed(%rip), %rax    # 0x1f55b0
shlq $0x5, %rdx
addq %rdx, %rax
movw %cx, 0x12(%rax)
movswq -0x3c(%rbp), %rcx
leaq 0x1af7d6(%rip), %rax    # 0x1f55b0
shlq $0x5, %rcx
addq %rcx, %rax
movw 0x1a(%rax), %cx
movswq -0x3c(%rbp), %rdx
leaq 0x1af7bf(%rip), %rax    # 0x1f55b0
shlq $0x5, %rdx
addq %rdx, %rax
movw %cx, 0x1a(%rax)
movswq -0x3c(%rbp), %rcx
leaq 0x1af7a8(%rip), %rax    # 0x1f55b0
shlq $0x5, %rcx
addq %rcx, %rax
movw 0x1c(%rax), %cx
movswq -0x3c(%rbp), %rdx
leaq 0x1af791(%rip), %rax    # 0x1f55b0
shlq $0x5, %rdx
addq %rdx, %rax
movw %cx, 0x1c(%rax)
movswq -0x3c(%rbp), %rcx
leaq 0x1af77a(%rip), %rax    # 0x1f55b0
shlq $0x5, %rcx
addq %rcx, %rax
movw 0x1e(%rax), %cx
movswq -0x3c(%rbp), %rdx
leaq 0x1af763(%rip), %rax    # 0x1f55b0
shlq $0x5, %rdx
addq %rdx, %rax
movw %cx, 0x1e(%rax)
movw -0x3c(%rbp), %ax
addw $-0x1, %ax
movw %ax, -0x3c(%rbp)
jmp 0x45c57
movswl -0x3a(%rbp), %edi
leaq -0x3e(%rbp), %rsi
movl $0x2, %edx
callq 0x302b0
movw -0x3e(%rbp), %ax
movw %ax, -0x3e(%rbp)
movswl -0x3e(%rbp), %eax
movswl -0x44(%rbp), %ecx
cmpl %ecx, %eax
jle 0x45ea4
movswl -0x3a(%rbp), %edi
callq 0x30960
movl $0xfffffffe, -0x4(%rbp) # imm = 0xFFFFFFFE
jmp 0x4626e
movswl -0x3a(%rbp), %edi
movswq -0x3e(%rbp), %rax
imulq $0x2c, %rax, %rax
movl %eax, %edx
leaq 0x273956(%rip), %rsi    # 0x2b9810
callq 0x302b0
movswl -0x3e(%rbp), %eax
subl $0x1, %eax
movw %ax, -0x3c(%rbp)
movswl -0x3c(%rbp), %eax
cmpl $0x0, %eax
jl 0x46192
movswq -0x3c(%rbp), %rcx
leaq 0x27392d(%rip), %rax    # 0x2b9810
imulq $0x2c, %rcx, %rcx
addq %rcx, %rax
movl (%rax), %ecx
movswq -0x3c(%rbp), %rdx
leaq 0x273918(%rip), %rax    # 0x2b9810
imulq $0x2c, %rdx, %rdx
addq %rdx, %rax
movl %ecx, (%rax)
movswq -0x3c(%rbp), %rcx
leaq 0x273903(%rip), %rax    # 0x2b9810
imulq $0x2c, %rcx, %rcx
addq %rcx, %rax
movl 0x4(%rax), %ecx
movswq -0x3c(%rbp), %rdx
leaq 0x2738ed(%rip), %rax    # 0x2b9810
imulq $0x2c, %rdx, %rdx
addq %rdx, %rax
movl %ecx, 0x4(%rax)
movswq -0x3c(%rbp), %rcx
leaq 0x2738d7(%rip), %rax    # 0x2b9810
imulq $0x2c, %rcx, %rcx
addq %rcx, %rax
movl 0x8(%rax), %ecx
movswq -0x3c(%rbp), %rdx
leaq 0x2738c1(%rip), %rax    # 0x2b9810
imulq $0x2c, %rdx, %rdx
addq %rdx, %rax
movl %ecx, 0x8(%rax)
movswq -0x3c(%rbp), %rcx
leaq 0x2738ab(%rip), %rax    # 0x2b9810
imulq $0x2c, %rcx, %rcx
addq %rcx, %rax
movw 0xc(%rax), %cx
movswq -0x3c(%rbp), %rdx
leaq 0x273894(%rip), %rax    # 0x2b9810
imulq $0x2c, %rdx, %rdx
addq %rdx, %rax
movw %cx, 0xc(%rax)
movswq -0x3c(%rbp), %rcx
leaq 0x27387d(%rip), %rax    # 0x2b9810
imulq $0x2c, %rcx, %rcx
addq %rcx, %rax
movw 0xe(%rax), %cx
movswq -0x3c(%rbp), %rdx
leaq 0x273866(%rip), %rax    # 0x2b9810
imulq $0x2c, %rdx, %rdx
addq %rdx, %rax
movw %cx, 0xe(%rax)
movswq -0x3c(%rbp), %rcx
leaq 0x27384f(%rip), %rax    # 0x2b9810
imulq $0x2c, %rcx, %rcx
addq %rcx, %rax
movw 0x18(%rax), %cx
movswq -0x3c(%rbp), %rdx
leaq 0x273838(%rip), %rax    # 0x2b9810
imulq $0x2c, %rdx, %rdx
addq %rdx, %rax
movw %cx, 0x18(%rax)
movswq -0x3c(%rbp), %rcx
leaq 0x273821(%rip), %rax    # 0x2b9810
imulq $0x2c, %rcx, %rcx
addq %rcx, %rax
movw 0x1a(%rax), %cx
movswq -0x3c(%rbp), %rdx
leaq 0x27380a(%rip), %rax    # 0x2b9810
imulq $0x2c, %rdx, %rdx
addq %rdx, %rax
movw %cx, 0x1a(%rax)
movswq -0x3c(%rbp), %rcx
leaq 0x2737f3(%rip), %rax    # 0x2b9810
imulq $0x2c, %rcx, %rcx
addq %rcx, %rax
movw 0x1c(%rax), %cx
movswq -0x3c(%rbp), %rdx
leaq 0x2737dc(%rip), %rax    # 0x2b9810
imulq $0x2c, %rdx, %rdx
addq %rdx, %rax
movw %cx, 0x1c(%rax)
movswq -0x3c(%rbp), %rcx
leaq 0x2737c5(%rip), %rax    # 0x2b9810
imulq $0x2c, %rcx, %rcx
addq %rcx, %rax
movw 0x1e(%rax), %cx
movswq -0x3c(%rbp), %rdx
leaq 0x2737ae(%rip), %rax    # 0x2b9810
imulq $0x2c, %rdx, %rdx
addq %rdx, %rax
movw %cx, 0x1e(%rax)
movswq -0x3c(%rbp), %rcx
leaq 0x273797(%rip), %rax    # 0x2b9810
imulq $0x2c, %rcx, %rcx
addq %rcx, %rax
movw 0x20(%rax), %cx
movswq -0x3c(%rbp), %rdx
leaq 0x273780(%rip), %rax    # 0x2b9810
imulq $0x2c, %rdx, %rdx
addq %rdx, %rax
movw %cx, 0x20(%rax)
movswq -0x3c(%rbp), %rcx
leaq 0x273769(%rip), %rax    # 0x2b9810
imulq $0x2c, %rcx, %rcx
addq %rcx, %rax
movw 0x22(%rax), %cx
movswq -0x3c(%rbp), %rdx
leaq 0x273752(%rip), %rax    # 0x2b9810
imulq $0x2c, %rdx, %rdx
addq %rdx, %rax
movw %cx, 0x22(%rax)
movswq -0x3c(%rbp), %rcx
leaq 0x27373b(%rip), %rax    # 0x2b9810
imulq $0x2c, %rcx, %rcx
addq %rcx, %rax
movw 0x24(%rax), %cx
movswq -0x3c(%rbp), %rdx
leaq 0x273724(%rip), %rax    # 0x2b9810
imulq $0x2c, %rdx, %rdx
addq %rdx, %rax
movw %cx, 0x24(%rax)
movswq -0x3c(%rbp), %rcx
leaq 0x27370d(%rip), %rax    # 0x2b9810
imulq $0x2c, %rcx, %rcx
addq %rcx, %rax
movw 0x26(%rax), %cx
movswq -0x3c(%rbp), %rdx
leaq 0x2736f6(%rip), %rax    # 0x2b9810
imulq $0x2c, %rdx, %rdx
addq %rdx, %rax
movw %cx, 0x26(%rax)
movswq -0x3c(%rbp), %rcx
leaq 0x2736df(%rip), %rax    # 0x2b9810
imulq $0x2c, %rcx, %rcx
addq %rcx, %rax
movw 0x28(%rax), %cx
movswq -0x3c(%rbp), %rdx
leaq 0x2736c8(%rip), %rax    # 0x2b9810
imulq $0x2c, %rdx, %rdx
addq %rdx, %rax
movw %cx, 0x28(%rax)
movswq -0x3c(%rbp), %rcx
leaq 0x2736b1(%rip), %rax    # 0x2b9810
imulq $0x2c, %rcx, %rcx
addq %rcx, %rax
movw 0x2a(%rax), %cx
movswq -0x3c(%rbp), %rdx
leaq 0x27369a(%rip), %rax    # 0x2b9810
imulq $0x2c, %rdx, %rdx
addq %rdx, %rax
movw %cx, 0x2a(%rax)
movw -0x3c(%rbp), %ax
addw $-0x1, %ax
movw %ax, -0x3c(%rbp)
jmp 0x45eca
movw $0x0, -0x3c(%rbp)
movswl -0x3c(%rbp), %eax
movswl -0x3e(%rbp), %ecx
cmpl %ecx, %eax
jge 0x4622c
movswq -0x3c(%rbp), %rcx
leaq 0x27365c(%rip), %rax    # 0x2b9810
imulq $0x2c, %rcx, %rcx
addq %rcx, %rax
movswl 0xc(%rax), %eax
andl $0x30, %eax
cmpl $0x30, %eax
jne 0x461e5
movswq -0x3c(%rbp), %rcx
leaq 0x27363d(%rip), %rax    # 0x2b9810
imulq $0x2c, %rcx, %rcx
addq %rcx, %rax
movswl 0xc(%rax), %ecx
andl $-0x31, %ecx
movw %cx, 0xc(%rax)
movswq -0x3c(%rbp), %rcx
leaq 0x27361f(%rip), %rax    # 0x2b9810
imulq $0x2c, %rcx, %rcx
addq %rcx, %rax
movw 0x18(%rax), %cx
movswq -0x3c(%rbp), %rdx
leaq 0x273608(%rip), %rax    # 0x2b9810
imulq $0x2c, %rdx, %rdx
addq %rdx, %rax
movswl %cx, %edi
movswl 0x1a(%rax), %esi
callq 0x46280
movw -0x3c(%rbp), %ax
addw $0x1, %ax
movw %ax, -0x3c(%rbp)
jmp 0x46198
movq -0x20(%rbp), %rax
movl (%rax), %edi
movq -0x28(%rbp), %rax
movl (%rax), %esi
movq 0x10(%rbp), %rdx
callq 0x392a0
movswl -0x3a(%rbp), %edi
callq 0x30960
leaq 0x3235bf(%rip), %rdi    # 0x369810
xorl %esi, %esi
movl $0x30c00, %edx          # imm = 0x30C00
callq 0x62d0
movl $0x0, 0x40b765(%rip)    # 0x4519cc
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x50, %rsp
popq %rbp
retq
nopw (%rax,%rax)