409ee8:	89 95 b8 fe ff ff    	mov    %edx,-0x148(%ebp)
409eee:	8b 50 04             	mov    0x4(%eax),%edx
409ef1:	89 48 04             	mov    %ecx,0x4(%eax)
409ef4:	8b 8d b8 fe ff ff    	mov    -0x148(%ebp),%ecx
409efa:	83 c0 08             	add    $0x8,%eax
409efd:	83 bd e8 fe ff ff 05 	cmpl   $0x5,-0x118(%ebp)
409f04:	89 95 d8 fe ff ff    	mov    %edx,-0x128(%ebp)
409f0a:	7c c5                	jl     0x409ed1
409f0c:	eb 22                	jmp    0x409f30
409f0e:	8b 85 e8 fe ff ff    	mov    -0x118(%ebp),%eax
409f14:	85 c0                	test   %eax,%eax
409f16:	74 18                	je     0x409f30
409f18:	8d 04 c7             	lea    (%edi,%eax,8),%eax
409f1b:	8b 10                	mov    (%eax),%edx
409f1d:	89 17                	mov    %edx,(%edi)
409f1f:	8b 50 04             	mov    0x4(%eax),%edx
409f22:	89 57 04             	mov    %edx,0x4(%edi)
409f25:	89 08                	mov    %ecx,(%eax)
409f27:	8b 8d d8 fe ff ff    	mov    -0x128(%ebp),%ecx
409f2d:	89 48 04             	mov    %ecx,0x4(%eax)
409f30:	83 bd e8 fe ff ff 05 	cmpl   $0x5,-0x118(%ebp)
409f37:	75 65                	jne    0x409f9e
409f39:	6a 01                	push   $0x1
409f3b:	ff 76 14             	push   0x14(%esi)
409f3e:	8d 85 ec fe ff ff    	lea    -0x114(%ebp),%eax
409f44:	ff 76 04             	push   0x4(%esi)
409f47:	50                   	push   %eax
409f48:	6a 7f                	push   $0x7f
409f4a:	68 20 7f 41 00       	push   $0x417f20
409f4f:	6a 01                	push   $0x1
409f51:	6a 00                	push   $0x0
409f53:	e8 92 69 00 00       	call   0x4108ea
409f58:	83 c4 20             	add    $0x20,%esp
409f5b:	85 c0                	test   %eax,%eax
409f5d:	74 36                	je     0x409f95
409f5f:	33 c0                	xor    %eax,%eax
409f61:	66 81 a4 45 ec fe ff 	andw   $0x1ff,-0x114(%ebp,%eax,2)
409f68:	ff ff 01
409f6b:	40                   	inc    %eax
409f6c:	83 f8 7f             	cmp    $0x7f,%eax
409f6f:	72 f0                	jb     0x409f61
409f71:	68 fe 00 00 00       	push   $0xfe
409f76:	ff 35 60 c9 41 00    	push   0x41c960
409f7c:	8d 85 ec fe ff ff    	lea    -0x114(%ebp),%eax
409f82:	50                   	push   %eax
409f83:	e8 7e 82 00 00       	call   0x412206
409f88:	83 c4 0c             	add    $0xc,%esp
409f8b:	f7 d8                	neg    %eax
409f8d:	1b c0                	sbb    %eax,%eax
409f8f:	40                   	inc    %eax
409f90:	89 47 04             	mov    %eax,0x4(%edi)
409f93:	eb 04                	jmp    0x409f99
409f95:	83 67 04 00          	andl   $0x0,0x4(%edi)
409f99:	8b 46 04             	mov    0x4(%esi),%eax
409f9c:	89 07                	mov    %eax,(%edi)
409f9e:	8b 47 04             	mov    0x4(%edi),%eax
409fa1:	89 86 a8 00 00 00    	mov    %eax,0xa8(%esi)
409fa7:	83 7d 7c 01          	cmpl   $0x1,0x7c(%ebp)
409fab:	75 09                	jne    0x409fb6
409fad:	8b 85 dc fe ff ff    	mov    -0x124(%ebp),%eax
409fb3:	89 46 08             	mov    %eax,0x8(%esi)
409fb6:	8b 45 7c             	mov    0x7c(%ebp),%eax
409fb9:	6b c0 0c             	imul   $0xc,%eax,%eax
409fbc:	56                   	push   %esi
409fbd:	ff 90 e0 7e 41 00    	call   *0x417ee0(%eax)
409fc3:	85 c0                	test   %eax,%eax
409fc5:	59                   	pop    %ecx
409fc6:	74 31                	je     0x409ff9
409fc8:	8b 85 d0 fe ff ff    	mov    -0x130(%ebp),%eax
409fce:	ff b5 e4 fe ff ff    	push   -0x11c(%ebp)
409fd4:	89 43 48             	mov    %eax,0x48(%ebx)
409fd7:	e8 77 c4 ff ff       	call   0x406453
409fdc:	8b 85 cc fe ff ff    	mov    -0x134(%ebp),%eax
409fe2:	59                   	pop    %ecx
409fe3:	8b 8d e0 fe ff ff    	mov    -0x120(%ebp),%ecx
409fe9:	89 01                	mov    %eax,(%ecx)
409feb:	8b 85 c0 fe ff ff    	mov    -0x140(%ebp),%eax
409ff1:	89 46 04             	mov    %eax,0x4(%esi)
409ff4:	e9 bc fd ff ff       	jmp    0x409db5
409ff9:	81 bd d0 fe ff ff 40 	cmpl   $0x41d140,-0x130(%ebp)
40a000:	d1 41 00
40a003:	74 2d                	je     0x40a032
40a005:	8b 45 7c             	mov    0x7c(%ebp),%eax
40a008:	83 c0 05             	add    $0x5,%eax
40a00b:	c1 e0 04             	shl    $0x4,%eax
40a00e:	8d 3c 30             	lea    (%eax,%esi,1),%edi
40a011:	ff 37                	push   (%edi)
40a013:	ff 15 98 70 41 00    	call   *0x417098
40a019:	85 c0                	test   %eax,%eax
40a01b:	75 15                	jne    0x40a032
40a01d:	ff 37                	push   (%edi)
40a01f:	e8 2f c4 ff ff       	call   0x406453
40a024:	ff 73 54             	push   0x54(%ebx)
40a027:	e8 27 c4 ff ff       	call   0x406453
40a02c:	83 63 4c 00          	andl   $0x0,0x4c(%ebx)
40a030:	59                   	pop    %ecx
40a031:	59                   	pop    %ecx
40a032:	8b 4d 7c             	mov    0x7c(%ebp),%ecx
40a035:	8b 85 e4 fe ff ff    	mov    -0x11c(%ebp),%eax
40a03b:	83 c1 05             	add    $0x5,%ecx
40a03e:	c1 e1 04             	shl    $0x4,%ecx
40a041:	c7 00 01 00 00 00    	movl   $0x1,(%eax)
40a047:	89 04 31             	mov    %eax,(%ecx,%esi,1)
40a04a:	8b 43 48             	mov    0x48(%ebx),%eax
40a04d:	8b 4d 70             	mov    0x70(%ebp),%ecx
40a050:	5f                   	pop    %edi
40a051:	33 cd                	xor    %ebp,%ecx
40a053:	5b                   	pop    %ebx
40a054:	e8 dc be ff ff       	call   0x405f35
40a059:	83 c5 74             	add    $0x74,%ebp
40a05c:	c9                   	leave
40a05d:	c3                   	ret
40a05e:	55                   	push   %ebp
40a05f:	8d 6c 24 8c          	lea    -0x74(%esp),%ebp
40a063:	81 ec 98 00 00 00    	sub    $0x98,%esp
40a069:	a1 20 c5 41 00       	mov    0x41c520,%eax
40a06e:	33 c5                	xor    %ebp,%eax
40a070:	89 45 70             	mov    %eax,0x70(%ebp)
40a073:	8b 45 7c             	mov    0x7c(%ebp),%eax
40a076:	53                   	push   %ebx
40a077:	56                   	push   %esi
40a078:	33 db                	xor    %ebx,%ebx
40a07a:	3b c3                	cmp    %ebx,%eax
40a07c:	8b f2                	mov    %edx,%esi
40a07e:	57                   	push   %edi
40a07f:	89 75 dc             	mov    %esi,-0x24(%ebp)
40a082:	74 1c                	je     0x40a0a0
40a084:	3b cb                	cmp    %ebx,%ecx
40a086:	74 0c                	je     0x40a094
40a088:	50                   	push   %eax
40a089:	e8 da fc ff ff       	call   0x409d68
40a08e:	59                   	pop    %ecx
40a08f:	e9 86 01 00 00       	jmp    0x40a21a
40a094:	c1 e0 04             	shl    $0x4,%eax
40a097:	8b 44 30 48          	mov    0x48(%eax,%esi,1),%eax
40a09b:	e9 7a 01 00 00       	jmp    0x40a21a
40a0a0:	3b cb                	cmp    %ebx,%ecx
40a0a2:	c7 45 e4 01 00 00 00 	movl   $0x1,-0x1c(%ebp)
40a0a9:	89 5d e8             	mov    %ebx,-0x18(%ebp)
40a0ac:	0f 84 63 01 00 00    	je     0x40a215
40a0b2:	80 39 4c             	cmpb   $0x4c,(%ecx)
40a0b5:	0f 85 fe 00 00 00    	jne    0x40a1b9
40a0bb:	80 79 01 43          	cmpb   $0x43,0x1(%ecx)
40a0bf:	0f 85 f4 00 00 00    	jne    0x40a1b9
40a0c5:	80 79 02 5f          	cmpb   $0x5f,0x2(%ecx)
40a0c9:	0f 85 ea 00 00 00    	jne    0x40a1b9
40a0cf:	8b f9                	mov    %ecx,%edi
40a0d1:	68 b4 7f 41 00       	push   $0x417fb4
40a0d6:	57                   	push   %edi
40a0d7:	e8 74 98 00 00       	call   0x413950
40a0dc:	8b d8                	mov    %eax,%ebx
40a0de:	85 db                	test   %ebx,%ebx
40a0e0:	59                   	pop    %ecx
40a0e1:	59                   	pop    %ecx
40a0e2:	0f 84 cd 00 00 00    	je     0x40a1b5
40a0e8:	2b c7                	sub    %edi,%eax
40a0ea:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40a0ed:	0f 84 c2 00 00 00    	je     0x40a1b5
40a0f3:	80 3b 3b             	cmpb   $0x3b,(%ebx)
40a0f6:	0f 84 b9 00 00 00    	je     0x40a1b5
40a0fc:	c7 45 e0 01 00 00 00 	movl   $0x1,-0x20(%ebp)
40a103:	be e4 7e 41 00       	mov    $0x417ee4,%esi
40a108:	eb 03                	jmp    0x40a10d
40a10a:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40a10d:	50                   	push   %eax
40a10e:	57                   	push   %edi
40a10f:	ff 36                	push   (%esi)
40a111:	e8 70 97 00 00       	call   0x413886
40a116:	83 c4 0c             	add    $0xc,%esp
40a119:	85 c0                	test   %eax,%eax
40a11b:	75 0d                	jne    0x40a12a
40a11d:	ff 36                	push   (%esi)
40a11f:	e8 3c c6 ff ff       	call   0x406760
40a124:	39 45 e4             	cmp    %eax,-0x1c(%ebp)
40a127:	59                   	pop    %ecx
40a128:	74 0e                	je     0x40a138
40a12a:	ff 45 e0             	incl   -0x20(%ebp)
40a12d:	83 c6 0c             	add    $0xc,%esi
40a130:	81 fe 14 7f 41 00    	cmp    $0x417f14,%esi
40a136:	7e d2                	jle    0x40a10a
40a138:	43                   	inc    %ebx
40a139:	68 ac 7f 41 00       	push   $0x417fac
40a13e:	53                   	push   %ebx
40a13f:	e8 6c 78 00 00       	call   0x4119b0
40a144:	8b f8                	mov    %eax,%edi
40a146:	33 f6                	xor    %esi,%esi
40a148:	3b fe                	cmp    %esi,%edi
40a14a:	59                   	pop    %ecx
40a14b:	59                   	pop    %ecx
40a14c:	75 05                	jne    0x40a153
40a14e:	80 3b 3b             	cmpb   $0x3b,(%ebx)
40a151:	75 62                	jne    0x40a1b5
40a153:	83 7d e0 05          	cmpl   $0x5,-0x20(%ebp)
40a157:	7f 3f                	jg     0x40a198
40a159:	57                   	push   %edi
40a15a:	53                   	push   %ebx
40a15b:	8d 45 ec             	lea    -0x14(%ebp),%eax
40a15e:	68 83 00 00 00       	push   $0x83
40a163:	50                   	push   %eax
40a164:	e8 8d 78 00 00       	call   0x4119f6
40a169:	83 c4 10             	add    $0x10,%esp
40a16c:	85 c0                	test   %eax,%eax
40a16e:	74 0d                	je     0x40a17d
40a170:	56                   	push   %esi
40a171:	56                   	push   %esi
40a172:	56                   	push   %esi
40a173:	56                   	push   %esi
40a174:	56                   	push   %esi
40a175:	e8 da d3 ff ff       	call   0x407554
40a17a:	83 c4 14             	add    $0x14,%esp
40a17d:	ff 75 e0             	push   -0x20(%ebp)
40a180:	8b 75 dc             	mov    -0x24(%ebp),%esi
40a183:	8d 4d ec             	lea    -0x14(%ebp),%ecx
40a186:	c6 44 3d ec 00       	movb   $0x0,-0x14(%ebp,%edi,1)
40a18b:	e8 d8 fb ff ff       	call   0x409d68
40a190:	85 c0                	test   %eax,%eax
40a192:	59                   	pop    %ecx
40a193:	74 03                	je     0x40a198
40a195:	ff 45 e8             	incl   -0x18(%ebp)
40a198:	03 fb                	add    %ebx,%edi
40a19a:	80 3f 00             	cmpb   $0x0,(%edi)
40a19d:	74 0a                	je     0x40a1a9
40a19f:	47                   	inc    %edi
40a1a0:	80 3f 00             	cmpb   $0x0,(%edi)
40a1a3:	0f 85 28 ff ff ff    	jne    0x40a0d1
40a1a9:	33 c0                	xor    %eax,%eax
40a1ab:	39 45 e8             	cmp    %eax,-0x18(%ebp)
40a1ae:	74 6a                	je     0x40a21a
40a1b0:	8b 75 dc             	mov    -0x24(%ebp),%esi
40a1b3:	eb 60                	jmp    0x40a215
40a1b5:	33 c0                	xor    %eax,%eax
40a1b7:	eb 61                	jmp    0x40a21a
40a1b9:	53                   	push   %ebx
40a1ba:	53                   	push   %ebx
40a1bb:	53                   	push   %ebx
40a1bc:	68 83 00 00 00       	push   $0x83
40a1c1:	8d 45 ec             	lea    -0x14(%ebp),%eax
40a1c4:	50                   	push   %eax
40a1c5:	51                   	push   %ecx
40a1c6:	e8 c9 f9 ff ff       	call   0x409b94
40a1cb:	83 c4 18             	add    $0x18,%esp
40a1ce:	3b c3                	cmp    %ebx,%eax
40a1d0:	74 48                	je     0x40a21a
40a1d2:	8d 7e 48             	lea    0x48(%esi),%edi
40a1d5:	85 db                	test   %ebx,%ebx
40a1d7:	74 27                	je     0x40a200
40a1d9:	ff 37                	push   (%edi)
40a1db:	8d 45 ec             	lea    -0x14(%ebp),%eax
40a1de:	50                   	push   %eax
40a1df:	e8 ac 0c 00 00       	call   0x40ae90
40a1e4:	85 c0                	test   %eax,%eax
40a1e6:	59                   	pop    %ecx
40a1e7:	59                   	pop    %ecx
40a1e8:	74 13                	je     0x40a1fd
40a1ea:	53                   	push   %ebx
40a1eb:	8d 4d ec             	lea    -0x14(%ebp),%ecx
40a1ee:	e8 75 fb ff ff       	call   0x409d68
40a1f3:	85 c0                	test   %eax,%eax
40a1f5:	59                   	pop    %ecx
40a1f6:	75 05                	jne    0x40a1fd
40a1f8:	21 45 e4             	and    %eax,-0x1c(%ebp)
40a1fb:	eb 03                	jmp    0x40a200
40a1fd:	ff 45 e8             	incl   -0x18(%ebp)
40a200:	43                   	inc    %ebx
40a201:	83 c7 10             	add    $0x10,%edi
40a204:	83 fb 05             	cmp    $0x5,%ebx
40a207:	7e cc                	jle    0x40a1d5
40a209:	33 c0                	xor    %eax,%eax
40a20b:	39 45 e4             	cmp    %eax,-0x1c(%ebp)
40a20e:	75 05                	jne    0x40a215
40a210:	39 45 e8             	cmp    %eax,-0x18(%ebp)
40a213:	74 05                	je     0x40a21a
40a215:	e8 09 f8 ff ff       	call   0x409a23
40a21a:	8b 4d 70             	mov    0x70(%ebp),%ecx
40a21d:	5f                   	pop    %edi
40a21e:	5e                   	pop    %esi
40a21f:	33 cd                	xor    %ebp,%ecx
40a221:	5b                   	pop    %ebx
40a222:	e8 0e bd ff ff       	call   0x405f35
40a227:	83 c5 74             	add    $0x74,%ebp
40a22a:	c9                   	leave
40a22b:	c3                   	ret
40a22c:	83 7c 24 04 05       	cmpl   $0x5,0x4(%esp)
40a231:	56                   	push   %esi
40a232:	57                   	push   %edi
40a233:	77 25                	ja     0x40a25a
40a235:	83 7c 24 10 00       	cmpl   $0x0,0x10(%esp)
40a23a:	74 1e                	je     0x40a25a
40a23c:	33 ff                	xor    %edi,%edi
40a23e:	47                   	inc    %edi
40a23f:	57                   	push   %edi
40a240:	6a 08                	push   $0x8
40a242:	e8 e5 f0 ff ff       	call   0x40932c
40a247:	8b f0                	mov    %eax,%esi
40a249:	85 f6                	test   %esi,%esi
40a24b:	59                   	pop    %ecx
40a24c:	59                   	pop    %ecx
40a24d:	75 10                	jne    0x40a25f
40a24f:	e8 a6 f1 ff ff       	call   0x4093fa
40a254:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
40a25a:	33 c0                	xor    %eax,%eax
40a25c:	5f                   	pop    %edi
40a25d:	5e                   	pop    %esi
40a25e:	c3                   	ret
40a25f:	57                   	push   %edi
40a260:	68 d8 00 00 00       	push   $0xd8
40a265:	e8 c2 f0 ff ff       	call   0x40932c
40a26a:	59                   	pop    %ecx
40a26b:	59                   	pop    %ecx
40a26c:	89 06                	mov    %eax,(%esi)
40a26e:	85 c0                	test   %eax,%eax
40a270:	75 09                	jne    0x40a27b
40a272:	56                   	push   %esi
40a273:	e8 db c1 ff ff       	call   0x406453
40a278:	59                   	pop    %ecx
40a279:	eb d4                	jmp    0x40a24f
40a27b:	57                   	push   %edi
40a27c:	68 20 02 00 00       	push   $0x220
40a281:	e8 a6 f0 ff ff       	call   0x40932c
40a286:	85 c0                	test   %eax,%eax
40a288:	59                   	pop    %ecx
40a289:	59                   	pop    %ecx
40a28a:	89 46 04             	mov    %eax,0x4(%esi)
40a28d:	75 10                	jne    0x40a29f
40a28f:	ff 36                	push   (%esi)
40a291:	e8 bd c1 ff ff       	call   0x406453
40a296:	56                   	push   %esi
40a297:	e8 b7 c1 ff ff       	call   0x406453
40a29c:	59                   	pop    %ecx
40a29d:	eb d9                	jmp    0x40a278
40a29f:	8b 06                	mov    (%esi),%eax
40a2a1:	b9 48 d1 41 00       	mov    $0x41d148,%ecx
40a2a6:	e8 e5 f3 ff ff       	call   0x409690
40a2ab:	ff 74 24 0c          	push   0xc(%esp)
40a2af:	8b 4c 24 14          	mov    0x14(%esp),%ecx
40a2b3:	8b 16                	mov    (%esi),%edx
40a2b5:	e8 a4 fd ff ff       	call   0x40a05e
40a2ba:	85 c0                	test   %eax,%eax
40a2bc:	59                   	pop    %ecx
40a2bd:	75 19                	jne    0x40a2d8
40a2bf:	ff 36                	push   (%esi)
40a2c1:	e8 3e f3 ff ff       	call   0x409604
40a2c6:	ff 36                	push   (%esi)
40a2c8:	e8 71 f1 ff ff       	call   0x40943e
40a2cd:	56                   	push   %esi
40a2ce:	e8 80 c1 ff ff       	call   0x406453
40a2d3:	83 c4 0c             	add    $0xc,%esp
40a2d6:	eb 32                	jmp    0x40a30a
40a2d8:	ff 76 04             	push   0x4(%esi)
40a2db:	8b 06                	mov    (%esi),%eax