417c74:	6a 02                	push   $0x2
417c76:	5a                   	pop    %edx
417c77:	03 f2                	add    %edx,%esi
417c79:	89 75 fc             	mov    %esi,-0x4(%ebp)
417c7c:	0f b7 3e             	movzwl (%esi),%edi
417c7f:	8b c7                	mov    %edi,%eax
417c81:	83 f8 3a             	cmp    $0x3a,%eax
417c84:	0f 8e 34 a4 03 00    	jle    0x4520be
417c8a:	83 e8 3c             	sub    $0x3c,%eax
417c8d:	0f 84 59 aa 03 00    	je     0x4526ec
417c93:	48                   	dec    %eax
417c94:	0f 84 8c a9 03 00    	je     0x452626
417c9a:	48                   	dec    %eax
417c9b:	0f 84 7c a9 03 00    	je     0x45261d
417ca1:	83 e8 05             	sub    $0x5,%eax
417ca4:	0f 84 ce a9 03 00    	je     0x452678
417caa:	83 e8 0d             	sub    $0xd,%eax
417cad:	0f 84 8b a9 03 00    	je     0x45263e
417cb3:	2b c2                	sub    %edx,%eax
417cb5:	0f 84 ab 05 00 00    	je     0x418266
417cbb:	83 e8 2a             	sub    $0x2a,%eax
417cbe:	0f 84 4c a9 03 00    	je     0x452610
417cc4:	8b c1                	mov    %ecx,%eax
417cc6:	8b d1                	mov    %ecx,%edx
417cc8:	8d 4d b4             	lea    -0x4c(%ebp),%ecx
417ccb:	89 45 dc             	mov    %eax,-0x24(%ebp)
417cce:	89 55 b4             	mov    %edx,-0x4c(%ebp)
417cd1:	66 3b bd e8 fe ff ff 	cmp    -0x118(%ebp),%di
417cd8:	74 38                	je     0x417d12
417cda:	6a 02                	push   $0x2
417cdc:	5a                   	pop    %edx
417cdd:	6a 3a                	push   $0x3a
417cdf:	58                   	pop    %eax
417ce0:	66 3b f8             	cmp    %ax,%di
417ce3:	74 27                	je     0x417d0c
417ce5:	0f b7 c7             	movzwl %di,%eax
417ce8:	03 f2                	add    %edx,%esi
417cea:	89 75 fc             	mov    %esi,-0x4(%ebp)
417ced:	83 f8 69             	cmp    $0x69,%eax
417cf0:	0f 8f 2f b9 03 00    	jg     0x453625
417cf6:	0f 85 e2 b8 03 00    	jne    0x4535de
417cfc:	8b 45 f4             	mov    -0xc(%ebp),%eax
417cff:	09 01                	or     %eax,(%ecx)
417d01:	0f b7 3e             	movzwl (%esi),%edi
417d04:	6a 29                	push   $0x29
417d06:	58                   	pop    %eax
417d07:	66 3b f8             	cmp    %ax,%di
417d0a:	75 d1                	jne    0x417cdd
417d0c:	8b 55 b4             	mov    -0x4c(%ebp),%edx
417d0f:	8b 45 dc             	mov    -0x24(%ebp),%eax
417d12:	0b 55 cc             	or     -0x34(%ebp),%edx
417d15:	f7 d0                	not    %eax
417d17:	23 d0                	and    %eax,%edx
417d19:	6a 29                	push   $0x29
417d1b:	58                   	pop    %eax
417d1c:	89 55 b4             	mov    %edx,-0x4c(%ebp)
417d1f:	66 39 06             	cmp    %ax,(%esi)
417d22:	0f 85 62 05 00 00    	jne    0x41828a
417d28:	8b 43 14             	mov    0x14(%ebx),%eax
417d2b:	6a 04                	push   $0x4
417d2d:	59                   	pop    %ecx
417d2e:	03 c1                	add    %ecx,%eax
417d30:	39 45 f8             	cmp    %eax,-0x8(%ebp)
417d33:	0f 84 1a b9 03 00    	je     0x453653
417d39:	8b 4d f4             	mov    -0xc(%ebp),%ecx
417d3c:	8b c2                	mov    %edx,%eax
417d3e:	c1 e8 09             	shr    $0x9,%eax
417d41:	23 c1                	and    %ecx,%eax
417d43:	89 85 24 ff ff ff    	mov    %eax,-0xdc(%ebp)
417d49:	33 c1                	xor    %ecx,%eax
417d4b:	89 85 18 ff ff ff    	mov    %eax,-0xe8(%ebp)
417d51:	0f be c2             	movsbl %dl,%eax
417d54:	23 c1                	and    %ecx,%eax
417d56:	89 85 74 ff ff ff    	mov    %eax,-0x8c(%ebp)
417d5c:	8b 85 e0 fe ff ff    	mov    -0x120(%ebp),%eax
417d62:	89 55 cc             	mov    %edx,-0x34(%ebp)
417d65:	89 10                	mov    %edx,(%eax)
417d67:	33 c0                	xor    %eax,%eax
417d69:	8b d8                	mov    %eax,%ebx
417d6b:	89 5d f0             	mov    %ebx,-0x10(%ebp)
417d6e:	e9 a8 f7 ff ff       	jmp    0x41751b
417d73:	66 3b 8d e4 fe ff ff 	cmp    -0x11c(%ebp),%cx
417d7a:	0f 84 59 fe ff ff    	je     0x417bd9
417d80:	66 3b 8d b0 fe ff ff 	cmp    -0x150(%ebp),%cx
417d87:	0f 84 4c fe ff ff    	je     0x417bd9
417d8d:	66 3b 8d dc fe ff ff 	cmp    -0x124(%ebp),%cx
417d94:	0f 84 3f fe ff ff    	je     0x417bd9
417d9a:	83 f9 72             	cmp    $0x72,%ecx
417d9d:	0f 84 36 fe ff ff    	je     0x417bd9
417da3:	66 3b 8d 04 ff ff ff 	cmp    -0xfc(%ebp),%cx
417daa:	0f 84 29 fe ff ff    	je     0x417bd9
417db0:	83 f9 74             	cmp    $0x74,%ecx
417db3:	0f 84 20 fe ff ff    	je     0x417bd9
417db9:	6a 7d                	push   $0x7d
417dbb:	5f                   	pop    %edi
417dbc:	66 3b cf             	cmp    %di,%cx
417dbf:	0f 82 ab b1 03 00    	jb     0x452f70
417dc5:	83 c7 0a             	add    $0xa,%edi
417dc8:	66 3b cf             	cmp    %di,%cx
417dcb:	0f 87 9f b1 03 00    	ja     0x452f70
417dd1:	8b 9d 78 ff ff ff    	mov    -0x88(%ebp),%ebx
417dd7:	8b 7d f8             	mov    -0x8(%ebp),%edi
417dda:	89 5d ec             	mov    %ebx,-0x14(%ebp)
417ddd:	2b f8                	sub    %eax,%edi
417ddf:	33 db                	xor    %ebx,%ebx
417de1:	d1 ff                	sar    $1,%edi
417de3:	89 5d dc             	mov    %ebx,-0x24(%ebp)
417de6:	89 5d b4             	mov    %ebx,-0x4c(%ebp)
417de9:	bb 87 00 00 00       	mov    $0x87,%ebx
417dee:	66 3b cb             	cmp    %bx,%cx
417df1:	89 7d e8             	mov    %edi,-0x18(%ebp)
417df4:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
417df7:	0f 84 a5 ac 03 00    	je     0x452aa2
417dfd:	b8 81 00 00 00       	mov    $0x81,%eax
417e02:	66 3b c8             	cmp    %ax,%cx
417e05:	8b 45 b0             	mov    -0x50(%ebp),%eax
417e08:	0f 82 ab ac 03 00    	jb     0x452ab9
417e0e:	8b 4d f4             	mov    -0xc(%ebp),%ecx
417e11:	85 c0                	test   %eax,%eax
417e13:	0f 85 25 ad 03 00    	jne    0x452b3e
417e19:	8b 45 f8             	mov    -0x8(%ebp),%eax
417e1c:	ff b5 78 ff ff ff    	push   -0x88(%ebp)
417e22:	ff 75 28             	push   0x28(%ebp)
417e25:	ff 75 c4             	push   -0x3c(%ebp)
417e28:	3b d1                	cmp    %ecx,%edx
417e2a:	0f 8f ba ac 03 00    	jg     0x452aea
417e30:	8b 55 f4             	mov    -0xc(%ebp),%edx
417e33:	33 c9                	xor    %ecx,%ecx
417e35:	66 89 08             	mov    %cx,(%eax)
417e38:	8b 4d f0             	mov    -0x10(%ebp),%ecx
417e3b:	e8 61 08 00 00       	call   0x4186a1
417e40:	8b 4d f0             	mov    -0x10(%ebp),%ecx
417e43:	8d 04 3f             	lea    (%edi,%edi,1),%eax
417e46:	83 c4 0c             	add    $0xc,%esp
417e49:	8d 71 02             	lea    0x2(%ecx),%esi
417e4c:	50                   	push   %eax
417e4d:	51                   	push   %ecx
417e4e:	56                   	push   %esi
417e4f:	e8 cc 01 01 00       	call   0x428020
417e54:	8b 55 c0             	mov    -0x40(%ebp),%edx
417e57:	83 c4 0c             	add    $0xc,%esp
417e5a:	6a 02                	push   $0x2
417e5c:	58                   	pop    %eax
417e5d:	01 45 f8             	add    %eax,-0x8(%ebp)
417e60:	85 d2                	test   %edx,%edx
417e62:	0f 84 72 ac 03 00    	je     0x452ada
417e68:	8b 4d f0             	mov    -0x10(%ebp),%ecx
417e6b:	8d 83 92 00 00 00    	lea    0x92(%ebx),%eax
417e71:	89 4d b4             	mov    %ecx,-0x4c(%ebp)
417e74:	66 89 01             	mov    %ax,(%ecx)
417e77:	89 75 f0             	mov    %esi,-0x10(%ebp)
417e7a:	4a                   	dec    %edx
417e7b:	8b 75 fc             	mov    -0x4(%ebp),%esi
417e7e:	89 55 c0             	mov    %edx,-0x40(%ebp)
417e81:	85 d2                	test   %edx,%edx
417e83:	0f 88 a2 af 03 00    	js     0x452e2b
417e89:	8b 5d 2c             	mov    0x2c(%ebp),%ebx
417e8c:	85 db                	test   %ebx,%ebx
417e8e:	0f 85 12 03 00 00    	jne    0x4181a6
417e94:	8d 5a ff             	lea    -0x1(%edx),%ebx
417e97:	85 db                	test   %ebx,%ebx
417e99:	0f 89 2c ae 03 00    	jns    0x452ccb
417e9f:	33 ff                	xor    %edi,%edi
417ea1:	8b 55 f8             	mov    -0x8(%ebp),%edx
417ea4:	8b 5d dc             	mov    -0x24(%ebp),%ebx
417ea7:	85 db                	test   %ebx,%ebx
417ea9:	0f 85 2c af 03 00    	jne    0x452ddb
417eaf:	8b 7d f8             	mov    -0x8(%ebp),%edi
417eb2:	33 d2                	xor    %edx,%edx
417eb4:	6a 02                	push   $0x2
417eb6:	5b                   	pop    %ebx
417eb7:	e9 4c fd ff ff       	jmp    0x417c08
417ebc:	3b 55 f4             	cmp    -0xc(%ebp),%edx
417ebf:	0f 85 d9 b0 03 00    	jne    0x452f9e
417ec5:	8d 43 66             	lea    0x66(%ebx),%eax
417ec8:	e9 28 fd ff ff       	jmp    0x417bf5
417ecd:	6a 04                	push   $0x4
417ecf:	58                   	pop    %eax
417ed0:	03 f0                	add    %eax,%esi
417ed2:	6a 5c                	push   $0x5c
417ed4:	58                   	pop    %eax
417ed5:	89 75 fc             	mov    %esi,-0x4(%ebp)
417ed8:	66 39 06             	cmp    %ax,(%esi)
417edb:	6a 04                	push   $0x4
417edd:	58                   	pop    %eax
417ede:	0f 84 f6 c2 03 00    	je     0x4541da
417ee4:	0f b7 06             	movzwl (%esi),%eax
417ee7:	66 85 c0             	test   %ax,%ax
417eea:	0f 84 e8 03 00 00    	je     0x4182d8
417ef0:	85 ff                	test   %edi,%edi
417ef2:	75 0c                	jne    0x417f00
417ef4:	6a 5d                	push   $0x5d
417ef6:	5f                   	pop    %edi
417ef7:	66 3b c7             	cmp    %di,%ax
417efa:	0f 84 d8 03 00 00    	je     0x4182d8
417f00:	83 7d c4 00          	cmpl   $0x0,-0x3c(%ebp)
417f04:	8b f8                	mov    %eax,%edi
417f06:	89 7d e8             	mov    %edi,-0x18(%ebp)
417f09:	74 14                	je     0x417f1f
417f0b:	b9 00 fc 00 00       	mov    $0xfc00,%ecx
417f10:	23 c1                	and    %ecx,%eax
417f12:	b9 00 d8 00 00       	mov    $0xd800,%ecx
417f17:	3b c1                	cmp    %ecx,%eax
417f19:	0f 84 2a c3 03 00    	je     0x454249
417f1f:	83 7d d0 00          	cmpl   $0x0,-0x30(%ebp)
417f23:	75 14                	jne    0x417f39
417f25:	6a 5c                	push   $0x5c
417f27:	58                   	pop    %eax
417f28:	3b f8                	cmp    %eax,%edi
417f2a:	0f 84 3e c3 03 00    	je     0x45426e
417f30:	83 ff 5b             	cmp    $0x5b,%edi
417f33:	0f 84 7d c3 03 00    	je     0x4542b6
417f39:	8b 4d 0c             	mov    0xc(%ebp),%ecx
417f3c:	3b fb                	cmp    %ebx,%edi
417f3e:	0f 82 5d c7 03 00    	jb     0x4546a1
417f44:	0f 84 04 f8 ff ff    	je     0x41774e
417f4a:	6a 02                	push   $0x2
417f4c:	58                   	pop    %eax
417f4d:	6a 0d                	push   $0xd
417f4f:	89 45 a8             	mov    %eax,-0x58(%ebp)
417f52:	58                   	pop    %eax
417f53:	3b f8                	cmp    %eax,%edi
417f55:	0f 84 9b c3 03 00    	je     0x4542f6
417f5b:	6a 0a                	push   $0xa
417f5d:	58                   	pop    %eax
417f5e:	3b f8                	cmp    %eax,%edi
417f60:	0f 84 90 c3 03 00    	je     0x4542f6
417f66:	8b 45 28             	mov    0x28(%ebp),%eax
417f69:	57                   	push   %edi
417f6a:	53                   	push   %ebx
417f6b:	50                   	push   %eax
417f6c:	e9 01 f8 ff ff       	jmp    0x417772
417f71:	8b 55 f8             	mov    -0x8(%ebp),%edx
417f74:	6a 10                	push   $0x10
417f76:	59                   	pop    %ecx
417f77:	6a 09                	push   $0x9
417f79:	66 89 0a             	mov    %cx,(%edx)
417f7c:	03 d6                	add    %esi,%edx
417f7e:	59                   	pop    %ecx
417f7f:	66 89 0a             	mov    %cx,(%edx)
417f82:	03 d6                	add    %esi,%edx
417f84:	66 89 02             	mov    %ax,(%edx)
417f87:	03 d6                	add    %esi,%edx
417f89:	83 7d d4 fe          	cmpl   $0xfffffffe,-0x2c(%ebp)
417f8d:	89 55 f8             	mov    %edx,-0x8(%ebp)
417f90:	0f 85 dc f8 ff ff    	jne    0x417872
417f96:	e9 a2 c4 03 00       	jmp    0x45443d
417f9b:	83 cb ff             	or     $0xffffffff,%ebx
417f9e:	89 5d d4             	mov    %ebx,-0x2c(%ebp)
417fa1:	e9 32 f8 ff ff       	jmp    0x4177d8
417fa6:	8b bd 7c ff ff ff    	mov    -0x84(%ebp),%edi
417fac:	b9 eb ff ff 7f       	mov    $0x7fffffeb,%ecx
417fb1:	8b 12                	mov    (%edx),%edx
417fb3:	2b ca                	sub    %edx,%ecx
417fb5:	8d 47 fc             	lea    -0x4(%edi),%eax
417fb8:	3b c8                	cmp    %eax,%ecx
417fba:	0f 8c 41 c6 03 00    	jl     0x454601
417fc0:	8b 4d 2c             	mov    0x2c(%ebp),%ecx
417fc3:	8d 47 fc             	lea    -0x4(%edi),%eax
417fc6:	8b 7d f8             	mov    -0x8(%ebp),%edi
417fc9:	03 c2                	add    %edx,%eax
417fcb:	6a 02                	push   $0x2
417fcd:	89 01                	mov    %eax,(%ecx)
417fcf:	59                   	pop    %ecx
417fd0:	03 f9                	add    %ecx,%edi
417fd2:	6a 78                	push   $0x78
417fd4:	58                   	pop    %eax
417fd5:	66 89 0f             	mov    %cx,(%edi)
417fd8:	03 f9                	add    %ecx,%edi
417fda:	66 89 07             	mov    %ax,(%edi)
417fdd:	03 f9                	add    %ecx,%edi
417fdf:	66 89 0f             	mov    %cx,(%edi)
417fe2:	03 f9                	add    %ecx,%edi
417fe4:	e9 43 f8 ff ff       	jmp    0x41782c
417fe9:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
417fec:	83 f9 fe             	cmp    $0xfffffffe,%ecx
417fef:	75 06                	jne    0x417ff7
417ff1:	83 c9 ff             	or     $0xffffffff,%ecx
417ff4:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
417ff7:	8b 45 9c             	mov    -0x64(%ebp),%eax
417ffa:	8b da                	mov    %edx,%ebx
417ffc:	8b 7d a4             	mov    -0x5c(%ebp),%edi
417fff:	89 45 84             	mov    %eax,-0x7c(%ebp)
418002:	8b 45 ac             	mov    -0x54(%ebp),%eax
418005:	89 45 a8             	mov    %eax,-0x58(%ebp)
418008:	8b 45 cc             	mov    -0x34(%ebp),%eax
41800b:	6a 04                	push   $0x4
41800d:	89 4d 94             	mov    %ecx,-0x6c(%ebp)
418010:	59                   	pop    %ecx
418011:	0f be c0             	movsbl %al,%eax
418014:	23 c1                	and    %ecx,%eax
418016:	89 7d d8             	mov    %edi,-0x28(%ebp)
418019:	6a 30                	push   $0x30
41801b:	59                   	pop    %ecx
41801c:	0b c1                	or     %ecx,%eax
41801e:	c1 e8 02             	shr    $0x2,%eax
418021:	89 5d f0             	mov    %ebx,-0x10(%ebp)
418024:	66 89 02             	mov    %ax,(%edx)
418027:	6a 02                	push   $0x2
418029:	58                   	pop    %eax
41802a:	03 d0                	add    %eax,%edx
41802c:	89 55 f8             	mov    %edx,-0x8(%ebp)
41802f:	e9 e4 f4 ff ff       	jmp    0x417518
418034:	83 ff 1a             	cmp    $0x1a,%edi
418037:	0f 84 fb b3 03 00    	je     0x453438
41803d:	83 ff 19             	cmp    $0x19,%edi
418040:	0f 84 cf f4 ff ff    	je     0x417515
418046:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
418049:	83 f9 fe             	cmp    $0xfffffffe,%ecx
41804c:	75 0e                	jne    0x41805c
41804e:	8d 47 fa             	lea    -0x6(%edi),%eax
418051:	83 f8 10             	cmp    $0x10,%eax
418054:	77 06                	ja     0x41805c
418056:	83 c9 ff             	or     $0xffffffff,%ecx
418059:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
41805c:	8b 45 9c             	mov    -0x64(%ebp),%eax
41805f:	89 45 84             	mov    %eax,-0x7c(%ebp)
418062:	8b 45 a4             	mov    -0x5c(%ebp),%eax
418065:	89 45 d8             	mov    %eax,-0x28(%ebp)
418068:	8b 45 ac             	mov    -0x54(%ebp),%eax
41806b:	6a 1b                	push   $0x1b
41806d:	89 45 a8             	mov    %eax,-0x58(%ebp)
418070:	58                   	pop    %eax
418071:	89 4d 94             	mov    %ecx,-0x6c(%ebp)
418074:	3b f8                	cmp    %eax,%edi
418076:	0f 84 e4 b3 03 00    	je     0x453460
41807c:	6a 1c                	push   $0x1c
41807e:	58                   	pop    %eax
41807f:	3b f8                	cmp    %eax,%edi
418081:	0f 84 dc b6 03 00    	je     0x453763
418087:	85 ff                	test   %edi,%edi
418089:	0f 88 1f 02 00 00    	js     0x4182ae
41808f:	6a 0f                	push   $0xf
418091:	58                   	pop    %eax
418092:	3b f8                	cmp    %eax,%edi
418094:	0f 84 30 bb 03 00    	je     0x453bca
41809a:	6a 10                	push   $0x10
41809c:	58                   	pop    %eax
41809d:	3b f8                	cmp    %eax,%edi
41809f:	0f 84 25 bb 03 00    	je     0x453bca
4180a5:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4180a8:	83 ff 05             	cmp    $0x5,%edi
4180ab:	0f 84 e7 ba 03 00    	je     0x453b98
4180b1:	6a 04                	push   $0x4
4180b3:	58                   	pop    %eax
4180b4:	3b f8                	cmp    %eax,%edi
4180b6:	0f 84 dc ba 03 00    	je     0x453b98
4180bc:	3b f9                	cmp    %ecx,%edi
4180be:	0f 84 d4 ba 03 00    	je     0x453b98
4180c4:	6a 1d                	push   $0x1d