40b25b:	8b 43 04             	mov    0x4(%ebx),%eax
40b25e:	3b 43 08             	cmp    0x8(%ebx),%eax
40b261:	74 0b                	je     0x40b26e
40b263:	89 38                	mov    %edi,(%eax)
40b265:	83 43 04 04          	addl   $0x4,0x4(%ebx)
40b269:	e9 af 00 00 00       	jmp    0x40b31d
40b26e:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40b271:	51                   	push   %ecx
40b272:	50                   	push   %eax
40b273:	8b cb                	mov    %ebx,%ecx
40b275:	e8 c6 08 00 00       	call   0x40bb40
40b27a:	e9 9e 00 00 00       	jmp    0x40b31d
40b27f:	8d 77 74             	lea    0x74(%edi),%esi
40b282:	56                   	push   %esi
40b283:	ff 15 f8 e0 43 00    	call   *0x43e0f8
40b289:	ff 47 70             	incl   0x70(%edi)
40b28c:	56                   	push   %esi
40b28d:	ff 15 fc e0 43 00    	call   *0x43e0fc
40b293:	0f 57 c0             	xorps  %xmm0,%xmm0
40b296:	c7 45 ec 00 00 00 00 	movl   $0x0,-0x14(%ebp)
40b29d:	66 0f d6 45 e4       	movq   %xmm0,-0x1c(%ebp)
40b2a2:	c7 45 e4 00 00 00 00 	movl   $0x0,-0x1c(%ebp)
40b2a9:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
40b2b0:	c7 45 ec 00 00 00 00 	movl   $0x0,-0x14(%ebp)
40b2b7:	8d 45 e0             	lea    -0x20(%ebp),%eax
40b2ba:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
40b2c1:	50                   	push   %eax
40b2c2:	6a 00                	push   $0x0
40b2c4:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
40b2c7:	e8 74 08 00 00       	call   0x40bb40
40b2cc:	8b 4d d8             	mov    -0x28(%ebp),%ecx
40b2cf:	53                   	push   %ebx
40b2d0:	e8 bb 03 00 00       	call   0x40b690
40b2d5:	8b 75 e4             	mov    -0x1c(%ebp),%esi
40b2d8:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
40b2db:	3b c1                	cmp    %ecx,%eax
40b2dd:	74 0e                	je     0x40b2ed
40b2df:	ff 75 e0             	push   -0x20(%ebp)
40b2e2:	8b c8                	mov    %eax,%ecx
40b2e4:	ff 75 e8             	push   -0x18(%ebp)
40b2e7:	56                   	push   %esi
40b2e8:	e8 03 07 00 00       	call   0x40b9f0
40b2ed:	85 f6                	test   %esi,%esi
40b2ef:	74 2c                	je     0x40b31d
40b2f1:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40b2f4:	8b c6                	mov    %esi,%eax
40b2f6:	2b ce                	sub    %esi,%ecx
40b2f8:	83 e1 fc             	and    $0xfffffffc,%ecx
40b2fb:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40b301:	72 10                	jb     0x40b313
40b303:	8b 70 fc             	mov    -0x4(%eax),%esi
40b306:	83 c1 23             	add    $0x23,%ecx
40b309:	2b c6                	sub    %esi,%eax
40b30b:	83 c0 fc             	add    $0xfffffffc,%eax
40b30e:	83 f8 1f             	cmp    $0x1f,%eax
40b311:	77 2b                	ja     0x40b33e
40b313:	51                   	push   %ecx
40b314:	56                   	push   %esi
40b315:	e8 9e e8 00 00       	call   0x419bb8
40b31a:	83 c4 08             	add    $0x8,%esp
40b31d:	8a 45 df             	mov    -0x21(%ebp),%al
40b320:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40b323:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40b32a:	59                   	pop    %ecx
40b32b:	5f                   	pop    %edi
40b32c:	5e                   	pop    %esi
40b32d:	5b                   	pop    %ebx
40b32e:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40b331:	33 cd                	xor    %ebp,%ecx
40b333:	e8 72 e8 00 00       	call   0x419baa
40b338:	8b e5                	mov    %ebp,%esp
40b33a:	5d                   	pop    %ebp
40b33b:	c2 04 00             	ret    $0x4
40b33e:	e8 50 46 01 00       	call   0x41f993
40b343:	cc                   	int3
40b344:	cc                   	int3
40b345:	cc                   	int3
40b346:	cc                   	int3
40b347:	cc                   	int3
40b348:	cc                   	int3
40b349:	cc                   	int3
40b34a:	cc                   	int3
40b34b:	cc                   	int3
40b34c:	cc                   	int3
40b34d:	cc                   	int3
40b34e:	cc                   	int3
40b34f:	cc                   	int3
40b350:	55                   	push   %ebp
40b351:	8b ec                	mov    %esp,%ebp
40b353:	83 ec 4c             	sub    $0x4c,%esp
40b356:	8b 45 10             	mov    0x10(%ebp),%eax
40b359:	8b 55 08             	mov    0x8(%ebp),%edx
40b35c:	89 45 d8             	mov    %eax,-0x28(%ebp)
40b35f:	8b 45 14             	mov    0x14(%ebp),%eax
40b362:	89 45 dc             	mov    %eax,-0x24(%ebp)
40b365:	8b 45 18             	mov    0x18(%ebp),%eax
40b368:	89 45 e0             	mov    %eax,-0x20(%ebp)
40b36b:	8b 45 1c             	mov    0x1c(%ebp),%eax
40b36e:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40b371:	8b 45 20             	mov    0x20(%ebp),%eax
40b374:	89 45 e8             	mov    %eax,-0x18(%ebp)
40b377:	8b 45 24             	mov    0x24(%ebp),%eax
40b37a:	89 45 ec             	mov    %eax,-0x14(%ebp)
40b37d:	8b 45 28             	mov    0x28(%ebp),%eax
40b380:	89 45 f0             	mov    %eax,-0x10(%ebp)
40b383:	8b 45 2c             	mov    0x2c(%ebp),%eax
40b386:	89 45 f4             	mov    %eax,-0xc(%ebp)
40b389:	53                   	push   %ebx
40b38a:	8b d9                	mov    %ecx,%ebx
40b38c:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40b38f:	56                   	push   %esi
40b390:	57                   	push   %edi
40b391:	85 d2                	test   %edx,%edx
40b393:	0f 84 06 01 00 00    	je     0x40b49f
40b399:	8b ca                	mov    %edx,%ecx
40b39b:	c7 45 c0 00 00 00 00 	movl   $0x0,-0x40(%ebp)
40b3a2:	c7 45 d0 00 00 00 00 	movl   $0x0,-0x30(%ebp)
40b3a9:	c7 45 d4 00 00 00 00 	movl   $0x0,-0x2c(%ebp)
40b3b0:	8d 71 02             	lea    0x2(%ecx),%esi
40b3b3:	66 8b 01             	mov    (%ecx),%ax
40b3b6:	83 c1 02             	add    $0x2,%ecx
40b3b9:	66 85 c0             	test   %ax,%ax
40b3bc:	75 f5                	jne    0x40b3b3
40b3be:	2b ce                	sub    %esi,%ecx
40b3c0:	d1 f9                	sar    $1,%ecx
40b3c2:	51                   	push   %ecx
40b3c3:	52                   	push   %edx
40b3c4:	8d 4d c0             	lea    -0x40(%ebp),%ecx
40b3c7:	e8 34 7c ff ff       	call   0x403000
40b3cc:	8d 45 c0             	lea    -0x40(%ebp),%eax
40b3cf:	8b cb                	mov    %ebx,%ecx
40b3d1:	50                   	push   %eax
40b3d2:	8d 45 b4             	lea    -0x4c(%ebp),%eax
40b3d5:	50                   	push   %eax
40b3d6:	e8 75 08 00 00       	call   0x40bc50
40b3db:	8b 5d bc             	mov    -0x44(%ebp),%ebx
40b3de:	8b 7d d4             	mov    -0x2c(%ebp),%edi
40b3e1:	8b 75 c0             	mov    -0x40(%ebp),%esi
40b3e4:	89 5d f8             	mov    %ebx,-0x8(%ebp)
40b3e7:	80 7b 0d 00          	cmpb   $0x0,0xd(%ebx)
40b3eb:	75 28                	jne    0x40b415
40b3ed:	83 7b 24 08          	cmpl   $0x8,0x24(%ebx)
40b3f1:	8d 53 10             	lea    0x10(%ebx),%edx
40b3f4:	72 03                	jb     0x40b3f9
40b3f6:	8b 53 10             	mov    0x10(%ebx),%edx
40b3f9:	ff 73 20             	push   0x20(%ebx)
40b3fc:	83 ff 08             	cmp    $0x8,%edi
40b3ff:	8d 4d c0             	lea    -0x40(%ebp),%ecx
40b402:	52                   	push   %edx
40b403:	8b 55 d0             	mov    -0x30(%ebp),%edx
40b406:	0f 43 ce             	cmovae %esi,%ecx
40b409:	e8 72 9c ff ff       	call   0x405080
40b40e:	83 c4 08             	add    $0x8,%esp
40b411:	85 c0                	test   %eax,%eax
40b413:	79 08                	jns    0x40b41d
40b415:	8b 5d fc             	mov    -0x4(%ebp),%ebx
40b418:	8b 1b                	mov    (%ebx),%ebx
40b41a:	89 5d f8             	mov    %ebx,-0x8(%ebp)
40b41d:	83 ff 08             	cmp    $0x8,%edi
40b420:	72 2b                	jb     0x40b44d
40b422:	8d 0c 7d 02 00 00 00 	lea    0x2(,%edi,2),%ecx
40b429:	8b c6                	mov    %esi,%eax
40b42b:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40b431:	72 10                	jb     0x40b443
40b433:	8b 70 fc             	mov    -0x4(%eax),%esi
40b436:	83 c1 23             	add    $0x23,%ecx
40b439:	2b c6                	sub    %esi,%eax
40b43b:	83 c0 fc             	add    $0xfffffffc,%eax
40b43e:	83 f8 1f             	cmp    $0x1f,%eax
40b441:	77 65                	ja     0x40b4a8
40b443:	51                   	push   %ecx
40b444:	56                   	push   %esi
40b445:	e8 6e e7 00 00       	call   0x419bb8
40b44a:	83 c4 08             	add    $0x8,%esp
40b44d:	8b 45 fc             	mov    -0x4(%ebp),%eax
40b450:	3b 18                	cmp    (%eax),%ebx
40b452:	74 4b                	je     0x40b49f
40b454:	8b 73 28             	mov    0x28(%ebx),%esi
40b457:	3b 73 2c             	cmp    0x2c(%ebx),%esi
40b45a:	74 43                	je     0x40b49f
40b45c:	0f 1f 40 00          	nopl   0x0(%eax)
40b460:	8b 1e                	mov    (%esi),%ebx
40b462:	6a 01                	push   $0x1
40b464:	6a 00                	push   $0x0
40b466:	6a 00                	push   $0x0
40b468:	ff 75 f4             	push   -0xc(%ebp)
40b46b:	8b 3b                	mov    (%ebx),%edi
40b46d:	ff 75 f0             	push   -0x10(%ebp)
40b470:	ff 75 ec             	push   -0x14(%ebp)
40b473:	8b 7f 14             	mov    0x14(%edi),%edi
40b476:	8b cf                	mov    %edi,%ecx
40b478:	ff 75 e8             	push   -0x18(%ebp)
40b47b:	ff 75 e4             	push   -0x1c(%ebp)
40b47e:	ff 75 e0             	push   -0x20(%ebp)
40b481:	ff 75 dc             	push   -0x24(%ebp)
40b484:	ff 75 d8             	push   -0x28(%ebp)
40b487:	ff 75 0c             	push   0xc(%ebp)
40b48a:	ff 15 5c e2 43 00    	call   *0x43e25c
40b490:	8b cb                	mov    %ebx,%ecx
40b492:	ff d7                	call   *%edi
40b494:	8b 45 f8             	mov    -0x8(%ebp),%eax
40b497:	83 c6 04             	add    $0x4,%esi
40b49a:	3b 70 2c             	cmp    0x2c(%eax),%esi
40b49d:	75 c1                	jne    0x40b460
40b49f:	5f                   	pop    %edi
40b4a0:	5e                   	pop    %esi
40b4a1:	5b                   	pop    %ebx
40b4a2:	8b e5                	mov    %ebp,%esp
40b4a4:	5d                   	pop    %ebp
40b4a5:	c2 30 00             	ret    $0x30
40b4a8:	e8 e6 44 01 00       	call   0x41f993
40b4ad:	cc                   	int3
40b4ae:	cc                   	int3
40b4af:	cc                   	int3
40b4b0:	55                   	push   %ebp
40b4b1:	8b ec                	mov    %esp,%ebp
40b4b3:	83 e4 f8             	and    $0xfffffff8,%esp
40b4b6:	83 ec 4c             	sub    $0x4c,%esp
40b4b9:	8b 45 10             	mov    0x10(%ebp),%eax
40b4bc:	8b 55 08             	mov    0x8(%ebp),%edx
40b4bf:	89 44 24 24          	mov    %eax,0x24(%esp)
40b4c3:	8b 45 14             	mov    0x14(%ebp),%eax
40b4c6:	89 44 24 20          	mov    %eax,0x20(%esp)
40b4ca:	8b 45 18             	mov    0x18(%ebp),%eax
40b4cd:	89 44 24 1c          	mov    %eax,0x1c(%esp)
40b4d1:	8b 45 1c             	mov    0x1c(%ebp),%eax
40b4d4:	89 44 24 18          	mov    %eax,0x18(%esp)
40b4d8:	8b 45 20             	mov    0x20(%ebp),%eax
40b4db:	89 44 24 14          	mov    %eax,0x14(%esp)
40b4df:	8b 45 24             	mov    0x24(%ebp),%eax
40b4e2:	89 44 24 10          	mov    %eax,0x10(%esp)
40b4e6:	8b 45 28             	mov    0x28(%ebp),%eax
40b4e9:	89 44 24 0c          	mov    %eax,0xc(%esp)
40b4ed:	8b 45 2c             	mov    0x2c(%ebp),%eax
40b4f0:	89 44 24 08          	mov    %eax,0x8(%esp)
40b4f4:	53                   	push   %ebx
40b4f5:	8b d9                	mov    %ecx,%ebx
40b4f7:	89 5c 24 04          	mov    %ebx,0x4(%esp)
40b4fb:	56                   	push   %esi
40b4fc:	57                   	push   %edi
40b4fd:	85 d2                	test   %edx,%edx
40b4ff:	0f 84 1a 01 00 00    	je     0x40b61f
40b505:	8b ca                	mov    %edx,%ecx
40b507:	c7 44 24 34 00 00 00 	movl   $0x0,0x34(%esp)
40b50e:	00
40b50f:	c7 44 24 44 00 00 00 	movl   $0x0,0x44(%esp)
40b516:	00
40b517:	c7 44 24 48 00 00 00 	movl   $0x0,0x48(%esp)
40b51e:	00
40b51f:	8d 71 02             	lea    0x2(%ecx),%esi
40b522:	66 8b 01             	mov    (%ecx),%ax
40b525:	83 c1 02             	add    $0x2,%ecx
40b528:	66 85 c0             	test   %ax,%ax
40b52b:	75 f5                	jne    0x40b522
40b52d:	2b ce                	sub    %esi,%ecx
40b52f:	d1 f9                	sar    $1,%ecx
40b531:	51                   	push   %ecx
40b532:	52                   	push   %edx
40b533:	8d 4c 24 3c          	lea    0x3c(%esp),%ecx
40b537:	e8 c4 7a ff ff       	call   0x403000
40b53c:	8d 44 24 34          	lea    0x34(%esp),%eax
40b540:	8b cb                	mov    %ebx,%ecx
40b542:	50                   	push   %eax
40b543:	8d 44 24 50          	lea    0x50(%esp),%eax
40b547:	50                   	push   %eax
40b548:	e8 03 07 00 00       	call   0x40bc50
40b54d:	8b 5c 24 54          	mov    0x54(%esp),%ebx
40b551:	8b 7c 24 48          	mov    0x48(%esp),%edi
40b555:	8b 74 24 34          	mov    0x34(%esp),%esi
40b559:	89 5c 24 10          	mov    %ebx,0x10(%esp)
40b55d:	80 7b 0d 00          	cmpb   $0x0,0xd(%ebx)
40b561:	75 2a                	jne    0x40b58d
40b563:	83 7b 24 08          	cmpl   $0x8,0x24(%ebx)
40b567:	8d 53 10             	lea    0x10(%ebx),%edx
40b56a:	72 03                	jb     0x40b56f
40b56c:	8b 53 10             	mov    0x10(%ebx),%edx
40b56f:	ff 73 20             	push   0x20(%ebx)
40b572:	83 ff 08             	cmp    $0x8,%edi
40b575:	8d 4c 24 38          	lea    0x38(%esp),%ecx
40b579:	52                   	push   %edx
40b57a:	8b 54 24 4c          	mov    0x4c(%esp),%edx
40b57e:	0f 43 ce             	cmovae %esi,%ecx
40b581:	e8 fa 9a ff ff       	call   0x405080
40b586:	83 c4 08             	add    $0x8,%esp
40b589:	85 c0                	test   %eax,%eax
40b58b:	79 0a                	jns    0x40b597
40b58d:	8b 5c 24 0c          	mov    0xc(%esp),%ebx
40b591:	8b 1b                	mov    (%ebx),%ebx
40b593:	89 5c 24 10          	mov    %ebx,0x10(%esp)
40b597:	83 ff 08             	cmp    $0x8,%edi
40b59a:	72 2b                	jb     0x40b5c7
40b59c:	8d 0c 7d 02 00 00 00 	lea    0x2(,%edi,2),%ecx
40b5a3:	8b c6                	mov    %esi,%eax
40b5a5:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40b5ab:	72 10                	jb     0x40b5bd
40b5ad:	8b 70 fc             	mov    -0x4(%eax),%esi
40b5b0:	83 c1 23             	add    $0x23,%ecx
40b5b3:	2b c6                	sub    %esi,%eax
40b5b5:	83 c0 fc             	add    $0xfffffffc,%eax
40b5b8:	83 f8 1f             	cmp    $0x1f,%eax
40b5bb:	77 6b                	ja     0x40b628
40b5bd:	51                   	push   %ecx
40b5be:	56                   	push   %esi
40b5bf:	e8 f4 e5 00 00       	call   0x419bb8
40b5c4:	83 c4 08             	add    $0x8,%esp
40b5c7:	8b 44 24 0c          	mov    0xc(%esp),%eax
40b5cb:	3b 18                	cmp    (%eax),%ebx
40b5cd:	74 50                	je     0x40b61f
40b5cf:	8b 73 28             	mov    0x28(%ebx),%esi
40b5d2:	3b 73 2c             	cmp    0x2c(%ebx),%esi
40b5d5:	74 48                	je     0x40b61f
40b5d7:	8b 1e                	mov    (%esi),%ebx
40b5d9:	6a 01                	push   $0x1
40b5db:	6a 00                	push   $0x0
40b5dd:	6a 00                	push   $0x0
40b5df:	ff 74 24 20          	push   0x20(%esp)
40b5e3:	8b 3b                	mov    (%ebx),%edi
40b5e5:	ff 74 24 28          	push   0x28(%esp)
40b5e9:	ff 74 24 30          	push   0x30(%esp)
40b5ed:	8b 7f 10             	mov    0x10(%edi),%edi
40b5f0:	8b cf                	mov    %edi,%ecx
40b5f2:	ff 74 24 38          	push   0x38(%esp)
40b5f6:	ff 74 24 40          	push   0x40(%esp)
40b5fa:	ff 74 24 48          	push   0x48(%esp)
40b5fe:	ff 74 24 50          	push   0x50(%esp)
40b602:	ff 74 24 58          	push   0x58(%esp)
40b606:	ff 75 0c             	push   0xc(%ebp)
40b609:	ff 15 5c e2 43 00    	call   *0x43e25c
40b60f:	8b cb                	mov    %ebx,%ecx
40b611:	ff d7                	call   *%edi
40b613:	8b 44 24 10          	mov    0x10(%esp),%eax
40b617:	83 c6 04             	add    $0x4,%esi
40b61a:	3b 70 2c             	cmp    0x2c(%eax),%esi
40b61d:	75 b8                	jne    0x40b5d7
40b61f:	5f                   	pop    %edi
40b620:	5e                   	pop    %esi
40b621:	5b                   	pop    %ebx
40b622:	8b e5                	mov    %ebp,%esp
40b624:	5d                   	pop    %ebp
40b625:	c2 30 00             	ret    $0x30
40b628:	e8 66 43 01 00       	call   0x41f993
40b62d:	cc                   	int3
40b62e:	cc                   	int3
40b62f:	cc                   	int3
40b630:	56                   	push   %esi
40b631:	8b f1                	mov    %ecx,%esi
40b633:	8b 06                	mov    (%esi),%eax
40b635:	85 c0                	test   %eax,%eax
40b637:	74 40                	je     0x40b679
40b639:	8b 4e 08             	mov    0x8(%esi),%ecx