40cdd2:	6a 00                	push   $0x0
40cdd4:	33 d2                	xor    %edx,%edx
40cdd6:	33 c9                	xor    %ecx,%ecx
40cdd8:	e8 33 01 00 00       	call   0x40cf10
40cddd:	8b c3                	mov    %ebx,%eax
40cddf:	5f                   	pop    %edi
40cde0:	5e                   	pop    %esi
40cde1:	5b                   	pop    %ebx
40cde2:	8b e5                	mov    %ebp,%esp
40cde4:	5d                   	pop    %ebp
40cde5:	c2 08 00             	ret    $0x8
40cde8:	e8 a3 12 00 00       	call   0x40e090
40cded:	e9 27 ff ff ff       	jmp    0x40cd19
40cdf2:	e8 19 14 00 00       	call   0x40e210
40cdf7:	e9 1d ff ff ff       	jmp    0x40cd19
40cdfc:	b8 10 00 00 00       	mov    $0x10,%eax
40ce01:	e9 32 ff ff ff       	jmp    0x40cd38
40ce06:	b8 b0 22 40 00       	mov    $0x4022b0,%eax
40ce0b:	eb 03                	jmp    0x40ce10
40ce0d:	8d 49 00             	lea    0x0(%ecx),%ecx
40ce10:	66 8b 0f             	mov    (%edi),%cx
40ce13:	66 3b 08             	cmp    (%eax),%cx
40ce16:	0f 85 c2 00 00 00    	jne    0x40cede
40ce1c:	66 85 c9             	test   %cx,%cx
40ce1f:	74 19                	je     0x40ce3a
40ce21:	66 8b 4f 02          	mov    0x2(%edi),%cx
40ce25:	66 3b 48 02          	cmp    0x2(%eax),%cx
40ce29:	0f 85 af 00 00 00    	jne    0x40cede
40ce2f:	83 c7 04             	add    $0x4,%edi
40ce32:	83 c0 04             	add    $0x4,%eax
40ce35:	66 85 c9             	test   %cx,%cx
40ce38:	75 d6                	jne    0x40ce10
40ce3a:	33 c0                	xor    %eax,%eax
40ce3c:	85 c0                	test   %eax,%eax
40ce3e:	75 92                	jne    0x40cdd2
40ce40:	66 83 3d f0 4a 44 00 	cmpw   $0xa,0x444af0
40ce47:	0a
40ce48:	75 88                	jne    0x40cdd2
40ce4a:	8d 9b 00 00 00 00    	lea    0x0(%ebx),%ebx
40ce50:	33 c9                	xor    %ecx,%ecx
40ce52:	e8 19 fe ff ff       	call   0x40cc70
40ce57:	66 83 3d f0 4a 44 00 	cmpw   $0xa,0x444af0
40ce5e:	0a
40ce5f:	74 ef                	je     0x40ce50
40ce61:	6a 00                	push   $0x0
40ce63:	33 d2                	xor    %edx,%edx
40ce65:	33 c9                	xor    %ecx,%ecx
40ce67:	e8 a4 00 00 00       	call   0x40cf10
40ce6c:	66 83 3d f0 4a 44 00 	cmpw   $0x29,0x444af0
40ce73:	29
40ce74:	0f 84 63 ff ff ff    	je     0x40cddd
40ce7a:	bf 2e 00 00 00       	mov    $0x2e,%edi
40ce7f:	b9 50 00 00 00       	mov    $0x50,%ecx
40ce84:	e8 47 0e 00 00       	call   0x40dcd0
40ce89:	8b f0                	mov    %eax,%esi
40ce8b:	85 f6                	test   %esi,%esi
40ce8d:	0f 84 14 06 01 00    	je     0x41d4a7
40ce93:	b9 08 00 00 00       	mov    $0x8,%ecx
40ce98:	89 3e                	mov    %edi,(%esi)
40ce9a:	89 5e 38             	mov    %ebx,0x38(%esi)
40ce9d:	c7 05 d0 65 43 00 01 	movl   $0x1,0x4365d0
40cea4:	00 00 00
40cea7:	e8 c4 fd ff ff       	call   0x40cc70
40ceac:	8b 7d 08             	mov    0x8(%ebp),%edi
40ceaf:	c7 05 d0 65 43 00 00 	movl   $0x0,0x4365d0
40ceb6:	00 00 00
40ceb9:	81 ff b0 ba 40 00    	cmp    $0x40bab0,%edi
40cebf:	75 3a                	jne    0x40cefb
40cec1:	e8 ea eb ff ff       	call   0x40bab0
40cec6:	89 46 3c             	mov    %eax,0x3c(%esi)
40cec9:	8b c6                	mov    %esi,%eax
40cecb:	5f                   	pop    %edi
40cecc:	5e                   	pop    %esi
40cecd:	5b                   	pop    %ebx
40cece:	8b e5                	mov    %ebp,%esp
40ced0:	5d                   	pop    %ebp
40ced1:	c2 08 00             	ret    $0x8
40ced4:	1b c0                	sbb    %eax,%eax
40ced6:	83 c8 01             	or     $0x1,%eax
40ced9:	e9 de fe ff ff       	jmp    0x40cdbc
40cede:	1b c0                	sbb    %eax,%eax
40cee0:	83 c8 01             	or     $0x1,%eax
40cee3:	e9 54 ff ff ff       	jmp    0x40ce3c
40cee8:	66 83 3d f0 4a 44 00 	cmpw   $0xa,0x444af0
40ceef:	0a
40cef0:	0f 84 5a ff ff ff    	je     0x40ce50
40cef6:	8b 7d fc             	mov    -0x4(%ebp),%edi
40cef9:	eb 84                	jmp    0x40ce7f
40cefb:	8b cf                	mov    %edi,%ecx
40cefd:	ff 15 c4 a4 44 00    	call   *0x44a4c4
40cf03:	ff d7                	call   *%edi
40cf05:	eb bf                	jmp    0x40cec6
40cf07:	cc                   	int3
40cf08:	cc                   	int3
40cf09:	cc                   	int3
40cf0a:	cc                   	int3
40cf0b:	cc                   	int3
40cf0c:	cc                   	int3
40cf0d:	cc                   	int3
40cf0e:	cc                   	int3
40cf0f:	cc                   	int3
40cf10:	8b ff                	mov    %edi,%edi
40cf12:	55                   	push   %ebp
40cf13:	8b ec                	mov    %esp,%ebp
40cf15:	83 ec 18             	sub    $0x18,%esp
40cf18:	53                   	push   %ebx
40cf19:	56                   	push   %esi
40cf1a:	57                   	push   %edi
40cf1b:	6a 00                	push   $0x0
40cf1d:	68 70 0a 44 00       	push   $0x440a70
40cf22:	89 55 f4             	mov    %edx,-0xc(%ebp)
40cf25:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40cf28:	e8 84 b0 00 00       	call   0x417fb1
40cf2d:	83 c4 08             	add    $0x8,%esp
40cf30:	85 c0                	test   %eax,%eax
40cf32:	0f 85 39 06 01 00    	jne    0x41d571
40cf38:	8b 7d fc             	mov    -0x4(%ebp),%edi
40cf3b:	85 ff                	test   %edi,%edi
40cf3d:	0f 84 f8 00 00 00    	je     0x40d03b
40cf43:	83 7d f4 06          	cmpl   $0x6,-0xc(%ebp)
40cf47:	0f 8c 24 06 01 00    	jl     0x41d571
40cf4d:	8b 5d 08             	mov    0x8(%ebp),%ebx
40cf50:	a1 cc 65 43 00       	mov    0x4365cc,%eax
40cf55:	a3 c8 65 43 00       	mov    %eax,0x4365c8
40cf5a:	89 7d f0             	mov    %edi,-0x10(%ebp)
40cf5d:	f6 c3 21             	test   $0x21,%bl
40cf60:	75 50                	jne    0x40cfb2
40cf62:	e8 99 06 00 00       	call   0x40d600
40cf67:	0f b7 f0             	movzwl %ax,%esi
40cf6a:	56                   	push   %esi
40cf6b:	ff 15 ac a3 44 00    	call   *0x44a3ac
40cf71:	83 c4 04             	add    $0x4,%esp
40cf74:	85 c0                	test   %eax,%eax
40cf76:	74 05                	je     0x40cf7d
40cf78:	83 fe 0a             	cmp    $0xa,%esi
40cf7b:	75 e5                	jne    0x40cf62
40cf7d:	f6 c3 04             	test   $0x4,%bl
40cf80:	0f 85 d6 03 00 00    	jne    0x40d35c
40cf86:	b8 d0 22 40 00       	mov    $0x4022d0,%eax
40cf8b:	56                   	push   %esi
40cf8c:	50                   	push   %eax
40cf8d:	ff 15 b0 a3 44 00    	call   *0x44a3b0
40cf93:	83 c4 08             	add    $0x8,%esp
40cf96:	85 c0                	test   %eax,%eax
40cf98:	0f 85 5d 03 00 00    	jne    0x40d2fb
40cf9e:	a1 cc 65 43 00       	mov    0x4365cc,%eax
40cfa3:	3d c0 25 43 00       	cmp    $0x4325c0,%eax
40cfa8:	74 08                	je     0x40cfb2
40cfaa:	83 e8 02             	sub    $0x2,%eax
40cfad:	a3 cc 65 43 00       	mov    %eax,0x4365cc
40cfb2:	e8 49 06 00 00       	call   0x40d600
40cfb7:	83 3d 2c 95 44 00 00 	cmpl   $0x0,0x44952c
40cfbe:	0f b7 f0             	movzwl %ax,%esi
40cfc1:	0f 85 0b 05 01 00    	jne    0x41d4d2
40cfc7:	0f b7 c6             	movzwl %si,%eax
40cfca:	83 f8 0a             	cmp    $0xa,%eax
40cfcd:	0f 85 8a 00 00 00    	jne    0x40d05d
40cfd3:	83 e3 dd             	and    $0xffffffdd,%ebx
40cfd6:	89 5d 08             	mov    %ebx,0x8(%ebp)
40cfd9:	f6 c3 22             	test   $0x22,%bl
40cfdc:	0f 85 ba 00 00 00    	jne    0x40d09c
40cfe2:	66 89 37             	mov    %si,(%edi)
40cfe5:	83 c7 02             	add    $0x2,%edi
40cfe8:	56                   	push   %esi
40cfe9:	89 7d fc             	mov    %edi,-0x4(%ebp)
40cfec:	8b df                	mov    %edi,%ebx
40cfee:	ff 15 34 a4 44 00    	call   *0x44a434
40cff4:	83 c4 04             	add    $0x4,%esp
40cff7:	85 c0                	test   %eax,%eax
40cff9:	0f 85 81 03 00 00    	jne    0x40d380
40cfff:	66 83 fe 3e          	cmp    $0x3e,%si
40d003:	0f 84 97 02 00 00    	je     0x40d2a0
40d009:	66 83 fe 26          	cmp    $0x26,%si
40d00d:	0f 84 8d 02 00 00    	je     0x40d2a0
40d013:	66 83 fe 7c          	cmp    $0x7c,%si
40d017:	0f 84 83 02 00 00    	je     0x40d2a0
40d01d:	66 83 fe 3c          	cmp    $0x3c,%si
40d021:	0f 84 79 02 00 00    	je     0x40d2a0
40d027:	33 c0                	xor    %eax,%eax
40d029:	66 89 07             	mov    %ax,(%edi)
40d02c:	8b 45 f0             	mov    -0x10(%ebp),%eax
40d02f:	0f b7 00             	movzwl (%eax),%eax
40d032:	5f                   	pop    %edi
40d033:	5e                   	pop    %esi
40d034:	5b                   	pop    %ebx
40d035:	8b e5                	mov    %ebp,%esp
40d037:	5d                   	pop    %ebp
40d038:	c2 04 00             	ret    $0x4
40d03b:	80 3d 59 90 44 00 00 	cmpb   $0x0,0x449059
40d042:	0f 85 72 04 01 00    	jne    0x41d4ba
40d048:	a1 c8 65 43 00       	mov    0x4365c8,%eax
40d04d:	a3 cc 65 43 00       	mov    %eax,0x4365cc
40d052:	33 c0                	xor    %eax,%eax
40d054:	5f                   	pop    %edi
40d055:	5e                   	pop    %esi
40d056:	5b                   	pop    %ebx
40d057:	8b e5                	mov    %ebp,%esp
40d059:	5d                   	pop    %ebp
40d05a:	c2 04 00             	ret    $0x4
40d05d:	83 f8 41             	cmp    $0x41,%eax
40d060:	73 35                	jae    0x40d097
40d062:	83 f8 7c             	cmp    $0x7c,%eax
40d065:	77 35                	ja     0x40d09c
40d067:	0f b6 80 e0 d4 40 00 	movzbl 0x40d4e0(%eax),%eax
40d06e:	ff 24 85 c8 d4 40 00 	jmp    *0x40d4c8(,%eax,4)
40d075:	8b c3                	mov    %ebx,%eax
40d077:	24 2a                	and    $0x2a,%al
40d079:	3c 08                	cmp    $0x8,%al
40d07b:	75 1f                	jne    0x40d09c
40d07d:	f6 c3 22             	test   $0x22,%bl
40d080:	75 1a                	jne    0x40d09c
40d082:	f6 c3 10             	test   $0x10,%bl
40d085:	0f 85 48 ff ff ff    	jne    0x40cfd3
40d08b:	66 83 fe 29          	cmp    $0x29,%si
40d08f:	0f 85 3e ff ff ff    	jne    0x40cfd3
40d095:	eb 05                	jmp    0x40d09c
40d097:	83 f8 7c             	cmp    $0x7c,%eax
40d09a:	73 c6                	jae    0x40d062
40d09c:	66 83 fe 5e          	cmp    $0x5e,%si
40d0a0:	0f 84 f8 03 00 00    	je     0x40d49e
40d0a6:	66 83 fe 22          	cmp    $0x22,%si
40d0aa:	0f 84 e8 02 00 00    	je     0x40d398
40d0b0:	f6 c3 23             	test   $0x23,%bl
40d0b3:	75 33                	jne    0x40d0e8
40d0b5:	56                   	push   %esi
40d0b6:	ff 15 ac a3 44 00    	call   *0x44a3ac
40d0bc:	83 c4 04             	add    $0x4,%esp
40d0bf:	85 c0                	test   %eax,%eax
40d0c1:	0f 85 1b ff ff ff    	jne    0x40cfe2
40d0c7:	f6 c3 04             	test   $0x4,%bl
40d0ca:	0f 85 96 02 00 00    	jne    0x40d366
40d0d0:	b8 d0 22 40 00       	mov    $0x4022d0,%eax
40d0d5:	56                   	push   %esi
40d0d6:	50                   	push   %eax
40d0d7:	ff 15 b0 a3 44 00    	call   *0x44a3b0
40d0dd:	83 c4 08             	add    $0x8,%esp
40d0e0:	85 c0                	test   %eax,%eax
40d0e2:	0f 85 fa fe ff ff    	jne    0x40cfe2
40d0e8:	56                   	push   %esi
40d0e9:	ff 15 34 a4 44 00    	call   *0x44a434
40d0ef:	83 c4 04             	add    $0x4,%esp
40d0f2:	85 c0                	test   %eax,%eax
40d0f4:	0f 85 16 02 00 00    	jne    0x40d310
40d0fa:	8b 55 f4             	mov    -0xc(%ebp),%edx
40d0fd:	83 cb 40             	or     $0x40,%ebx
40d100:	66 89 37             	mov    %si,(%edi)
40d103:	83 c7 02             	add    $0x2,%edi
40d106:	89 5d 08             	mov    %ebx,0x8(%ebp)
40d109:	8b df                	mov    %edi,%ebx
40d10b:	2b 5d f0             	sub    -0x10(%ebp),%ebx
40d10e:	8d 42 ff             	lea    -0x1(%edx),%eax
40d111:	d1 fb                	sar    $1,%ebx
40d113:	89 7d fc             	mov    %edi,-0x4(%ebp)
40d116:	c7 05 d0 65 43 00 00 	movl   $0x0,0x4365d0
40d11d:	00 00 00
40d120:	89 45 f8             	mov    %eax,-0x8(%ebp)
40d123:	3b d8                	cmp    %eax,%ebx
40d125:	0f 8d c3 00 00 00    	jge    0x40d1ee
40d12b:	eb 03                	jmp    0x40d130
40d12d:	8d 49 00             	lea    0x0(%ecx),%ecx
40d130:	e8 cb 04 00 00       	call   0x40d600
40d135:	83 3d 2c 95 44 00 00 	cmpl   $0x0,0x44952c
40d13c:	0f b7 f0             	movzwl %ax,%esi
40d13f:	0f 85 c3 03 01 00    	jne    0x41d508
40d145:	0f b7 c6             	movzwl %si,%eax
40d148:	83 f8 41             	cmp    $0x41,%eax
40d14b:	72 45                	jb     0x40d192
40d14d:	83 f8 7c             	cmp    $0x7c,%eax
40d150:	73 40                	jae    0x40d192
40d152:	8b 45 08             	mov    0x8(%ebp),%eax
40d155:	66 83 fe 5e          	cmp    $0x5e,%si
40d159:	0f 84 ec 02 00 00    	je     0x40d44b
40d15f:	66 83 fe 22          	cmp    $0x22,%si
40d163:	0f 84 2c 01 00 00    	je     0x40d295
40d169:	a8 23                	test   $0x23,%al
40d16b:	74 47                	je     0x40d1b4
40d16d:	56                   	push   %esi
40d16e:	ff 15 34 a4 44 00    	call   *0x44a434
40d174:	83 c4 04             	add    $0x4,%esp
40d177:	85 c0                	test   %eax,%eax
40d179:	0f 85 a7 00 00 00    	jne    0x40d226
40d17f:	8b 45 f8             	mov    -0x8(%ebp),%eax
40d182:	43                   	inc    %ebx
40d183:	66 89 37             	mov    %si,(%edi)
40d186:	83 c7 02             	add    $0x2,%edi
40d189:	89 7d fc             	mov    %edi,-0x4(%ebp)
40d18c:	3b d8                	cmp    %eax,%ebx
40d18e:	7c a0                	jl     0x40d130
40d190:	eb 59                	jmp    0x40d1eb
40d192:	83 f8 7c             	cmp    $0x7c,%eax
40d195:	77 bb                	ja     0x40d152
40d197:	0f b6 80 78 d5 40 00 	movzbl 0x40d578(%eax),%eax
40d19e:	ff 24 85 60 d5 40 00 	jmp    *0x40d560(,%eax,4)
40d1a5:	8b 45 08             	mov    0x8(%ebp),%eax
40d1a8:	83 e0 dd             	and    $0xffffffdd,%eax
40d1ab:	89 45 08             	mov    %eax,0x8(%ebp)
40d1ae:	a8 22                	test   $0x22,%al
40d1b0:	74 36                	je     0x40d1e8
40d1b2:	eb 9e                	jmp    0x40d152
40d1b4:	56                   	push   %esi
40d1b5:	ff 15 ac a3 44 00    	call   *0x44a3ac
40d1bb:	83 c4 04             	add    $0x4,%esp
40d1be:	85 c0                	test   %eax,%eax
40d1c0:	75 26                	jne    0x40d1e8
40d1c2:	f6 45 08 04          	testb  $0x4,0x8(%ebp)
40d1c6:	0f 85 bf 00 00 00    	jne    0x40d28b
40d1cc:	b8 d0 22 40 00       	mov    $0x4022d0,%eax
40d1d1:	56                   	push   %esi
40d1d2:	50                   	push   %eax
40d1d3:	ff 15 b0 a3 44 00    	call   *0x44a3b0
40d1d9:	83 c4 08             	add    $0x8,%esp
40d1dc:	85 c0                	test   %eax,%eax
40d1de:	74 8d                	je     0x40d16d
40d1e0:	eb 06                	jmp    0x40d1e8
40d1e2:	f6 45 08 22          	testb  $0x22,0x8(%ebp)
40d1e6:	75 97                	jne    0x40d17f
40d1e8:	8b 45 f8             	mov    -0x8(%ebp),%eax
40d1eb:	8b 55 f4             	mov    -0xc(%ebp),%edx
40d1ee:	83 65 08 bf          	andl   $0xffffffbf,0x8(%ebp)
40d1f2:	33 c9                	xor    %ecx,%ecx
40d1f4:	66 89 0f             	mov    %cx,(%edi)
40d1f7:	3b d8                	cmp    %eax,%ebx
40d1f9:	7d 15                	jge    0x40d210
40d1fb:	8b 0d cc 65 43 00    	mov    0x4365cc,%ecx
40d201:	81 f9 c0 25 43 00    	cmp    $0x4325c0,%ecx
40d207:	74 07                	je     0x40d210
40d209:	83 2d cc 65 43 00 02 	subl   $0x2,0x4365cc
40d210:	3b da                	cmp    %edx,%ebx
40d212:	0f 8d 39 03 01 00    	jge    0x41d551
40d218:	5f                   	pop    %edi
40d219:	5e                   	pop    %esi
40d21a:	b8 00 40 00 00       	mov    $0x4000,%eax
40d21f:	5b                   	pop    %ebx
40d220:	8b e5                	mov    %ebp,%esp
40d222:	5d                   	pop    %ebp
40d223:	c2 04 00             	ret    $0x4
40d226:	8b 0d cc 65 43 00    	mov    0x4365cc,%ecx
40d22c:	8b c1                	mov    %ecx,%eax
40d22e:	2d c0 25 43 00       	sub    $0x4325c0,%eax
40d233:	83 e8 02             	sub    $0x2,%eax
40d236:	83 e0 fe             	and    $0xfffffffe,%eax
40d239:	83 f8 04             	cmp    $0x4,%eax
40d23c:	7c 2e                	jl     0x40d26c
40d23e:	0f b7 41 fc          	movzwl -0x4(%ecx),%eax
40d242:	50                   	push   %eax
40d243:	89 45 ec             	mov    %eax,-0x14(%ebp)
40d246:	ff 15 ac a3 44 00    	call   *0x44a3ac
40d24c:	83 c4 04             	add    $0x4,%esp
40d24f:	85 c0                	test   %eax,%eax
40d251:	75 19                	jne    0x40d26c