// File: /workspace/github_c_makefile_star2_O2/enzo1982[P]smooth/classes/misc/string_case.cpp
// Function: smooth::String::ToLower() const
S::String S::String::ToLower() const			
{								
	String	 retVal = *this;				
	Int	 length = Length();				
								
	for (Int i = 0; i < length; i++)			
	{							
		wchar_t	 value = (*this)[i];			

		if	(value >= 0x41 && value <= 0x5a)			retVal[i] = value + 0x20;	// Alphabet
		else if	(value >= 0xc0 && value <= 0xd6)			retVal[i] = value + 0x20;	// Alphabet
		else if	(value >= 0xd8 && value <= 0xde)			retVal[i] = value + 0x20;	// Alphabet
		else if	(value >= 0x100 && value <= 0x12e && !(value & 1))	retVal[i] = value + 0x1;	// Special letters
		else if	(value == 0x130)					retVal[i] =	    0x69;	// Single character
		else if	(value >= 0x132 && value <= 0x136 && !(value & 1))	retVal[i] = value + 0x1;	// Special letters
		else if	(value >= 0x139 && value <= 0x147 &&  (value & 1))	retVal[i] = value + 0x1;	// Special letters
		else if	(value >= 0x14a && value <= 0x176 && !(value & 1))	retVal[i] = value + 0x1;	// Special letters
		else if	(value == 0x178)					retVal[i] =	    0xff;	// Single character
		else if	(value >= 0x179 && value <= 0x17d &&  (value & 1))	retVal[i] = value + 0x1;	// Special letters
		else if	(value == 0x181)					retVal[i] =	    0x253;	// Single character
		else if	(value >= 0x182 && value <= 0x184 && !(value & 1))	retVal[i] = value + 0x1;	// Special letters
		else if	(value == 0x186)					retVal[i] =	    0x254;	// Single character
		else if	(value == 0x187)					retVal[i] =	    0x188;	// Single character
		else if	(value >= 0x189 && value <= 0x18a)			retVal[i] = value + 0xcd;	// Alphabet
		else if	(value == 0x18b)					retVal[i] =	    0x18c;	// Single character
		else if	(value == 0x18e)					retVal[i] =	    0x1dd;	// Single character
		else if	(value == 0x18f)					retVal[i] =	    0x259;	// Single character
		else if	(value == 0x190)					retVal[i] =	    0x25b;	// Single character
		else if	(value == 0x191)					retVal[i] =	    0x192;	// Single character
		else if	(value == 0x193)					retVal[i] =	    0x260;	// Single character
		else if	(value == 0x194)					retVal[i] =	    0x263;	// Single character
		else if	(value == 0x196)					retVal[i] =	    0x269;	// Single character
		else if	(value == 0x197)					retVal[i] =	    0x268;	// Single character
		else if	(value == 0x198)					retVal[i] =	    0x199;	// Single character
		else if	(value == 0x19c)					retVal[i] =	    0x26f;	// Single character
		else if	(value == 0x19d)					retVal[i] =	    0x272;	// Single character
		else if	(value == 0x19f)					retVal[i] =	    0x275;	// Single character
		else if	(value >= 0x1a0 && value <= 0x1a4 && !(value & 1))	retVal[i] = value + 0x1;	// Special letters
		else if	(value == 0x1a6)					retVal[i] =	    0x280;	// Single character
		else if	(value == 0x1a7)					retVal[i] =	    0x1a8;	// Single character
		else if	(value == 0x1a9)					retVal[i] =	    0x283;	// Single character
		else if	(value == 0x1ac)					retVal[i] =	    0x1ad;	// Single character
		else if	(value == 0x1ae)					retVal[i] =	    0x288;	// Single character
		else if	(value == 0x1af)					retVal[i] =	    0x1b0;	// Single character
		else if	(value >= 0x1b1 && value <= 0x1b2)			retVal[i] = value + 0xd9;	// Alphabet
		else if	(value >= 0x1b3 && value <= 0x1b5 &&  (value & 1))	retVal[i] = value + 0x1;	// Special letters
		else if	(value == 0x1b7)					retVal[i] =	    0x292;	// Single character
		else if	(value == 0x1b8)					retVal[i] =	    0x1b9;	// Single character
		else if	(value == 0x1bc)					retVal[i] =	    0x1bd;	// Single character
		else if	(value == 0x1c4)					retVal[i] =	    0x1c6;	// Single character
		else if	(value == 0x1c5)					retVal[i] =	    0x1c6;	// Single character
		else if	(value == 0x1c7)					retVal[i] =	    0x1c9;	// Single character
		else if	(value == 0x1c8)					retVal[i] =	    0x1c9;	// Single character
		else if	(value == 0x1ca)					retVal[i] =	    0x1cc;	// Single character
		else if	(value >= 0x1cb && value <= 0x1db &&  (value & 1))	retVal[i] = value + 0x1;	// Special letters
		else if	(value >= 0x1de && value <= 0x1ee && !(value & 1))	retVal[i] = value + 0x1;	// Special letters
		else if	(value == 0x1f1)					retVal[i] =	    0x1f3;	// Single character
		else if	(value >= 0x1f2 && value <= 0x1f4 && !(value & 1))	retVal[i] = value + 0x1;	// Special letters
		else if	(value == 0x1f6)					retVal[i] =	    0x195;	// Single character
		else if	(value == 0x1f7)					retVal[i] =	    0x1bf;	// Single character
		else if	(value >= 0x1f8 && value <= 0x21e && !(value & 1))	retVal[i] = value + 0x1;	// Special letters
		else if	(value == 0x220)					retVal[i] =	    0x19e;	// Single character
		else if	(value >= 0x222 && value <= 0x232 && !(value & 1))	retVal[i] = value + 0x1;	// Special letters
		else if	(value == 0x23a)					retVal[i] =	    0x2c65;	// Single character
		else if	(value == 0x23b)					retVal[i] =	    0x23c;	// Single character
		else if	(value == 0x23d)					retVal[i] =	    0x19a;	// Single character
		else if	(value == 0x23e)					retVal[i] =	    0x2c66;	// Single character
		else if	(value == 0x241)					retVal[i] =	    0x242;	// Single character
		else if	(value == 0x243)					retVal[i] =	    0x180;	// Single character
		else if	(value == 0x244)					retVal[i] =	    0x289;	// Single character
		else if	(value == 0x245)					retVal[i] =	    0x28c;	// Single character
		else if	(value >= 0x246 && value <= 0x24e && !(value & 1))	retVal[i] = value + 0x1;	// Special letters
		else if	(value >= 0x370 && value <= 0x372 && !(value & 1))	retVal[i] = value + 0x1;	// Special letters
		else if	(value == 0x376)					retVal[i] =	    0x377;	// Single character
		else if	(value == 0x386)					retVal[i] =	    0x3ac;	// Single character
		else if	(value >= 0x388 && value <= 0x38a)			retVal[i] = value + 0x25;	// Alphabet
		else if	(value == 0x38c)					retVal[i] =	    0x3cc;	// Single character
		else if	(value >= 0x38e && value <= 0x38f)			retVal[i] = value + 0x3f;	// Alphabet
		else if	(value >= 0x391 && value <= 0x3aa)			retVal[i] = value + 0x20;	// Alphabet
		else if	(value == 0x3cf)					retVal[i] =	    0x3d7;	// Single character
		else if	(value >= 0x3d8 && value <= 0x3ee && !(value & 1))	retVal[i] = value + 0x1;	// Special letters
		else if	(value == 0x3f4)					retVal[i] =	    0x3b8;	// Single character
		else if	(value == 0x3f7)					retVal[i] =	    0x3f8;	// Single character
		else if	(value == 0x3f9)					retVal[i] =	    0x3f2;	// Single character
		else if	(value == 0x3fa)					retVal[i] =	    0x3fb;	// Single character
		else if	(value >= 0x3fd && value <= 0x3ff)			retVal[i] = value - 0x82;	// Alphabet
		else if	(value >= 0x400 && value <= 0x40f)			retVal[i] = value + 0x50;	// Alphabet
		else if	(value >= 0x410 && value <= 0x42f)			retVal[i] = value + 0x20;	// Alphabet
		else if	(value >= 0x460 && value <= 0x480 && !(value & 1))	retVal[i] = value + 0x1;	// Special letters
		else if	(value >= 0x48a && value <= 0x4be && !(value & 1))	retVal[i] = value + 0x1;	// Special letters
		else if	(value == 0x4c0)					retVal[i] =	    0x4cf;	// Single character
		else if	(value >= 0x4c1 && value <= 0x4cd &&  (value & 1))	retVal[i] = value + 0x1;	// Special letters
		else if	(value >= 0x4d0 && value <= 0x522 && !(value & 1))	retVal[i] = value + 0x1;	// Special letters
		else if	(value >= 0x531 && value <= 0x556)			retVal[i] = value + 0x30;	// Alphabet
		else if	(value >= 0x10a0 && value <= 0x10c5)			retVal[i] = value + 0x1c60;	// Alphabet
		else if	(value >= 0x1e00 && value <= 0x1e94 && !(value & 1))	retVal[i] = value + 0x1;	// Special letters
		else if	(value == 0x1e9e)					retVal[i] =	    0xdf;	// Single character
		else if	(value >= 0x1ea0 && value <= 0x1efe && !(value & 1))	retVal[i] = value + 0x1;	// Special letters
		else if	(value >= 0x1f08 && value <= 0x1f0f)			retVal[i] = value - 0x8;	// Alphabet
		else if	(value >= 0x1f18 && value <= 0x1f1d)			retVal[i] = value - 0x8;	// Alphabet
		else if	(value >= 0x1f28 && value <= 0x1f2f)			retVal[i] = value - 0x8;	// Alphabet
		else if	(value >= 0x1f38 && value <= 0x1f3f)			retVal[i] = value - 0x8;	// Alphabet
		else if	(value >= 0x1f48 && value <= 0x1f4d)			retVal[i] = value - 0x8;	// Alphabet
		else if	(value >= 0x1f59 && value <= 0x1f5c)			retVal[i] = value - 0x8;	// Alphabet
		else if	(value >= 0x1f68 && value <= 0x1f6f)			retVal[i] = value - 0x8;	// Alphabet
		else if	(value >= 0x1f88 && value <= 0x1f8f)			retVal[i] = value - 0x8;	// Alphabet
		else if	(value >= 0x1f98 && value <= 0x1f9f)			retVal[i] = value - 0x8;	// Alphabet
		else if	(value >= 0x1fa8 && value <= 0x1faf)			retVal[i] = value - 0x8;	// Alphabet
		else if	(value >= 0x1fb8 && value <= 0x1fb9)			retVal[i] = value - 0x8;	// Alphabet
		else if	(value >= 0x1fba && value <= 0x1fbb)			retVal[i] = value - 0x4a;	// Alphabet
		else if	(value == 0x1fbc)					retVal[i] =	    0x1fb3;	// Single character
		else if	(value >= 0x1fc8 && value <= 0x1fcb)			retVal[i] = value - 0x56;	// Alphabet
		else if	(value == 0x1fcc)					retVal[i] =	    0x1fc3;	// Single character
		else if	(value >= 0x1fd8 && value <= 0x1fd9)			retVal[i] = value - 0x8;	// Alphabet
		else if	(value >= 0x1fda && value <= 0x1fdb)			retVal[i] = value - 0x64;	// Alphabet
		else if	(value >= 0x1fe8 && value <= 0x1fe9)			retVal[i] = value - 0x8;	// Alphabet
		else if	(value >= 0x1fea && value <= 0x1feb)			retVal[i] = value - 0x70;	// Alphabet
		else if	(value == 0x1fec)					retVal[i] =	    0x1fe5;	// Single character
		else if	(value >= 0x1ff8 && value <= 0x1ff9)			retVal[i] = value - 0x80;	// Alphabet
		else if	(value >= 0x1ffa && value <= 0x1ffb)			retVal[i] = value - 0x7e;	// Alphabet
		else if	(value == 0x1ffc)					retVal[i] =	    0x1ff3;	// Single character
		else if	(value == 0x2126)					retVal[i] =	    0x3c9;	// Single character
		else if	(value == 0x212a)					retVal[i] =	    0x6b;	// Single character
		else if	(value == 0x212b)					retVal[i] =	    0xe5;	// Single character
		else if	(value == 0x2132)					retVal[i] =	    0x214e;	// Single character
		else if	(value >= 0x2160 && value <= 0x216f)			retVal[i] = value + 0x10;	// Alphabet
		else if	(value == 0x2183)					retVal[i] =	    0x2184;	// Single character
		else if	(value >= 0x24b6 && value <= 0x24cf)			retVal[i] = value + 0x1a;	// Alphabet
		else if	(value >= 0x2c00 && value <= 0x2c2e)			retVal[i] = value + 0x30;	// Alphabet

		/* Work around stupid MSVC's limit on alternatives...
		 * ----
		 * This is not generated automatically, but
		 * needs to be inserted manually here.
		 */
		if	(value == 0x2c60)					retVal[i] =	    0x2c61;	// Single character
		else if	(value == 0x2c62)					retVal[i] =	    0x26b;	// Single character
		else if	(value == 0x2c63)					retVal[i] =	    0x1d7d;	// Single character
		else if	(value == 0x2c64)					retVal[i] =	    0x27d;	// Single character
		else if	(value >= 0x2c67 && value <= 0x2c6b &&  (value & 1))	retVal[i] = value + 0x1;	// Special letters
		else if	(value == 0x2c6d)					retVal[i] =	    0x251;	// Single character
		else if	(value == 0x2c6e)					retVal[i] =	    0x271;	// Single character
		else if	(value == 0x2c6f)					retVal[i] =	    0x250;	// Single character
		else if	(value == 0x2c72)					retVal[i] =	    0x2c73;	// Single character
		else if	(value == 0x2c75)					retVal[i] =	    0x2c76;	// Single character
		else if	(value >= 0x2c80 && value <= 0x2ce2 && !(value & 1))	retVal[i] = value + 0x1;	// Special letters
		else if	(value >= 0xa640 && value <= 0xa660 && !(value & 1))	retVal[i] = value + 0x1;	// Special letters
		else if	(value >= 0xa664 && value <= 0xa66c && !(value & 1))	retVal[i] = value + 0x1;	// Special letters
		else if	(value >= 0xa680 && value <= 0xa696 && !(value & 1))	retVal[i] = value + 0x1;	// Special letters
		else if	(value >= 0xa722 && value <= 0xa72e && !(value & 1))	retVal[i] = value + 0x1;	// Special letters
		else if	(value >= 0xa732 && value <= 0xa76e && !(value & 1))	retVal[i] = value + 0x1;	// Special letters
		else if	(value >= 0xa779 && value <= 0xa77b &&  (value & 1))	retVal[i] = value + 0x1;	// Special letters
		else if	(value == 0xa77d)					retVal[i] =	    0x1d79;	// Single character
		else if	(value >= 0xa77e && value <= 0xa786 && !(value & 1))	retVal[i] = value + 0x1;	// Special letters
		else if	(value == 0xa78b)					retVal[i] =	    0xa78c;	// Single character
		else if	(value >= 0xff21 && value <= 0xff3a)			retVal[i] = value + 0x20;	// Alphabet
	}							
								
	return retVal;						
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rsi, %r14
movq %rdi, %rbx
callq 0x58280
movq %r14, %rdi
callq 0x58370
movl %eax, %ebp
xorl %r15d, %r15d
testl %eax, %eax
cmovlel %r15d, %ebp
leaq 0x5e316(%rip), %r13     # 0x101e70
cmpl %r15d, %ebp
je 0xa4c6e
movq %r14, %rdi
movl %r15d, %esi
callq 0x59270
movl %eax, %r12d
leal -0x41(%r12), %eax
cmpl $0x19, %eax
ja 0xa3b88
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
jmp 0xa3bba
leal -0xc0(%r12), %eax
cmpl $0x16, %eax
ja 0xa3ba2
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
jmp 0xa3bba
leal -0xd8(%r12), %eax
cmpl $0x6, %eax
ja 0xa3c28
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl %r12d, %ecx
orl $0x20, %ecx
movl %ecx, (%rax)
cmpl $0x2c62, %r12d          # imm = 0x2C62
je 0xa3bea
cmpl $0x2c60, %r12d          # imm = 0x2C60
jne 0xa3c00
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0x2c61, (%rax)         # imm = 0x2C61
jmp 0xa3cdf
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0x26b, (%rax)          # imm = 0x26B
jmp 0xa3cdf
cmpl $0x2c63, %r12d          # imm = 0x2C63
je 0xa3c56
cmpl $0x2c64, %r12d          # imm = 0x2C64
jne 0xa3c69
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0x27d, (%rax)          # imm = 0x27D
jmp 0xa3cdf
leal -0x100(%r12), %eax
cmpl $0x2f, %eax
setae %al
movl %r12d, %ecx
orb %al, %cl
testb $0x1, %cl
jne 0xa3c72
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl %r12d, %ecx
orl $0x1, %ecx
jmp 0xa3bc0
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0x1d7d, (%rax)         # imm = 0x1D7D
jmp 0xa3cdf
testb $0x1, %r12b
sete %al
jmp 0xa3c8e
cmpl $0x130, %r12d           # imm = 0x130
jne 0xa3ce7
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0x69, (%rax)
movb $0x1, %al
leal -0x2c6c(%r12), %ecx
cmpl $-0x5, %ecx
setb %cl
orb %al, %cl
je 0xa3cce
leal -0x2c6d(%r12), %ecx
cmpl $0x8, %ecx
ja 0xa3d52
movslq (%r13,%rcx,4), %rcx
addq %r13, %rcx
jmpq *%rcx
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0x251, (%rax)          # imm = 0x251
jmp 0xa3cdf
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
incl %r12d
movl %r12d, (%rax)
incl %r15d
jmp 0xa3b5a
leal -0x132(%r12), %eax
cmpl $0x5, %eax
setae %al
orb %r12b, %al
testb $0x1, %al
jne 0xa3d0c
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
jmp 0xa3c4b
testb $0x1, %r12b
sete %al
leal -0x148(%r12), %ecx
cmpl $-0xf, %ecx
setb %cl
orb %al, %cl
je 0xa3dd1
leal -0x14a(%r12), %eax
cmpl $0x2d, %eax
setae %al
orb %r12b, %al
testb $0x1, %al
jne 0xa3e08
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
jmp 0xa3c4b
leal -0x2c80(%r12), %ecx
cmpl $0x63, %ecx
setae %dl
movl %eax, %ecx
xorb $0x1, %cl
orb %cl, %dl
jne 0xa3de6
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
jmp 0xa3f13
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0x250, (%rax)          # imm = 0x250
jmp 0xa3cdf
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0x271, (%rax)          # imm = 0x271
jmp 0xa3cdf
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0x2c73, (%rax)         # imm = 0x2C73
jmp 0xa3cdf
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0x2c76, (%rax)         # imm = 0x2C76
jmp 0xa3cdf
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
leal 0x1(%r12), %ecx
jmp 0xa3bc0
leal -0xa640(%r12), %edx
cmpl $0x21, %edx
setae %dl
orb %cl, %dl
jne 0xa3e27
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
jmp 0xa3f13
cmpl $0x178, %r12d           # imm = 0x178
jne 0xa3e49
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0xff, (%rax)
jmp 0xa3c8c
leal -0xa664(%r12), %edx
cmpl $0x9, %edx
setae %dl
orb %cl, %dl
jne 0xa3e83
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
jmp 0xa3f13
testb $0x1, %r12b
sete %al
leal -0x17e(%r12), %ecx
cmpl $-0x5, %ecx
setb %cl
orb %al, %cl
je 0xa3ea2
cmpl $0x181, %r12d           # imm = 0x181
jne 0xa3ed1
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0x253, (%rax)          # imm = 0x253
xorl %eax, %eax
jmp 0xa3c8e
leal -0xa680(%r12), %edx
cmpl $0x17, %edx
setae %dl
orb %cl, %dl
jne 0xa3eb2
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
jmp 0xa3f13
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
jmp 0xa3ddc
leal -0xa722(%r12), %edx
cmpl $0xd, %edx
setae %dl
orb %cl, %dl
jne 0xa3ef6
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
jmp 0xa3f13
leal -0x182(%r12), %eax
cmpl $0x3, %eax
setae %al
orb %r12b, %al
testb $0x1, %al
jne 0xa3f1c
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
jmp 0xa3c4b
leal -0xa732(%r12), %edx
cmpl $0x3d, %edx
setae %dl
orb %cl, %dl
jne 0xa3f44
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
orl $0x1, %r12d
jmp 0xa3cdc
cmpl $0x187, %r12d           # imm = 0x187
je 0xa3f85
cmpl $0x186, %r12d           # imm = 0x186
jne 0xa3f9b
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0x254, (%rax)          # imm = 0x254
jmp 0xa3c8c
leal -0xa77c(%r12), %edx
cmpl $-0x3, %edx
setb %dl
orb %al, %dl
je 0xa3f75
cmpl $0xa77d, %r12d          # imm = 0xA77D
jne 0xa3fc0
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0x1d79, (%rax)         # imm = 0x1D79
jmp 0xa3cdf
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
jmp 0xa3cd9
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0x188, (%rax)          # imm = 0x188
jmp 0xa3e7c
leal -0x189(%r12), %eax
cmpl $0x1, %eax
ja 0xa3fe2
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
leal 0xcd(%r12), %ecx
jmp 0xa3bc0
leal -0xa77e(%r12), %eax
cmpl $0x9, %eax
setae %al
orb %cl, %al
jne 0xa4019
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
jmp 0xa3f13
leal -0x18b(%r12), %eax
cmpl $0x14, %eax
ja 0xa40e1
leaq 0x5dd22(%rip), %rcx     # 0x101d1c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0x18c, (%rax)          # imm = 0x18C
jmp 0xa3e7c
cmpl $0xa78b, %r12d          # imm = 0xA78B
jne 0xa4038
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0xa78c, (%rax)         # imm = 0xA78C
jmp 0xa3cdf
leal -0xff21(%r12), %eax
cmpl $0x19, %eax
ja 0xa3cdf
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
addl $0x20, %r12d
jmp 0xa3cdc
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0x26f, (%rax)          # imm = 0x26F
jmp 0xa3c8c
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0x192, (%rax)          # imm = 0x192
jmp 0xa3e7c
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0x275, (%rax)          # imm = 0x275
jmp 0xa3e7c
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0x260, (%rax)          # imm = 0x260
jmp 0xa3e7c
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0x272, (%rax)          # imm = 0x272
jmp 0xa3e7c
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0x25b, (%rax)          # imm = 0x25B
jmp 0xa3c8c
leal -0x1a0(%r12), %eax
cmpl $0x5, %eax
setae %al
orb %r12b, %al
testb $0x1, %al
jne 0xa418e
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
jmp 0xa3c4b
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0x259, (%rax)          # imm = 0x259
jmp 0xa3e7c
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0x1dd, (%rax)          # imm = 0x1DD
jmp 0xa3c8c
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0x263, (%rax)          # imm = 0x263
jmp 0xa3c8c
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0x269, (%rax)          # imm = 0x269
jmp 0xa3c8c
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0x199, (%rax)          # imm = 0x199
jmp 0xa3c8c
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0x268, (%rax)          # imm = 0x268
jmp 0xa3e7c
leal -0x1a6(%r12), %eax
cmpl $0x9, %eax
ja 0xa4203
leaq 0x5dbce(%rip), %rcx     # 0x101d70
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0x280, (%rax)          # imm = 0x280
jmp 0xa3c8c
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0x283, (%rax)          # imm = 0x283
jmp 0xa3e7c
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0x1b0, (%rax)          # imm = 0x1B0
jmp 0xa3e7c
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0x1a8, (%rax)          # imm = 0x1A8
jmp 0xa3e7c
leal -0x1b1(%r12), %eax
cmpl $0x1, %eax
ja 0xa4254
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
leal 0xd9(%r12), %ecx
jmp 0xa3bc0
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0x1ad, (%rax)          # imm = 0x1AD
jmp 0xa3c8c
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0x288, (%rax)          # imm = 0x288
jmp 0xa3c8c
testb $0x1, %r12b
sete %al
leal -0x1b6(%r12), %ecx
cmpl $-0x3, %ecx
setb %cl
orb %al, %cl
je 0xa42a0
leal -0x1b7(%r12), %eax
cmpl $0x13, %eax
ja 0xa42c6
leaq 0x5db17(%rip), %rcx     # 0x101d98
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0x292, (%rax)          # imm = 0x292
jmp 0xa3e7c
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
jmp 0xa3ddc
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0x1b9, (%rax)          # imm = 0x1B9
jmp 0xa3c8c
testb $0x1, %r12b
sete %al
leal -0x1dc(%r12), %ecx
cmpl $-0x11, %ecx
setb %cl
orb %al, %cl
je 0xa4390
leal -0x1de(%r12), %eax
cmpl $0x11, %eax
setae %al
orb %r12b, %al
testb $0x1, %al
jne 0xa43a0
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
jmp 0xa3c4b
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0x1bd, (%rax)          # imm = 0x1BD
jmp 0xa3c8c
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0x1c6, (%rax)          # imm = 0x1C6
jmp 0xa3c8c
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0x1c6, (%rax)          # imm = 0x1C6
jmp 0xa3e7c
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0x1c9, (%rax)          # imm = 0x1C9
jmp 0xa3e7c
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0x1c9, (%rax)          # imm = 0x1C9
jmp 0xa3c8c
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0x1cc, (%rax)          # imm = 0x1CC
jmp 0xa3c8c
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
jmp 0xa3ddc
cmpl $0x1f1, %r12d           # imm = 0x1F1
jne 0xa43bf
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0x1f3, (%rax)          # imm = 0x1F3
jmp 0xa3e7c
leal -0x1f2(%r12), %eax
cmpl $0x3, %eax
setae %al
orb %r12b, %al
testb $0x1, %al
jne 0xa43e4
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
jmp 0xa3c4b
cmpl $0x1f7, %r12d           # imm = 0x1F7
je 0xa440c
cmpl $0x1f6, %r12d           # imm = 0x1F6
jne 0xa4422
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0x195, (%rax)          # imm = 0x195
jmp 0xa3c8c
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0x1bf, (%rax)          # imm = 0x1BF
jmp 0xa3e7c
leal -0x1f8(%r12), %eax
cmpl $0x27, %eax
setae %al
orb %r12b, %al
testb $0x1, %al
jne 0xa4447
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
jmp 0xa3c4b
cmpl $0x220, %r12d           # imm = 0x220
jne 0xa4466
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0x19e, (%rax)          # imm = 0x19E
jmp 0xa3c8c
leal -0x222(%r12), %eax
cmpl $0x11, %eax
setae %al
orb %r12b, %al
testb $0x1, %al
jne 0xa448b
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
jmp 0xa3c4b
leal -0x23a(%r12), %eax
cmpl $0xb, %eax
ja 0xa44d4
leaq 0x5d949(%rip), %rcx     # 0x101de8
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0x2c65, (%rax)         # imm = 0x2C65
jmp 0xa3c8c
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0x23c, (%rax)          # imm = 0x23C
jmp 0xa3e7c
leal -0x246(%r12), %eax
cmpl $0x9, %eax
setae %al
orb %r12b, %al
testb $0x1, %al
jne 0xa4581
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
jmp 0xa3c4b
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0x19a, (%rax)          # imm = 0x19A
jmp 0xa3e7c
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0x2c66, (%rax)         # imm = 0x2C66
jmp 0xa3c8c
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0x242, (%rax)          # imm = 0x242
jmp 0xa3e7c
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0x180, (%rax)          # imm = 0x180
jmp 0xa3e7c
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0x289, (%rax)          # imm = 0x289
jmp 0xa3c8c
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0x28c, (%rax)          # imm = 0x28C
jmp 0xa3e7c
leal -0x370(%r12), %eax
cmpl $0x3, %eax
setae %al
orb %r12b, %al
testb $0x1, %al
jne 0xa45a6
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
jmp 0xa3c4b
cmpl $0x386, %r12d           # imm = 0x386
je 0xa45ce
cmpl $0x376, %r12d           # imm = 0x376
jne 0xa45e4
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0x377, (%rax)          # imm = 0x377
jmp 0xa3c8c
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0x3ac, (%rax)          # imm = 0x3AC
jmp 0xa3c8c
leal -0x388(%r12), %eax
cmpl $0x2, %eax
ja 0xa4606
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
leal 0x25(%r12), %ecx
jmp 0xa3bc0
cmpl $0x38c, %r12d           # imm = 0x38C
jne 0xa4625
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0x3cc, (%rax)          # imm = 0x3CC
jmp 0xa3c8c
movl %r12d, %eax
andl $-0x2, %eax
cmpl $0x38e, %eax            # imm = 0x38E
jne 0xa4647
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
leal 0x3f(%r12), %ecx
jmp 0xa3bc0
leal -0x391(%r12), %ecx
cmpl $0x19, %ecx
ja 0xa4669
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
leal 0x20(%r12), %ecx
jmp 0xa3bc0
cmpl $0x3cf, %r12d           # imm = 0x3CF
jne 0xa4688
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0x3d7, (%rax)          # imm = 0x3D7
jmp 0xa3e7c
leal -0x3d8(%r12), %ecx
cmpl $0x17, %ecx
setae %cl
orb %r12b, %cl
testb $0x1, %cl
jne 0xa46ae
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
jmp 0xa3c4b
leal -0x3f4(%r12), %ecx
cmpl $0x6, %ecx
ja 0xa46e1
leaq 0x5d756(%rip), %rdx     # 0x101e18
movslq (%rdx,%rcx,4), %rcx
addq %rdx, %rcx
jmpq *%rcx
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0x3b8, (%rax)          # imm = 0x3B8
jmp 0xa3c8c
leal -0x3fd(%r12), %ecx
cmpl $0x2, %ecx
ja 0xa4748
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
leal -0x82(%r12), %ecx
jmp 0xa3bc0
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0x3f8, (%rax)          # imm = 0x3F8
jmp 0xa3e7c
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0x3f2, (%rax)          # imm = 0x3F2
jmp 0xa3e7c
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0x3fb, (%rax)          # imm = 0x3FB
jmp 0xa3c8c
movl %r12d, %ecx
andl $-0x10, %ecx
cmpl $0x400, %ecx            # imm = 0x400
jne 0xa476c
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl %r12d, %ecx
orl $0x50, %ecx
jmp 0xa3bc0
leal -0x410(%r12), %edx
cmpl $0x1f, %edx
ja 0xa4789
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
jmp 0xa465f
leal -0x460(%r12), %edx
cmpl $0x21, %edx
setae %dl
orb %r12b, %dl
testb $0x1, %dl
jne 0xa47af
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
jmp 0xa3c4b
leal -0x48a(%r12), %edx
cmpl $0x35, %edx
setae %dl
orb %r12b, %dl
testb $0x1, %dl
jne 0xa47d5
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
jmp 0xa3c4b
cmpl $0x4c0, %r12d           # imm = 0x4C0
jne 0xa47f4
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0x4cf, (%rax)          # imm = 0x4CF
jmp 0xa3c8c
testb $0x1, %r12b
sete %dl
leal -0x4ce(%r12), %esi
cmpl $-0xd, %esi
setb %sil
orb %dl, %sil
je 0xa4835
leal -0x4d0(%r12), %edx
cmpl $0x53, %edx
setae %dl
orb %r12b, %dl
testb $0x1, %dl
jne 0xa4845
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
jmp 0xa3c4b
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
jmp 0xa3ddc
leal -0x531(%r12), %edx
cmpl $0x25, %edx
ja 0xa4862
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
jmp 0xa4c64
leal -0x10a0(%r12), %edx
cmpl $0x25, %edx
ja 0xa4887
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
leal 0x1c60(%r12), %ecx
jmp 0xa3bc0
leal -0x1e00(%r12), %edx
cmpl $0x95, %edx
setae %dl
orb %r12b, %dl
testb $0x1, %dl
jne 0xa48b0
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
jmp 0xa3c4b
cmpl $0x1e9e, %r12d          # imm = 0x1E9E
jne 0xa48cf
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0xdf, (%rax)
jmp 0xa3c8c
leal -0x1ea0(%r12), %edx
cmpl $0x5f, %edx
setae %dl
orb %r12b, %dl
testb $0x1, %dl
jne 0xa48f5
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
jmp 0xa3c4b
movl %r12d, %edx
andl $-0x8, %edx
cmpl $0x1f08, %edx           # imm = 0x1F08
jne 0xa4913
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
jmp 0xa4af7
leal -0x1f18(%r12), %esi
cmpl $0x5, %esi
ja 0xa4930
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
jmp 0xa4af7
cmpl $0x1f38, %edx           # imm = 0x1F38
je 0xa4950
cmpl $0x1f28, %edx           # imm = 0x1F28
jne 0xa4960
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
jmp 0xa4af7
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
jmp 0xa4af7
leal -0x1f48(%r12), %esi
cmpl $0x5, %esi
ja 0xa497d
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
jmp 0xa4af7
leal -0x1f59(%r12), %esi
cmpl $0x3, %esi
ja 0xa499a
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
jmp 0xa4af7
addl $0xffffe098, %edx       # imm = 0xFFFFE098
roll $0x1c, %edx
cmpl $0x4, %edx
ja 0xa49c8
leaq 0x5d485(%rip), %rsi     # 0x101e34
movslq (%rsi,%rdx,4), %rdx
addq %rsi, %rdx
jmpq *%rdx
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
jmp 0xa4af7
cmpl $0x1fba, %eax           # imm = 0x1FBA
je 0xa4a16
cmpl $0x1fb8, %eax           # imm = 0x1FB8
jne 0xa4a2b
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
jmp 0xa4af7
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
jmp 0xa4af7
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
jmp 0xa4af7
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
jmp 0xa4af7
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
leal -0x4a(%r12), %ecx
jmp 0xa3bc0
cmpl $0x1fbc, %r12d          # imm = 0x1FBC
jne 0xa4a4a
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0x1fb3, (%rax)         # imm = 0x1FB3
jmp 0xa3c8c
movl %r12d, %edx
andl $-0x4, %edx
cmpl $0x1fc8, %edx           # imm = 0x1FC8
jne 0xa4a6d
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
leal -0x56(%r12), %ecx
jmp 0xa3bc0
cmpl $0x1fcc, %r12d          # imm = 0x1FCC
jne 0xa4a8c
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0x1fc3, (%rax)         # imm = 0x1FC3
jmp 0xa3c8c
leal -0x1fd8(%r12), %edx
shrl %edx
cmpl $0x9, %edx
ja 0xa4acd
leaq 0x5d3a6(%rip), %rsi     # 0x101e48
movslq (%rsi,%rdx,4), %rdx
addq %rsi, %rdx
jmpq *%rdx
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
jmp 0xa4af7
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
leal -0x64(%r12), %ecx
jmp 0xa3bc0
cmpl $0x1fec, %r12d          # imm = 0x1FEC
jne 0xa4b16
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0x1fe5, (%rax)         # imm = 0x1FE5
jmp 0xa3c8c
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
leal -0x8(%r12), %ecx
jmp 0xa3bc0
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
leal -0x70(%r12), %ecx
jmp 0xa3bc0
cmpl $0x1ffa, %eax           # imm = 0x1FFA
je 0xa4b39
cmpl $0x1ff8, %eax           # imm = 0x1FF8
jne 0xa4b4e
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
leal -0x80(%r12), %ecx
jmp 0xa3bc0
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
leal -0x7e(%r12), %ecx
jmp 0xa3bc0
cmpl $0x2132, %r12d          # imm = 0x2132
je 0xa4b91
cmpl $0x2126, %r12d          # imm = 0x2126
je 0xa4ba7
cmpl $0x212a, %r12d          # imm = 0x212A
je 0xa4bbd
cmpl $0x212b, %r12d          # imm = 0x212B
je 0xa4bd3
cmpl $0x1ffc, %r12d          # imm = 0x1FFC
jne 0xa4be9
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0x1ff3, (%rax)         # imm = 0x1FF3
jmp 0xa3c8c
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0x214e, (%rax)         # imm = 0x214E
jmp 0xa3c8c
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0x3c9, (%rax)          # imm = 0x3C9
jmp 0xa3c8c
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0x6b, (%rax)
jmp 0xa3c8c
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0xe5, (%rax)
jmp 0xa3e7c
cmpl $0x2160, %ecx           # imm = 0x2160
jne 0xa4c07
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl %r12d, %ecx
orl $0x10, %ecx
jmp 0xa3bc0
cmpl $0x2183, %r12d          # imm = 0x2183
jne 0xa4c26
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
movl $0x2184, (%rax)         # imm = 0x2184
jmp 0xa3e7c
leal -0x24b6(%r12), %eax
cmpl $0x19, %eax
ja 0xa4c48
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
leal 0x1a(%r12), %ecx
jmp 0xa3bc0
leal -0x2c00(%r12), %eax
cmpl $0x2e, %eax
ja 0xa3bc2
movq %rbx, %rdi
movl %r15d, %esi
callq 0x59cc0
leal 0x30(%r12), %ecx
jmp 0xa3bc0
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0xa4c82
movq %rax, %r14
movq %rbx, %rdi
callq 0x5a588
movq %r14, %rdi
callq 0x58260
nop