4088e3:	e8 3f b8 ff ff       	call   0x404127
4088e8:	89 85 9c fb ff ff    	mov    %eax,-0x464(%ebp)
4088ee:	85 f6                	test   %esi,%esi
4088f0:	75 2b                	jne    0x40891d
4088f2:	e8 30 b8 ff ff       	call   0x404127
4088f7:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4088fd:	e8 85 a3 ff ff       	call   0x402c87
408902:	80 bd c0 fb ff ff 00 	cmpb   $0x0,-0x440(%ebp)
408909:	74 0a                	je     0x408915
40890b:	8b 85 bc fb ff ff    	mov    -0x444(%ebp),%eax
408911:	83 60 70 fd          	andl   $0xfffffffd,0x70(%eax)
408915:	83 c8 ff             	or     $0xffffffff,%eax
408918:	e9 ed 0a 00 00       	jmp    0x40940a
40891d:	33 f6                	xor    %esi,%esi
40891f:	3b fe                	cmp    %esi,%edi
408921:	74 cf                	je     0x4088f2
408923:	0f b7 17             	movzwl (%edi),%edx
408926:	89 b5 e8 fb ff ff    	mov    %esi,-0x418(%ebp)
40892c:	89 b5 ec fb ff ff    	mov    %esi,-0x414(%ebp)
408932:	89 b5 c4 fb ff ff    	mov    %esi,-0x43c(%ebp)
408938:	89 b5 a8 fb ff ff    	mov    %esi,-0x458(%ebp)
40893e:	89 95 e0 fb ff ff    	mov    %edx,-0x420(%ebp)
408944:	66 3b d6             	cmp    %si,%dx
408947:	0f 84 a4 0a 00 00    	je     0x4093f1
40894d:	6a 02                	push   $0x2
40894f:	59                   	pop    %ecx
408950:	03 f9                	add    %ecx,%edi
408952:	89 bd a0 fb ff ff    	mov    %edi,-0x460(%ebp)
408958:	39 b5 e8 fb ff ff    	cmp    %esi,-0x418(%ebp)
40895e:	0f 8c 78 0a 00 00    	jl     0x4093dc
408964:	8d 42 e0             	lea    -0x20(%edx),%eax
408967:	66 83 f8 58          	cmp    $0x58,%ax
40896b:	77 0f                	ja     0x40897c
40896d:	0f b7 c2             	movzwl %dx,%eax
408970:	0f b6 80 b0 09 41 00 	movzbl 0x4109b0(%eax),%eax
408977:	83 e0 0f             	and    $0xf,%eax
40897a:	eb 02                	jmp    0x40897e
40897c:	33 c0                	xor    %eax,%eax
40897e:	8b b5 c4 fb ff ff    	mov    -0x43c(%ebp),%esi
408984:	6b c0 09             	imul   $0x9,%eax,%eax
408987:	0f b6 84 30 d0 09 41 	movzbl 0x4109d0(%eax,%esi,1),%eax
40898e:	00
40898f:	6a 08                	push   $0x8
408991:	c1 e8 04             	shr    $0x4,%eax
408994:	5e                   	pop    %esi
408995:	89 85 c4 fb ff ff    	mov    %eax,-0x43c(%ebp)
40899b:	3b c6                	cmp    %esi,%eax
40899d:	0f 84 4f ff ff ff    	je     0x4088f2
4089a3:	83 f8 07             	cmp    $0x7,%eax
4089a6:	0f 87 0d 0a 00 00    	ja     0x4093b9
4089ac:	ff 24 85 1c 94 40 00 	jmp    *0x40941c(,%eax,4)
4089b3:	33 c0                	xor    %eax,%eax
4089b5:	83 8d f4 fb ff ff ff 	orl    $0xffffffff,-0x40c(%ebp)
4089bc:	89 85 98 fb ff ff    	mov    %eax,-0x468(%ebp)
4089c2:	89 85 b0 fb ff ff    	mov    %eax,-0x450(%ebp)
4089c8:	89 85 d8 fb ff ff    	mov    %eax,-0x428(%ebp)
4089ce:	89 85 dc fb ff ff    	mov    %eax,-0x424(%ebp)
4089d4:	89 85 f8 fb ff ff    	mov    %eax,-0x408(%ebp)
4089da:	89 85 d0 fb ff ff    	mov    %eax,-0x430(%ebp)
4089e0:	e9 e0 09 00 00       	jmp    0x4093c5
4089e5:	0f b7 c2             	movzwl %dx,%eax
4089e8:	83 e8 20             	sub    $0x20,%eax
4089eb:	74 48                	je     0x408a35
4089ed:	83 e8 03             	sub    $0x3,%eax
4089f0:	74 34                	je     0x408a26
4089f2:	2b c6                	sub    %esi,%eax
4089f4:	74 24                	je     0x408a1a
4089f6:	2b c1                	sub    %ecx,%eax
4089f8:	74 14                	je     0x408a0e
4089fa:	83 e8 03             	sub    $0x3,%eax
4089fd:	0f 85 b6 09 00 00    	jne    0x4093b9
408a03:	09 b5 f8 fb ff ff    	or     %esi,-0x408(%ebp)
408a09:	e9 b7 09 00 00       	jmp    0x4093c5
408a0e:	83 8d f8 fb ff ff 04 	orl    $0x4,-0x408(%ebp)
408a15:	e9 ab 09 00 00       	jmp    0x4093c5
408a1a:	83 8d f8 fb ff ff 01 	orl    $0x1,-0x408(%ebp)
408a21:	e9 9f 09 00 00       	jmp    0x4093c5
408a26:	81 8d f8 fb ff ff 80 	orl    $0x80,-0x408(%ebp)
408a2d:	00 00 00
408a30:	e9 90 09 00 00       	jmp    0x4093c5
408a35:	09 8d f8 fb ff ff    	or     %ecx,-0x408(%ebp)
408a3b:	e9 85 09 00 00       	jmp    0x4093c5
408a40:	66 83 fa 2a          	cmp    $0x2a,%dx
408a44:	75 2b                	jne    0x408a71
408a46:	8b 03                	mov    (%ebx),%eax
408a48:	83 c3 04             	add    $0x4,%ebx
408a4b:	89 9d e4 fb ff ff    	mov    %ebx,-0x41c(%ebp)
408a51:	89 85 d8 fb ff ff    	mov    %eax,-0x428(%ebp)
408a57:	85 c0                	test   %eax,%eax
408a59:	0f 89 66 09 00 00    	jns    0x4093c5
408a5f:	83 8d f8 fb ff ff 04 	orl    $0x4,-0x408(%ebp)
408a66:	f7 9d d8 fb ff ff    	negl   -0x428(%ebp)
408a6c:	e9 54 09 00 00       	jmp    0x4093c5
408a71:	8b 85 d8 fb ff ff    	mov    -0x428(%ebp),%eax
408a77:	6b c0 0a             	imul   $0xa,%eax,%eax
408a7a:	0f b7 ca             	movzwl %dx,%ecx
408a7d:	8d 44 08 d0          	lea    -0x30(%eax,%ecx,1),%eax
408a81:	89 85 d8 fb ff ff    	mov    %eax,-0x428(%ebp)
408a87:	e9 39 09 00 00       	jmp    0x4093c5
408a8c:	83 a5 f4 fb ff ff 00 	andl   $0x0,-0x40c(%ebp)
408a93:	e9 2d 09 00 00       	jmp    0x4093c5
408a98:	66 83 fa 2a          	cmp    $0x2a,%dx
408a9c:	75 25                	jne    0x408ac3
408a9e:	8b 03                	mov    (%ebx),%eax
408aa0:	83 c3 04             	add    $0x4,%ebx
408aa3:	89 9d e4 fb ff ff    	mov    %ebx,-0x41c(%ebp)
408aa9:	89 85 f4 fb ff ff    	mov    %eax,-0x40c(%ebp)
408aaf:	85 c0                	test   %eax,%eax
408ab1:	0f 89 0e 09 00 00    	jns    0x4093c5
408ab7:	83 8d f4 fb ff ff ff 	orl    $0xffffffff,-0x40c(%ebp)
408abe:	e9 02 09 00 00       	jmp    0x4093c5
408ac3:	8b 85 f4 fb ff ff    	mov    -0x40c(%ebp),%eax
408ac9:	6b c0 0a             	imul   $0xa,%eax,%eax
408acc:	0f b7 ca             	movzwl %dx,%ecx
408acf:	8d 44 08 d0          	lea    -0x30(%eax,%ecx,1),%eax
408ad3:	89 85 f4 fb ff ff    	mov    %eax,-0x40c(%ebp)
408ad9:	e9 e7 08 00 00       	jmp    0x4093c5
408ade:	0f b7 c2             	movzwl %dx,%eax
408ae1:	83 f8 49             	cmp    $0x49,%eax
408ae4:	74 51                	je     0x408b37
408ae6:	83 f8 68             	cmp    $0x68,%eax
408ae9:	74 40                	je     0x408b2b
408aeb:	83 f8 6c             	cmp    $0x6c,%eax
408aee:	74 18                	je     0x408b08
408af0:	83 f8 77             	cmp    $0x77,%eax
408af3:	0f 85 cc 08 00 00    	jne    0x4093c5
408af9:	81 8d f8 fb ff ff 00 	orl    $0x800,-0x408(%ebp)
408b00:	08 00 00
408b03:	e9 bd 08 00 00       	jmp    0x4093c5
408b08:	66 83 3f 6c          	cmpw   $0x6c,(%edi)
408b0c:	75 11                	jne    0x408b1f
408b0e:	03 f9                	add    %ecx,%edi
408b10:	81 8d f8 fb ff ff 00 	orl    $0x1000,-0x408(%ebp)
408b17:	10 00 00
408b1a:	e9 a6 08 00 00       	jmp    0x4093c5
408b1f:	83 8d f8 fb ff ff 10 	orl    $0x10,-0x408(%ebp)
408b26:	e9 9a 08 00 00       	jmp    0x4093c5
408b2b:	83 8d f8 fb ff ff 20 	orl    $0x20,-0x408(%ebp)
408b32:	e9 8e 08 00 00       	jmp    0x4093c5
408b37:	0f b7 07             	movzwl (%edi),%eax
408b3a:	83 f8 36             	cmp    $0x36,%eax
408b3d:	75 19                	jne    0x408b58
408b3f:	66 83 7f 02 34       	cmpw   $0x34,0x2(%edi)
408b44:	75 12                	jne    0x408b58
408b46:	83 c7 04             	add    $0x4,%edi
408b49:	81 8d f8 fb ff ff 00 	orl    $0x8000,-0x408(%ebp)
408b50:	80 00 00
408b53:	e9 6d 08 00 00       	jmp    0x4093c5
408b58:	83 f8 33             	cmp    $0x33,%eax
408b5b:	75 19                	jne    0x408b76
408b5d:	66 83 7f 02 32       	cmpw   $0x32,0x2(%edi)
408b62:	75 12                	jne    0x408b76
408b64:	83 c7 04             	add    $0x4,%edi
408b67:	81 a5 f8 fb ff ff ff 	andl   $0xffff7fff,-0x408(%ebp)
408b6e:	7f ff ff
408b71:	e9 4f 08 00 00       	jmp    0x4093c5
408b76:	83 f8 64             	cmp    $0x64,%eax
408b79:	0f 84 46 08 00 00    	je     0x4093c5
408b7f:	83 f8 69             	cmp    $0x69,%eax
408b82:	0f 84 3d 08 00 00    	je     0x4093c5
408b88:	83 f8 6f             	cmp    $0x6f,%eax
408b8b:	0f 84 34 08 00 00    	je     0x4093c5
408b91:	83 f8 75             	cmp    $0x75,%eax
408b94:	0f 84 2b 08 00 00    	je     0x4093c5
408b9a:	83 f8 78             	cmp    $0x78,%eax
408b9d:	0f 84 22 08 00 00    	je     0x4093c5
408ba3:	83 f8 58             	cmp    $0x58,%eax
408ba6:	0f 84 19 08 00 00    	je     0x4093c5
408bac:	83 a5 c4 fb ff ff 00 	andl   $0x0,-0x43c(%ebp)
408bb3:	8b 85 d4 fb ff ff    	mov    -0x42c(%ebp),%eax
408bb9:	52                   	push   %edx
408bba:	8d b5 e8 fb ff ff    	lea    -0x418(%ebp),%esi
408bc0:	c7 85 d0 fb ff ff 01 	movl   $0x1,-0x430(%ebp)
408bc7:	00 00 00
408bca:	e8 b3 b9 ff ff       	call   0x404582
408bcf:	59                   	pop    %ecx
408bd0:	e9 f0 07 00 00       	jmp    0x4093c5
408bd5:	0f b7 c2             	movzwl %dx,%eax
408bd8:	83 f8 64             	cmp    $0x64,%eax
408bdb:	0f 8f 31 02 00 00    	jg     0x408e12
408be1:	0f 84 bf 02 00 00    	je     0x408ea6
408be7:	83 f8 53             	cmp    $0x53,%eax
408bea:	0f 8f 1c 01 00 00    	jg     0x408d0c
408bf0:	74 7f                	je     0x408c71
408bf2:	83 e8 41             	sub    $0x41,%eax
408bf5:	74 10                	je     0x408c07
408bf7:	2b c1                	sub    %ecx,%eax
408bf9:	74 5a                	je     0x408c55
408bfb:	2b c1                	sub    %ecx,%eax
408bfd:	74 08                	je     0x408c07
408bff:	2b c1                	sub    %ecx,%eax
408c01:	0f 85 e1 05 00 00    	jne    0x4091e8
408c07:	83 c2 20             	add    $0x20,%edx
408c0a:	c7 85 98 fb ff ff 01 	movl   $0x1,-0x468(%ebp)
408c11:	00 00 00
408c14:	89 95 e0 fb ff ff    	mov    %edx,-0x420(%ebp)
408c1a:	8b 8d f4 fb ff ff    	mov    -0x40c(%ebp),%ecx
408c20:	83 8d f8 fb ff ff 40 	orl    $0x40,-0x408(%ebp)
408c27:	8d bd fc fb ff ff    	lea    -0x404(%ebp),%edi
408c2d:	b8 00 02 00 00       	mov    $0x200,%eax
408c32:	89 bd f0 fb ff ff    	mov    %edi,-0x410(%ebp)
408c38:	89 85 ec fb ff ff    	mov    %eax,-0x414(%ebp)
408c3e:	85 c9                	test   %ecx,%ecx
408c40:	0f 89 8e 02 00 00    	jns    0x408ed4
408c46:	c7 85 f4 fb ff ff 06 	movl   $0x6,-0x40c(%ebp)
408c4d:	00 00 00
408c50:	e9 de 02 00 00       	jmp    0x408f33
408c55:	f7 85 f8 fb ff ff 30 	testl  $0x830,-0x408(%ebp)
408c5c:	08 00 00
408c5f:	0f 85 c9 00 00 00    	jne    0x408d2e
408c65:	83 8d f8 fb ff ff 20 	orl    $0x20,-0x408(%ebp)
408c6c:	e9 bd 00 00 00       	jmp    0x408d2e
408c71:	f7 85 f8 fb ff ff 30 	testl  $0x830,-0x408(%ebp)
408c78:	08 00 00
408c7b:	75 07                	jne    0x408c84
408c7d:	83 8d f8 fb ff ff 20 	orl    $0x20,-0x408(%ebp)
408c84:	8b bd f4 fb ff ff    	mov    -0x40c(%ebp),%edi
408c8a:	83 ff ff             	cmp    $0xffffffff,%edi
408c8d:	75 05                	jne    0x408c94
408c8f:	bf ff ff ff 7f       	mov    $0x7fffffff,%edi
408c94:	83 c3 04             	add    $0x4,%ebx
408c97:	f6 85 f8 fb ff ff 20 	testb  $0x20,-0x408(%ebp)
408c9e:	89 9d e4 fb ff ff    	mov    %ebx,-0x41c(%ebp)
408ca4:	8b 5b fc             	mov    -0x4(%ebx),%ebx
408ca7:	89 9d f0 fb ff ff    	mov    %ebx,-0x410(%ebp)
408cad:	0f 84 f9 04 00 00    	je     0x4091ac
408cb3:	85 db                	test   %ebx,%ebx
408cb5:	75 0b                	jne    0x408cc2
408cb7:	a1 e0 2d 41 00       	mov    0x412de0,%eax
408cbc:	89 85 f0 fb ff ff    	mov    %eax,-0x410(%ebp)
408cc2:	83 a5 ec fb ff ff 00 	andl   $0x0,-0x414(%ebp)
408cc9:	8b b5 f0 fb ff ff    	mov    -0x410(%ebp),%esi
408ccf:	85 ff                	test   %edi,%edi
408cd1:	0f 8e 11 05 00 00    	jle    0x4091e8
408cd7:	8a 06                	mov    (%esi),%al
408cd9:	84 c0                	test   %al,%al
408cdb:	0f 84 07 05 00 00    	je     0x4091e8
408ce1:	8d 8d b4 fb ff ff    	lea    -0x44c(%ebp),%ecx
408ce7:	0f b6 c0             	movzbl %al,%eax
408cea:	51                   	push   %ecx
408ceb:	50                   	push   %eax
408cec:	e8 2a 20 00 00       	call   0x40ad1b
408cf1:	59                   	pop    %ecx
408cf2:	59                   	pop    %ecx
408cf3:	85 c0                	test   %eax,%eax
408cf5:	74 01                	je     0x408cf8
408cf7:	46                   	inc    %esi
408cf8:	46                   	inc    %esi
408cf9:	ff 85 ec fb ff ff    	incl   -0x414(%ebp)
408cff:	39 bd ec fb ff ff    	cmp    %edi,-0x414(%ebp)
408d05:	7c d0                	jl     0x408cd7
408d07:	e9 dc 04 00 00       	jmp    0x4091e8
408d0c:	83 e8 58             	sub    $0x58,%eax
408d0f:	0f 84 df 02 00 00    	je     0x408ff4
408d15:	2b c1                	sub    %ecx,%eax
408d17:	0f 84 95 00 00 00    	je     0x408db2
408d1d:	83 e8 07             	sub    $0x7,%eax
408d20:	0f 84 f4 fe ff ff    	je     0x408c1a
408d26:	2b c1                	sub    %ecx,%eax
408d28:	0f 85 ba 04 00 00    	jne    0x4091e8
408d2e:	0f b7 03             	movzwl (%ebx),%eax
408d31:	83 c3 04             	add    $0x4,%ebx
408d34:	33 f6                	xor    %esi,%esi
408d36:	46                   	inc    %esi
408d37:	f6 85 f8 fb ff ff 20 	testb  $0x20,-0x408(%ebp)
408d3e:	89 b5 d0 fb ff ff    	mov    %esi,-0x430(%ebp)
408d44:	89 9d e4 fb ff ff    	mov    %ebx,-0x41c(%ebp)
408d4a:	89 85 a4 fb ff ff    	mov    %eax,-0x45c(%ebp)
408d50:	74 42                	je     0x408d94
408d52:	88 85 c8 fb ff ff    	mov    %al,-0x438(%ebp)
408d58:	8d 85 b4 fb ff ff    	lea    -0x44c(%ebp),%eax
408d5e:	50                   	push   %eax
408d5f:	8b 85 b4 fb ff ff    	mov    -0x44c(%ebp),%eax
408d65:	c6 85 c9 fb ff ff 00 	movb   $0x0,-0x437(%ebp)
408d6c:	ff b0 ac 00 00 00    	push   0xac(%eax)
408d72:	8d 85 c8 fb ff ff    	lea    -0x438(%ebp),%eax
408d78:	50                   	push   %eax
408d79:	8d 85 fc fb ff ff    	lea    -0x404(%ebp),%eax
408d7f:	50                   	push   %eax
408d80:	e8 66 1e 00 00       	call   0x40abeb
408d85:	83 c4 10             	add    $0x10,%esp
408d88:	85 c0                	test   %eax,%eax
408d8a:	79 0f                	jns    0x408d9b
408d8c:	89 b5 b0 fb ff ff    	mov    %esi,-0x450(%ebp)
408d92:	eb 07                	jmp    0x408d9b
408d94:	66 89 85 fc fb ff ff 	mov    %ax,-0x404(%ebp)
408d9b:	8d 85 fc fb ff ff    	lea    -0x404(%ebp),%eax
408da1:	89 85 f0 fb ff ff    	mov    %eax,-0x410(%ebp)
408da7:	89 b5 ec fb ff ff    	mov    %esi,-0x414(%ebp)
408dad:	e9 36 04 00 00       	jmp    0x4091e8
408db2:	8b 03                	mov    (%ebx),%eax
408db4:	83 c3 04             	add    $0x4,%ebx
408db7:	89 9d e4 fb ff ff    	mov    %ebx,-0x41c(%ebp)
408dbd:	85 c0                	test   %eax,%eax
408dbf:	74 3a                	je     0x408dfb
408dc1:	8b 48 04             	mov    0x4(%eax),%ecx
408dc4:	85 c9                	test   %ecx,%ecx
408dc6:	74 33                	je     0x408dfb
408dc8:	f7 85 f8 fb ff ff 00 	testl  $0x800,-0x408(%ebp)
408dcf:	08 00 00
408dd2:	0f bf 00             	movswl (%eax),%eax
408dd5:	89 8d f0 fb ff ff    	mov    %ecx,-0x410(%ebp)
408ddb:	74 12                	je     0x408def
408ddd:	99                   	cltd
408dde:	2b c2                	sub    %edx,%eax
408de0:	c7 85 d0 fb ff ff 01 	movl   $0x1,-0x430(%ebp)
408de7:	00 00 00
408dea:	e9 f1 03 00 00       	jmp    0x4091e0
408def:	83 a5 d0 fb ff ff 00 	andl   $0x0,-0x430(%ebp)
408df6:	e9 e7 03 00 00       	jmp    0x4091e2
408dfb:	a1 e0 2d 41 00       	mov    0x412de0,%eax
408e00:	89 85 f0 fb ff ff    	mov    %eax,-0x410(%ebp)
408e06:	50                   	push   %eax
408e07:	e8 54 1d 00 00       	call   0x40ab60
408e0c:	59                   	pop    %ecx
408e0d:	e9 d0 03 00 00       	jmp    0x4091e2
408e12:	83 f8 70             	cmp    $0x70,%eax
408e15:	0f 8f e5 01 00 00    	jg     0x409000
408e1b:	0f 84 cd 01 00 00    	je     0x408fee
408e21:	83 f8 65             	cmp    $0x65,%eax
408e24:	0f 8c be 03 00 00    	jl     0x4091e8
408e2a:	83 f8 67             	cmp    $0x67,%eax
408e2d:	0f 8e e7 fd ff ff    	jle    0x408c1a
408e33:	83 f8 69             	cmp    $0x69,%eax
408e36:	74 6e                	je     0x408ea6
408e38:	83 f8 6e             	cmp    $0x6e,%eax
408e3b:	74 24                	je     0x408e61
408e3d:	83 f8 6f             	cmp    $0x6f,%eax
408e40:	0f 85 a2 03 00 00    	jne    0x4091e8
408e46:	f6 85 f8 fb ff ff 80 	testb  $0x80,-0x408(%ebp)
408e4d:	89 b5 e0 fb ff ff    	mov    %esi,-0x420(%ebp)
408e53:	74 62                	je     0x408eb7
408e55:	81 8d f8 fb ff ff 00 	orl    $0x200,-0x408(%ebp)
408e5c:	02 00 00
408e5f:	eb 56                	jmp    0x408eb7
408e61:	83 c3 04             	add    $0x4,%ebx
408e64:	89 9d e4 fb ff ff    	mov    %ebx,-0x41c(%ebp)
408e6a:	8b 5b fc             	mov    -0x4(%ebx),%ebx
408e6d:	e8 d5 1c 00 00       	call   0x40ab47
408e72:	85 c0                	test   %eax,%eax
408e74:	0f 84 78 fa ff ff    	je     0x4088f2
408e7a:	f6 85 f8 fb ff ff 20 	testb  $0x20,-0x408(%ebp)
408e81:	74 0c                	je     0x408e8f
408e83:	66 8b 85 e8 fb ff ff 	mov    -0x418(%ebp),%ax
408e8a:	66 89 03             	mov    %ax,(%ebx)
408e8d:	eb 08                	jmp    0x408e97
408e8f:	8b 85 e8 fb ff ff    	mov    -0x418(%ebp),%eax
408e95:	89 03                	mov    %eax,(%ebx)
408e97:	c7 85 b0 fb ff ff 01 	movl   $0x1,-0x450(%ebp)
408e9e:	00 00 00