409ee2:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
409ee9:	e8 d2 fb ff ff       	call   0x409ac0
409eee:	5f                   	pop    %edi
409eef:	8b c6                	mov    %esi,%eax
409ef1:	5e                   	pop    %esi
409ef2:	5b                   	pop    %ebx
409ef3:	5d                   	pop    %ebp
409ef4:	c2 04 00             	ret    $0x4
409ef7:	83 7b 0c 04          	cmpl   $0x4,0xc(%ebx)
409efb:	75 b3                	jne    0x409eb0
409efd:	ff 73 08             	push   0x8(%ebx)
409f00:	8b 4e 08             	mov    0x8(%esi),%ecx
409f03:	e8 9f e2 ff ff       	call   0x4081a7
409f08:	eb e5                	jmp    0x409eef
409f0a:	8b cf                	mov    %edi,%ecx
409f0c:	e8 53 bb ff ff       	call   0x405a64
409f11:	57                   	push   %edi
409f12:	e8 55 71 01 00       	call   0x42106c
409f17:	83 66 08 00          	andl   $0x0,0x8(%esi)
409f1b:	59                   	pop    %ecx
409f1c:	eb 9a                	jmp    0x409eb8
409f1e:	8b 3e                	mov    (%esi),%edi
409f20:	85 ff                	test   %edi,%edi
409f22:	74 b8                	je     0x409edc
409f24:	8d 4f 08             	lea    0x8(%edi),%ecx
409f27:	e9 d2 5e 03 00       	jmp    0x43fdfe
409f2c:	8b 0e                	mov    (%esi),%ecx
409f2e:	85 c9                	test   %ecx,%ecx
409f30:	74 aa                	je     0x409edc
409f32:	51                   	push   %ecx
409f33:	e8 fc ee ff ff       	call   0x408e34
409f38:	eb a2                	jmp    0x409edc
409f3a:	55                   	push   %ebp
409f3b:	8b ec                	mov    %esp,%ebp
409f3d:	56                   	push   %esi
409f3e:	6a 10                	push   $0x10
409f40:	8b f1                	mov    %ecx,%esi
409f42:	e8 af 70 01 00       	call   0x420ff6
409f47:	59                   	pop    %ecx
409f48:	85 c0                	test   %eax,%eax
409f4a:	74 1b                	je     0x409f67
409f4c:	ff 75 08             	push   0x8(%ebp)
409f4f:	8b c8                	mov    %eax,%ecx
409f51:	e8 eb df ff ff       	call   0x407f41
409f56:	89 46 08             	mov    %eax,0x8(%esi)
409f59:	8b c6                	mov    %esi,%eax
409f5b:	c7 46 0c 04 00 00 00 	movl   $0x4,0xc(%esi)
409f62:	5e                   	pop    %esi
409f63:	5d                   	pop    %ebp
409f64:	c2 04 00             	ret    $0x4
409f67:	33 c0                	xor    %eax,%eax
409f69:	eb eb                	jmp    0x409f56
409f6b:	55                   	push   %ebp
409f6c:	8b ec                	mov    %esp,%ebp
409f6e:	83 ec 18             	sub    $0x18,%esp
409f71:	83 65 ec 00          	andl   $0x0,-0x14(%ebp)
409f75:	8d 45 ec             	lea    -0x14(%ebp),%eax
409f78:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
409f7c:	56                   	push   %esi
409f7d:	83 ce ff             	or     $0xffffffff,%esi
409f80:	c7 45 f8 01 00 00 00 	movl   $0x1,-0x8(%ebp)
409f87:	56                   	push   %esi
409f88:	50                   	push   %eax
409f89:	ff 75 0c             	push   0xc(%ebp)
409f8c:	ff 75 08             	push   0x8(%ebp)
409f8f:	e8 6c 00 00 00       	call   0x40a000
409f94:	85 c0                	test   %eax,%eax
409f96:	78 14                	js     0x409fac
409f98:	8d 4d ec             	lea    -0x14(%ebp),%ecx
409f9b:	e8 f9 f3 ff ff       	call   0x409399
409fa0:	84 c0                	test   %al,%al
409fa2:	8b 45 10             	mov    0x10(%ebp),%eax
409fa5:	0f 95 c1             	setne  %cl
409fa8:	33 f6                	xor    %esi,%esi
409faa:	88 08                	mov    %cl,(%eax)
409fac:	8d 4d ec             	lea    -0x14(%ebp),%ecx
409faf:	e8 6c fa ff ff       	call   0x409a20
409fb4:	8b c6                	mov    %esi,%eax
409fb6:	5e                   	pop    %esi
409fb7:	8b e5                	mov    %ebp,%esp
409fb9:	5d                   	pop    %ebp
409fba:	c2 0c 00             	ret    $0xc
409fbd:	55                   	push   %ebp
409fbe:	8b ec                	mov    %esp,%ebp
409fc0:	8b 55 08             	mov    0x8(%ebp),%edx
409fc3:	81 c1 34 01 00 00    	add    $0x134,%ecx
409fc9:	56                   	push   %esi
409fca:	83 ec 10             	sub    $0x10,%esp
409fcd:	8b f4                	mov    %esp,%esi
409fcf:	8b 02                	mov    (%edx),%eax
409fd1:	89 06                	mov    %eax,(%esi)
409fd3:	8b 42 04             	mov    0x4(%edx),%eax
409fd6:	89 46 04             	mov    %eax,0x4(%esi)
409fd9:	8b 42 08             	mov    0x8(%edx),%eax
409fdc:	89 46 08             	mov    %eax,0x8(%esi)
409fdf:	8b 42 0c             	mov    0xc(%edx),%eax
409fe2:	89 46 0c             	mov    %eax,0xc(%esi)
409fe5:	ff 00                	incl   (%eax)
409fe7:	e8 f4 e2 ff ff       	call   0x4082e0
409fec:	5e                   	pop    %esi
409fed:	5d                   	pop    %ebp
409fee:	c2 04 00             	ret    $0x4
409ff1:	cc                   	int3
409ff2:	cc                   	int3
409ff3:	cc                   	int3
409ff4:	cc                   	int3
409ff5:	cc                   	int3
409ff6:	cc                   	int3
409ff7:	cc                   	int3
409ff8:	cc                   	int3
409ff9:	cc                   	int3
409ffa:	cc                   	int3
409ffb:	cc                   	int3
409ffc:	cc                   	int3
409ffd:	cc                   	int3
409ffe:	cc                   	int3
409fff:	cc                   	int3
40a000:	55                   	push   %ebp
40a001:	8b ec                	mov    %esp,%ebp
40a003:	83 e4 f8             	and    $0xfffffff8,%esp
40a006:	81 ec 18 01 00 00    	sub    $0x118,%esp
40a00c:	a1 80 74 4c 00       	mov    0x4c7480,%eax
40a011:	89 4c 24 04          	mov    %ecx,0x4(%esp)
40a015:	56                   	push   %esi
40a016:	57                   	push   %edi
40a017:	a8 01                	test   $0x1,%al
40a019:	0f 84 17 15 00 00    	je     0x40b536
40a01f:	8b 7d 10             	mov    0x10(%ebp),%edi
40a022:	33 c0                	xor    %eax,%eax
40a024:	6a 08                	push   $0x8
40a026:	66 c7 44 24 5c 01 00 	movw   $0x1,0x5c(%esp)
40a02d:	89 7c 24 24          	mov    %edi,0x24(%esp)
40a031:	c7 44 24 28 00 00 00 	movl   $0x0,0x28(%esp)
40a038:	00
40a039:	89 44 24 0c          	mov    %eax,0xc(%esp)
40a03d:	89 44 24 2c          	mov    %eax,0x2c(%esp)
40a041:	66 c7 44 24 30 01 00 	movw   $0x1,0x30(%esp)
40a048:	e8 a9 6f 01 00       	call   0x420ff6
40a04d:	8b d0                	mov    %eax,%edx
40a04f:	89 44 24 20          	mov    %eax,0x20(%esp)
40a053:	83 c4 04             	add    $0x4,%esp
40a056:	85 d2                	test   %edx,%edx
40a058:	0f 84 2c 16 00 00    	je     0x40b68a
40a05e:	c7 02 14 00 00 00    	movl   $0x14,(%edx)
40a064:	8b 75 0c             	mov    0xc(%ebp),%esi
40a067:	c7 42 04 00 00 00 00 	movl   $0x0,0x4(%edx)
40a06e:	89 54 24 54          	mov    %edx,0x54(%esp)
40a072:	8b 55 08             	mov    0x8(%ebp),%edx
40a075:	8b 0e                	mov    (%esi),%ecx
40a077:	c7 44 24 50 01 00 00 	movl   $0x1,0x50(%esp)
40a07e:	00
40a07f:	c7 44 24 10 17 00 00 	movl   $0x17,0x10(%esp)
40a086:	00
40a087:	8b 42 04             	mov    0x4(%edx),%eax
40a08a:	8b 04 88             	mov    (%eax,%ecx,4),%eax
40a08d:	0f bf 40 0a          	movswl 0xa(%eax),%eax
40a091:	89 44 24 5c          	mov    %eax,0x5c(%esp)
40a095:	eb 73                	jmp    0x40a10a
40a097:	c6 44 24 17 01       	movb   $0x1,0x17(%esp)
40a09c:	80 7c 24 17 00       	cmpb   $0x0,0x17(%esp)
40a0a1:	8b 06                	mov    (%esi),%eax
40a0a3:	8b 4c 24 60          	mov    0x60(%esp),%ecx
40a0a7:	8b 40 18             	mov    0x18(%eax),%eax
40a0aa:	89 41 1c             	mov    %eax,0x1c(%ecx)
40a0ad:	8b 06                	mov    (%esi),%eax
40a0af:	8b 4c 24 3c          	mov    0x3c(%esp),%ecx
40a0b3:	8b 40 1c             	mov    0x1c(%eax),%eax
40a0b6:	89 41 18             	mov    %eax,0x18(%ecx)
40a0b9:	8b 0e                	mov    (%esi),%ecx
40a0bb:	a1 60 74 4c 00       	mov    0x4c7460,%eax
40a0c0:	89 41 18             	mov    %eax,0x18(%ecx)
40a0c3:	8b 0e                	mov    (%esi),%ecx
40a0c5:	a1 5c 74 4c 00       	mov    0x4c745c,%eax
40a0ca:	89 41 1c             	mov    %eax,0x1c(%ecx)
40a0cd:	0f 84 d9 04 00 00    	je     0x40a5ac
40a0d3:	8b 06                	mov    (%esi),%eax
40a0d5:	85 c0                	test   %eax,%eax
40a0d7:	0f 84 cf 04 00 00    	je     0x40a5ac
40a0dd:	8b 40 14             	mov    0x14(%eax),%eax
40a0e0:	85 c0                	test   %eax,%eax
40a0e2:	0f 84 c4 04 00 00    	je     0x40a5ac
40a0e8:	ff 74 24 4c          	push   0x4c(%esp)
40a0ec:	8b 75 0c             	mov    0xc(%ebp),%esi
40a0ef:	8b 4c 24 10          	mov    0x10(%esp),%ecx
40a0f3:	50                   	push   %eax
40a0f4:	56                   	push   %esi
40a0f5:	ff 75 08             	push   0x8(%ebp)
40a0f8:	ff 06                	incl   (%esi)
40a0fa:	e8 21 29 00 00       	call   0x40ca20
40a0ff:	85 c0                	test   %eax,%eax
40a101:	0f 88 67 6c 03 00    	js     0x440d6e
40a107:	8b 55 08             	mov    0x8(%ebp),%edx
40a10a:	8b 45 14             	mov    0x14(%ebp),%eax
40a10d:	8b 0e                	mov    (%esi),%ecx
40a10f:	3b c8                	cmp    %eax,%ecx
40a111:	74 53                	je     0x40a166
40a113:	8b 72 04             	mov    0x4(%edx),%esi
40a116:	89 74 24 40          	mov    %esi,0x40(%esp)
40a11a:	8b 14 8e             	mov    (%esi,%ecx,4),%edx
40a11d:	0f b7 42 08          	movzwl 0x8(%edx),%eax
40a121:	66 83 f8 7f          	cmp    $0x7f,%ax
40a125:	74 3f                	je     0x40a166
40a127:	98                   	cwtl
40a128:	83 f8 33             	cmp    $0x33,%eax
40a12b:	0f 84 ab 00 00 00    	je     0x40a1dc
40a131:	83 f8 4f             	cmp    $0x4f,%eax
40a134:	74 30                	je     0x40a166
40a136:	83 f8 05             	cmp    $0x5,%eax
40a139:	0f 84 bd 03 00 00    	je     0x40a4fc
40a13f:	83 f8 58             	cmp    $0x58,%eax
40a142:	77 22                	ja     0x40a166
40a144:	0f b6 80 ac b7 40 00 	movzbl 0x40b7ac(%eax),%eax
40a14b:	ff 24 85 40 b7 40 00 	jmp    *0x40b740(,%eax,4)
40a152:	8b 02                	mov    (%edx),%eax
40a154:	83 f8 04             	cmp    $0x4,%eax
40a157:	0f 8c 49 10 00 00    	jl     0x40b1a6
40a15d:	83 f8 27             	cmp    $0x27,%eax
40a160:	0f 8d 40 10 00 00    	jge    0x40b1a6
40a166:	be 14 00 00 00       	mov    $0x14,%esi
40a16b:	89 74 24 10          	mov    %esi,0x10(%esp)
40a16f:	90                   	nop
40a170:	8a 4c 24 59          	mov    0x59(%esp),%cl
40a174:	8b 54 24 1c          	mov    0x1c(%esp),%edx
40a178:	84 c9                	test   %cl,%cl
40a17a:	0f 85 65 05 00 00    	jne    0x40a6e5
40a180:	8b c2                	mov    %edx,%eax
40a182:	6b 00 15             	imul   $0x15,(%eax),%eax
40a185:	0f b6 84 30 50 53 4a 	movzbl 0x4a5350(%eax,%esi,1),%eax
40a18c:	00
40a18d:	83 f8 03             	cmp    $0x3,%eax
40a190:	0f 85 fe 02 00 00    	jne    0x40a494
40a196:	83 7c 24 24 01       	cmpl   $0x1,0x24(%esp)
40a19b:	0f 85 91 15 00 00    	jne    0x40b732
40a1a1:	8b 44 24 28          	mov    0x28(%esp),%eax
40a1a5:	33 ff                	xor    %edi,%edi
40a1a7:	89 44 24 08          	mov    %eax,0x8(%esp)
40a1ab:	89 7c 24 18          	mov    %edi,0x18(%esp)
40a1af:	85 c0                	test   %eax,%eax
40a1b1:	0f 85 6a 07 00 00    	jne    0x40a921
40a1b7:	85 d2                	test   %edx,%edx
40a1b9:	74 17                	je     0x40a1d2
40a1bb:	eb 03                	jmp    0x40a1c0
40a1bd:	8d 49 00             	lea    0x0(%ecx),%ecx
40a1c0:	8b 72 04             	mov    0x4(%edx),%esi
40a1c3:	52                   	push   %edx
40a1c4:	e8 a3 6e 01 00       	call   0x42106c
40a1c9:	83 c4 04             	add    $0x4,%esp
40a1cc:	8b d6                	mov    %esi,%edx
40a1ce:	85 f6                	test   %esi,%esi
40a1d0:	75 ee                	jne    0x40a1c0
40a1d2:	8b c7                	mov    %edi,%eax
40a1d4:	5f                   	pop    %edi
40a1d5:	5e                   	pop    %esi
40a1d6:	8b e5                	mov    %ebp,%esp
40a1d8:	5d                   	pop    %ebp
40a1d9:	c2 10 00             	ret    $0x10
40a1dc:	8b 74 24 24          	mov    0x24(%esp),%esi
40a1e0:	c7 44 24 10 16 00 00 	movl   $0x16,0x10(%esp)
40a1e7:	00
40a1e8:	85 f6                	test   %esi,%esi
40a1ea:	0f 85 d1 06 00 00    	jne    0x40a8c1
40a1f0:	81 ff 88 74 4c 00    	cmp    $0x4c7488,%edi
40a1f6:	74 3e                	je     0x40a236
40a1f8:	83 7f 0c 04          	cmpl   $0x4,0xc(%edi)
40a1fc:	0f 84 38 0f 00 00    	je     0x40b13a
40a202:	8b 77 08             	mov    0x8(%edi),%esi
40a205:	85 f6                	test   %esi,%esi
40a207:	0f 85 3f 0f 00 00    	jne    0x40b14c
40a20d:	8b 47 0c             	mov    0xc(%edi),%eax
40a210:	83 f8 05             	cmp    $0x5,%eax
40a213:	0f 8d 72 67 03 00    	jge    0x44098b
40a219:	68 88 74 4c 00       	push   $0x4c7488
40a21e:	8b cf                	mov    %edi,%ecx
40a220:	c7 47 0c 01 00 00 00 	movl   $0x1,0xc(%edi)
40a227:	c7 07 00 00 00 00    	movl   $0x0,(%edi)
40a22d:	e8 8e f8 ff ff       	call   0x409ac0
40a232:	8b 74 24 24          	mov    0x24(%esp),%esi
40a236:	8b 44 24 08          	mov    0x8(%esp),%eax
40a23a:	46                   	inc    %esi
40a23b:	89 74 24 24          	mov    %esi,0x24(%esp)
40a23f:	83 fe 01             	cmp    $0x1,%esi
40a242:	0f 85 c5 06 00 00    	jne    0x40a90d
40a248:	89 7c 24 4c          	mov    %edi,0x4c(%esp)
40a24c:	83 3d 80 72 4c 00 00 	cmpl   $0x0,0x4c7280
40a253:	8b 45 0c             	mov    0xc(%ebp),%eax
40a256:	8b 08                	mov    (%eax),%ecx
40a258:	8b 45 08             	mov    0x8(%ebp),%eax
40a25b:	8b 40 04             	mov    0x4(%eax),%eax
40a25e:	8b 04 88             	mov    (%eax,%ecx,4),%eax
40a261:	8b 00                	mov    (%eax),%eax
40a263:	89 44 24 18          	mov    %eax,0x18(%esp)
40a267:	0f 84 43 03 00 00    	je     0x40a5b0
40a26d:	80 3d 89 72 4c 00 00 	cmpb   $0x0,0x4c7289
40a274:	0f 85 aa 68 03 00    	jne    0x440b24
40a27a:	8b 35 84 72 4c 00    	mov    0x4c7284,%esi
40a280:	83 3e 00             	cmpl   $0x0,(%esi)
40a283:	0f 84 27 03 00 00    	je     0x40a5b0
40a289:	8b 0d 40 74 4c 00    	mov    0x4c7440,%ecx
40a28f:	c6 44 24 17 00       	movb   $0x0,0x17(%esp)
40a294:	f6 c1 01             	test   $0x1,%cl
40a297:	0f 84 98 68 03 00    	je     0x440b35
40a29d:	c7 05 60 74 4c 00 00 	movl   $0x0,0x4c7460
40a2a4:	00 00 00
40a2a7:	c7 05 5c 74 4c 00 00 	movl   $0x0,0x4c745c
40a2ae:	00 00 00
40a2b1:	c7 44 24 3c 44 74 4c 	movl   $0x4c7444,0x3c(%esp)
40a2b8:	00
40a2b9:	c7 44 24 60 44 74 4c 	movl   $0x4c7444,0x60(%esp)
40a2c0:	00
40a2c1:	8b 16                	mov    (%esi),%edx
40a2c3:	8b 40 04             	mov    0x4(%eax),%eax
40a2c6:	89 54 24 30          	mov    %edx,0x30(%esp)
40a2ca:	89 44 24 34          	mov    %eax,0x34(%esp)
40a2ce:	8b 4a 04             	mov    0x4(%edx),%ecx
40a2d1:	85 c0                	test   %eax,%eax
40a2d3:	0f 84 85 68 03 00    	je     0x440b5e
40a2d9:	85 c9                	test   %ecx,%ecx
40a2db:	0f 84 85 68 03 00    	je     0x440b66
40a2e1:	3b c1                	cmp    %ecx,%eax
40a2e3:	72 28                	jb     0x40a30d
40a2e5:	8b 0a                	mov    (%edx),%ecx
40a2e7:	8b 54 24 18          	mov    0x18(%esp),%edx
40a2eb:	89 44 24 38          	mov    %eax,0x38(%esp)
40a2ef:	8b 12                	mov    (%edx),%edx
40a2f1:	85 c0                	test   %eax,%eax
40a2f3:	74 14                	je     0x40a309
40a2f5:	66 8b 02             	mov    (%edx),%ax
40a2f8:	66 3b 01             	cmp    (%ecx),%ax
40a2fb:	75 39                	jne    0x40a336
40a2fd:	83 c2 02             	add    $0x2,%edx
40a300:	83 c1 02             	add    $0x2,%ecx
40a303:	ff 4c 24 38          	decl   0x38(%esp)
40a307:	75 ec                	jne    0x40a2f5
40a309:	33 c0                	xor    %eax,%eax
40a30b:	eb 2f                	jmp    0x40a33c
40a30d:	8b 44 24 18          	mov    0x18(%esp),%eax
40a311:	8b 12                	mov    (%edx),%edx
40a313:	8b 00                	mov    (%eax),%eax
40a315:	89 44 24 38          	mov    %eax,0x38(%esp)
40a319:	85 c9                	test   %ecx,%ecx
40a31b:	74 ec                	je     0x40a309
40a31d:	8d 49 00             	lea    0x0(%ecx),%ecx
40a320:	66 8b 00             	mov    (%eax),%ax
40a323:	66 3b 02             	cmp    (%edx),%ax
40a326:	8b 44 24 38          	mov    0x38(%esp),%eax
40a32a:	0f 84 f4 0d 00 00    	je     0x40b124
40a330:	66 8b 00             	mov    (%eax),%ax
40a333:	66 3b 02             	cmp    (%edx),%ax
40a336:	1b c0                	sbb    %eax,%eax
40a338:	83 e0 fe             	and    $0xfffffffe,%eax