409fd8:	50                   	push   %eax
409fd9:	8d 4d d8             	lea    -0x28(%ebp),%ecx
409fdc:	e8 8f 95 ff ff       	call   0x403570
409fe1:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
409fe5:	e8 56 a9 ff ff       	call   0x404940
409fea:	89 45 f0             	mov    %eax,-0x10(%ebp)
409fed:	8d 4d d8             	lea    -0x28(%ebp),%ecx
409ff0:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
409ff4:	51                   	push   %ecx
409ff5:	8d 4d c8             	lea    -0x38(%ebp),%ecx
409ff8:	51                   	push   %ecx
409ff9:	8d 48 04             	lea    0x4(%eax),%ecx
409ffc:	e8 ef 9a ff ff       	call   0x403af0
40a001:	8b 75 d0             	mov    -0x30(%ebp),%esi
40a004:	80 7e 0d 00          	cmpb   $0x0,0xd(%esi)
40a008:	0f 85 f6 00 00 00    	jne    0x40a104
40a00e:	83 7e 24 08          	cmpl   $0x8,0x24(%esi)
40a012:	8d 56 10             	lea    0x10(%esi),%edx
40a015:	72 03                	jb     0x40a01a
40a017:	8b 56 10             	mov    0x10(%esi),%edx
40a01a:	8b 7d ec             	mov    -0x14(%ebp),%edi
40a01d:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40a020:	ff 76 20             	push   0x20(%esi)
40a023:	8b 5d d8             	mov    -0x28(%ebp),%ebx
40a026:	83 ff 08             	cmp    $0x8,%edi
40a029:	52                   	push   %edx
40a02a:	8b 55 e8             	mov    -0x18(%ebp),%edx
40a02d:	0f 43 cb             	cmovae %ebx,%ecx
40a030:	e8 eb 9b ff ff       	call   0x403c20
40a035:	83 c4 08             	add    $0x8,%esp
40a038:	85 c0                	test   %eax,%eax
40a03a:	0f 88 ca 00 00 00    	js     0x40a10a
40a040:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40a043:	83 c1 04             	add    $0x4,%ecx
40a046:	3b 31                	cmp    (%ecx),%esi
40a048:	0f 84 bc 00 00 00    	je     0x40a10a
40a04e:	8d 45 d8             	lea    -0x28(%ebp),%eax
40a051:	50                   	push   %eax
40a052:	e8 e9 b9 ff ff       	call   0x405a40
40a057:	8b 38                	mov    (%eax),%edi
40a059:	85 ff                	test   %edi,%edi
40a05b:	0f 84 a3 00 00 00    	je     0x40a104
40a061:	8b 45 f0             	mov    -0x10(%ebp),%eax
40a064:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40a067:	83 7d ec 08          	cmpl   $0x8,-0x14(%ebp)
40a06b:	0f 43 4d d8          	cmovae -0x28(%ebp),%ecx
40a06f:	8b 00                	mov    (%eax),%eax
40a071:	51                   	push   %ecx
40a072:	68 68 ff 4a 00       	push   $0x4aff68
40a077:	50                   	push   %eax
40a078:	8b 10                	mov    (%eax),%edx
40a07a:	8b 72 14             	mov    0x14(%edx),%esi
40a07d:	8b ce                	mov    %esi,%ecx
40a07f:	ff 15 d4 e2 49 00    	call   *0x49e2d4
40a085:	ff d6                	call   *%esi
40a087:	83 c4 0c             	add    $0xc,%esp
40a08a:	8b cf                	mov    %edi,%ecx
40a08c:	ff 75 d4             	push   -0x2c(%ebp)
40a08f:	e8 fc a4 ff ff       	call   0x404590
40a094:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40a097:	83 f9 08             	cmp    $0x8,%ecx
40a09a:	72 32                	jb     0x40a0ce
40a09c:	8b 55 d8             	mov    -0x28(%ebp),%edx
40a09f:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
40a0a6:	8b c2                	mov    %edx,%eax
40a0a8:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40a0ae:	72 14                	jb     0x40a0c4
40a0b0:	8b 50 fc             	mov    -0x4(%eax),%edx
40a0b3:	83 c1 23             	add    $0x23,%ecx
40a0b6:	2b c2                	sub    %edx,%eax
40a0b8:	83 c0 fc             	add    $0xfffffffc,%eax
40a0bb:	83 f8 1f             	cmp    $0x1f,%eax
40a0be:	0f 87 c7 00 00 00    	ja     0x40a18b
40a0c4:	51                   	push   %ecx
40a0c5:	52                   	push   %edx
40a0c6:	e8 3d f9 05 00       	call   0x469a08
40a0cb:	83 c4 08             	add    $0x8,%esp
40a0ce:	8b 4d 20             	mov    0x20(%ebp),%ecx
40a0d1:	83 f9 08             	cmp    $0x8,%ecx
40a0d4:	0f 82 96 00 00 00    	jb     0x40a170
40a0da:	8b 55 0c             	mov    0xc(%ebp),%edx
40a0dd:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
40a0e4:	8b c2                	mov    %edx,%eax
40a0e6:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40a0ec:	72 78                	jb     0x40a166
40a0ee:	8b 50 fc             	mov    -0x4(%eax),%edx
40a0f1:	83 c1 23             	add    $0x23,%ecx
40a0f4:	2b c2                	sub    %edx,%eax
40a0f6:	83 c0 fc             	add    $0xfffffffc,%eax
40a0f9:	83 f8 1f             	cmp    $0x1f,%eax
40a0fc:	0f 87 84 00 00 00    	ja     0x40a186
40a102:	eb 62                	jmp    0x40a166
40a104:	8b 7d ec             	mov    -0x14(%ebp),%edi
40a107:	8b 5d d8             	mov    -0x28(%ebp),%ebx
40a10a:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40a10d:	8d 55 d8             	lea    -0x28(%ebp),%edx
40a110:	83 ff 08             	cmp    $0x8,%edi
40a113:	0f 43 d3             	cmovae %ebx,%edx
40a116:	8b 01                	mov    (%ecx),%eax
40a118:	52                   	push   %edx
40a119:	68 a8 ff 4a 00       	push   $0x4affa8
40a11e:	50                   	push   %eax
40a11f:	8b 08                	mov    (%eax),%ecx
40a121:	8b 71 24             	mov    0x24(%ecx),%esi
40a124:	8b ce                	mov    %esi,%ecx
40a126:	ff 15 d4 e2 49 00    	call   *0x49e2d4
40a12c:	ff d6                	call   *%esi
40a12e:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40a131:	83 c4 0c             	add    $0xc,%esp
40a134:	83 f9 08             	cmp    $0x8,%ecx
40a137:	72 95                	jb     0x40a0ce
40a139:	8b 55 d8             	mov    -0x28(%ebp),%edx
40a13c:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
40a143:	8b c2                	mov    %edx,%eax
40a145:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40a14b:	0f 82 73 ff ff ff    	jb     0x40a0c4
40a151:	8b 50 fc             	mov    -0x4(%eax),%edx
40a154:	83 c1 23             	add    $0x23,%ecx
40a157:	2b c2                	sub    %edx,%eax
40a159:	83 c0 fc             	add    $0xfffffffc,%eax
40a15c:	83 f8 1f             	cmp    $0x1f,%eax
40a15f:	77 2a                	ja     0x40a18b
40a161:	e9 5e ff ff ff       	jmp    0x40a0c4
40a166:	51                   	push   %ecx
40a167:	52                   	push   %edx
40a168:	e8 9b f8 05 00       	call   0x469a08
40a16d:	83 c4 08             	add    $0x8,%esp
40a170:	b0 01                	mov    $0x1,%al
40a172:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40a175:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40a17c:	59                   	pop    %ecx
40a17d:	5f                   	pop    %edi
40a17e:	5e                   	pop    %esi
40a17f:	5b                   	pop    %ebx
40a180:	8b e5                	mov    %ebp,%esp
40a182:	5d                   	pop    %ebp
40a183:	c2 1c 00             	ret    $0x1c
40a186:	e8 a6 f4 06 00       	call   0x479631
40a18b:	e8 a1 f4 06 00       	call   0x479631
40a190:	cc                   	int3
40a191:	cc                   	int3
40a192:	cc                   	int3
40a193:	cc                   	int3
40a194:	cc                   	int3
40a195:	cc                   	int3
40a196:	cc                   	int3
40a197:	cc                   	int3
40a198:	cc                   	int3
40a199:	cc                   	int3
40a19a:	cc                   	int3
40a19b:	cc                   	int3
40a19c:	cc                   	int3
40a19d:	cc                   	int3
40a19e:	cc                   	int3
40a19f:	cc                   	int3
40a1a0:	55                   	push   %ebp
40a1a1:	8b ec                	mov    %esp,%ebp
40a1a3:	6a ff                	push   $0xffffffff
40a1a5:	68 55 7e 49 00       	push   $0x497e55
40a1aa:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40a1b0:	50                   	push   %eax
40a1b1:	83 ec 48             	sub    $0x48,%esp
40a1b4:	a1 14 40 4c 00       	mov    0x4c4014,%eax
40a1b9:	33 c5                	xor    %ebp,%eax
40a1bb:	89 45 f0             	mov    %eax,-0x10(%ebp)
40a1be:	56                   	push   %esi
40a1bf:	57                   	push   %edi
40a1c0:	50                   	push   %eax
40a1c1:	8d 45 f4             	lea    -0xc(%ebp),%eax
40a1c4:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40a1ca:	8b 7d 08             	mov    0x8(%ebp),%edi
40a1cd:	89 7d cc             	mov    %edi,-0x34(%ebp)
40a1d0:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
40a1d7:	33 c0                	xor    %eax,%eax
40a1d9:	c7 45 d0 00 00 00 00 	movl   $0x0,-0x30(%ebp)
40a1e0:	c7 45 e0 00 00 00 00 	movl   $0x0,-0x20(%ebp)
40a1e7:	c7 45 e4 07 00 00 00 	movl   $0x7,-0x1c(%ebp)
40a1ee:	66 89 45 d0          	mov    %ax,-0x30(%ebp)
40a1f2:	0f 57 c0             	xorps  %xmm0,%xmm0
40a1f5:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
40a1f9:	66 0f 13 45 e8       	movlpd %xmm0,-0x18(%ebp)
40a1fe:	68 c8 00 00 00       	push   $0xc8
40a203:	89 45 ec             	mov    %eax,-0x14(%ebp)
40a206:	e8 cd f7 05 00       	call   0x4699d8
40a20b:	68 c8 00 00 00       	push   $0xc8
40a210:	8b f0                	mov    %eax,%esi
40a212:	6a 00                	push   $0x0
40a214:	56                   	push   %esi
40a215:	89 75 cc             	mov    %esi,-0x34(%ebp)
40a218:	e8 93 19 06 00       	call   0x46bbb0
40a21d:	83 c4 10             	add    $0x10,%esp
40a220:	8b ce                	mov    %esi,%ecx
40a222:	e8 b9 ff 01 00       	call   0x42a1e0
40a227:	8b c8                	mov    %eax,%ecx
40a229:	89 4d e8             	mov    %ecx,-0x18(%ebp)
40a22c:	c6 45 fc 03          	movb   $0x3,-0x4(%ebp)
40a230:	8d 45 0c             	lea    0xc(%ebp),%eax
40a233:	83 7d 20 08          	cmpl   $0x8,0x20(%ebp)
40a237:	0f 43 45 0c          	cmovae 0xc(%ebp),%eax
40a23b:	8b f0                	mov    %eax,%esi
40a23d:	89 45 cc             	mov    %eax,-0x34(%ebp)
40a240:	8d 56 02             	lea    0x2(%esi),%edx
40a243:	66 8b 06             	mov    (%esi),%ax
40a246:	83 c6 02             	add    $0x2,%esi
40a249:	66 85 c0             	test   %ax,%ax
40a24c:	75 f5                	jne    0x40a243
40a24e:	2b f2                	sub    %edx,%esi
40a250:	d1 fe                	sar    $1,%esi
40a252:	e8 99 00 02 00       	call   0x42a2f0
40a257:	8b 4d e8             	mov    -0x18(%ebp),%ecx
40a25a:	e8 11 00 02 00       	call   0x42a270
40a25f:	8b 45 e8             	mov    -0x18(%ebp),%eax
40a262:	8d 4d c0             	lea    -0x40(%ebp),%ecx
40a265:	8b 10                	mov    (%eax),%edx
40a267:	83 c0 04             	add    $0x4,%eax
40a26a:	50                   	push   %eax
40a26b:	83 ec 10             	sub    $0x10,%esp
40a26e:	8d 04 36             	lea    (%esi,%esi,1),%eax
40a271:	50                   	push   %eax
40a272:	ff 75 cc             	push   -0x34(%ebp)
40a275:	52                   	push   %edx
40a276:	e8 85 fb 01 00       	call   0x429e00
40a27b:	83 c4 20             	add    $0x20,%esp
40a27e:	83 7d c0 00          	cmpl   $0x0,-0x40(%ebp)
40a282:	0f 84 f8 00 00 00    	je     0x40a380
40a288:	0f 10 45 0c          	movups 0xc(%ebp),%xmm0
40a28c:	8b 75 e8             	mov    -0x18(%ebp),%esi
40a28f:	33 c0                	xor    %eax,%eax
40a291:	c7 07 00 00 00 00    	movl   $0x0,(%edi)
40a297:	8b ce                	mov    %esi,%ecx
40a299:	c7 47 10 00 00 00 00 	movl   $0x0,0x10(%edi)
40a2a0:	c7 47 14 00 00 00 00 	movl   $0x0,0x14(%edi)
40a2a7:	0f 11 07             	movups %xmm0,(%edi)
40a2aa:	66 89 45 0c          	mov    %ax,0xc(%ebp)
40a2ae:	f3 0f 7e 45 1c       	movq   0x1c(%ebp),%xmm0
40a2b3:	66 0f d6 47 10       	movq   %xmm0,0x10(%edi)
40a2b8:	c7 45 1c 00 00 00 00 	movl   $0x0,0x1c(%ebp)
40a2bf:	c7 45 20 07 00 00 00 	movl   $0x7,0x20(%ebp)
40a2c6:	e8 25 00 02 00       	call   0x42a2f0
40a2cb:	68 c8 00 00 00       	push   $0xc8
40a2d0:	56                   	push   %esi
40a2d1:	e8 32 f7 05 00       	call   0x469a08
40a2d6:	8b 4d 20             	mov    0x20(%ebp),%ecx
40a2d9:	83 c4 08             	add    $0x8,%esp
40a2dc:	83 f9 08             	cmp    $0x8,%ecx
40a2df:	72 32                	jb     0x40a313
40a2e1:	8b 55 0c             	mov    0xc(%ebp),%edx
40a2e4:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
40a2eb:	8b c2                	mov    %edx,%eax
40a2ed:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40a2f3:	72 14                	jb     0x40a309
40a2f5:	8b 50 fc             	mov    -0x4(%eax),%edx
40a2f8:	83 c1 23             	add    $0x23,%ecx
40a2fb:	2b c2                	sub    %edx,%eax
40a2fd:	83 c0 fc             	add    $0xfffffffc,%eax
40a300:	83 f8 1f             	cmp    $0x1f,%eax
40a303:	0f 87 00 02 00 00    	ja     0x40a509
40a309:	51                   	push   %ecx
40a30a:	52                   	push   %edx
40a30b:	e8 f8 f6 05 00       	call   0x469a08
40a310:	83 c4 08             	add    $0x8,%esp
40a313:	8b 4d 38             	mov    0x38(%ebp),%ecx
40a316:	33 c0                	xor    %eax,%eax
40a318:	c7 45 1c 00 00 00 00 	movl   $0x0,0x1c(%ebp)
40a31f:	c7 45 20 07 00 00 00 	movl   $0x7,0x20(%ebp)
40a326:	66 89 45 0c          	mov    %ax,0xc(%ebp)
40a32a:	83 f9 08             	cmp    $0x8,%ecx
40a32d:	72 32                	jb     0x40a361
40a32f:	8b 55 24             	mov    0x24(%ebp),%edx
40a332:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
40a339:	8b c2                	mov    %edx,%eax
40a33b:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40a341:	72 14                	jb     0x40a357
40a343:	8b 50 fc             	mov    -0x4(%eax),%edx
40a346:	83 c1 23             	add    $0x23,%ecx
40a349:	2b c2                	sub    %edx,%eax
40a34b:	83 c0 fc             	add    $0xfffffffc,%eax
40a34e:	83 f8 1f             	cmp    $0x1f,%eax
40a351:	0f 87 b2 01 00 00    	ja     0x40a509
40a357:	51                   	push   %ecx
40a358:	52                   	push   %edx
40a359:	e8 aa f6 05 00       	call   0x469a08
40a35e:	83 c4 08             	add    $0x8,%esp
40a361:	8b c7                	mov    %edi,%eax
40a363:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40a366:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40a36d:	59                   	pop    %ecx
40a36e:	5f                   	pop    %edi
40a36f:	5e                   	pop    %esi
40a370:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40a373:	33 cd                	xor    %ebp,%ecx
40a375:	e8 50 f6 05 00       	call   0x4699ca
40a37a:	8b e5                	mov    %ebp,%esp
40a37c:	5d                   	pop    %ebp
40a37d:	c2 34 00             	ret    $0x34
40a380:	8b 45 e8             	mov    -0x18(%ebp),%eax
40a383:	8b 10                	mov    (%eax),%edx
40a385:	85 d2                	test   %edx,%edx
40a387:	74 1d                	je     0x40a3a6
40a389:	8b 52 10             	mov    0x10(%edx),%edx
40a38c:	85 d2                	test   %edx,%edx
40a38e:	74 16                	je     0x40a3a6
40a390:	8b 0a                	mov    (%edx),%ecx
40a392:	8b c2                	mov    %edx,%eax
40a394:	c1 e9 08             	shr    $0x8,%ecx
40a397:	2b c1                	sub    %ecx,%eax
40a399:	8b 08                	mov    (%eax),%ecx
40a39b:	8d 41 e0             	lea    -0x20(%ecx),%eax
40a39e:	f7 d9                	neg    %ecx
40a3a0:	1b c9                	sbb    %ecx,%ecx
40a3a2:	85 c8                	test   %ecx,%eax
40a3a4:	75 02                	jne    0x40a3a8
40a3a6:	33 d2                	xor    %edx,%edx
40a3a8:	6a 0a                	push   $0xa
40a3aa:	68 24 fd 4a 00       	push   $0x4afd24
40a3af:	8d 4d b4             	lea    -0x4c(%ebp),%ecx
40a3b2:	89 55 cc             	mov    %edx,-0x34(%ebp)
40a3b5:	c7 45 b4 00 00 00 00 	movl   $0x0,-0x4c(%ebp)
40a3bc:	c7 45 c4 00 00 00 00 	movl   $0x0,-0x3c(%ebp)
40a3c3:	c7 45 c8 00 00 00 00 	movl   $0x0,-0x38(%ebp)
40a3ca:	e8 91 7c ff ff       	call   0x402060
40a3cf:	8d 45 ac             	lea    -0x54(%ebp),%eax
40a3d2:	50                   	push   %eax
40a3d3:	8d 45 cc             	lea    -0x34(%ebp),%eax
40a3d6:	50                   	push   %eax
40a3d7:	8d 45 24             	lea    0x24(%ebp),%eax
40a3da:	50                   	push   %eax
40a3db:	8d 45 b4             	lea    -0x4c(%ebp),%eax
40a3de:	50                   	push   %eax
40a3df:	e8 fc 8d 00 00       	call   0x4131e0
40a3e4:	8b 4d c8             	mov    -0x38(%ebp),%ecx
40a3e7:	83 f9 08             	cmp    $0x8,%ecx
40a3ea:	72 32                	jb     0x40a41e
40a3ec:	8b 55 b4             	mov    -0x4c(%ebp),%edx
40a3ef:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
40a3f6:	8b c2                	mov    %edx,%eax
40a3f8:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40a3fe:	72 14                	jb     0x40a414
40a400:	8b 50 fc             	mov    -0x4(%eax),%edx
40a403:	83 c1 23             	add    $0x23,%ecx
40a406:	2b c2                	sub    %edx,%eax
40a408:	83 c0 fc             	add    $0xfffffffc,%eax
40a40b:	83 f8 1f             	cmp    $0x1f,%eax
40a40e:	0f 87 f5 00 00 00    	ja     0x40a509
40a414:	51                   	push   %ecx
40a415:	52                   	push   %edx
40a416:	e8 ed f5 05 00       	call   0x469a08
40a41b:	83 c4 08             	add    $0x8,%esp
40a41e:	8d 45 d0             	lea    -0x30(%ebp),%eax
40a421:	50                   	push   %eax