42b39a:	f6 81 60 b9 4a 00 08 	testb  $0x8,0x4ab960(%ecx)
42b3a1:	74 05                	je     0x42b3a8
42b3a3:	83 c0 02             	add    $0x2,%eax
42b3a6:	eb e8                	jmp    0x42b390
42b3a8:	8b ce                	mov    %esi,%ecx
42b3aa:	3b d7                	cmp    %edi,%edx
42b3ac:	74 0e                	je     0x42b3bc
42b3ae:	b9 20 00 00 00       	mov    $0x20,%ecx
42b3b3:	66 89 0a             	mov    %cx,(%edx)
42b3b6:	83 c2 02             	add    $0x2,%edx
42b3b9:	0f b7 08             	movzwl (%eax),%ecx
42b3bc:	0f b7 c9             	movzwl %cx,%ecx
42b3bf:	eb 09                	jmp    0x42b3ca
42b3c1:	66 89 32             	mov    %si,(%edx)
42b3c4:	83 c2 02             	add    $0x2,%edx
42b3c7:	0f b7 08             	movzwl (%eax),%ecx
42b3ca:	0f b7 f1             	movzwl %cx,%esi
42b3cd:	66 85 c9             	test   %cx,%cx
42b3d0:	75 a4                	jne    0x42b376
42b3d2:	3b d7                	cmp    %edi,%edx
42b3d4:	74 16                	je     0x42b3ec
42b3d6:	0f b7 4a fe          	movzwl -0x2(%edx),%ecx
42b3da:	8d 42 fe             	lea    -0x2(%edx),%eax
42b3dd:	66 3b cb             	cmp    %bx,%cx
42b3e0:	73 0a                	jae    0x42b3ec
42b3e2:	f6 81 60 b9 4a 00 08 	testb  $0x8,0x4ab960(%ecx)
42b3e9:	0f 45 d0             	cmovne %eax,%edx
42b3ec:	5b                   	pop    %ebx
42b3ed:	33 c0                	xor    %eax,%eax
42b3ef:	5f                   	pop    %edi
42b3f0:	66 89 02             	mov    %ax,(%edx)
42b3f3:	8b c2                	mov    %edx,%eax
42b3f5:	5e                   	pop    %esi
42b3f6:	c3                   	ret
42b3f7:	cc                   	int3
42b3f8:	cc                   	int3
42b3f9:	cc                   	int3
42b3fa:	cc                   	int3
42b3fb:	cc                   	int3
42b3fc:	cc                   	int3
42b3fd:	cc                   	int3
42b3fe:	cc                   	int3
42b3ff:	cc                   	int3
42b400:	8b d1                	mov    %ecx,%edx
42b402:	33 c0                	xor    %eax,%eax
42b404:	0f b7 0a             	movzwl (%edx),%ecx
42b407:	66 85 c9             	test   %cx,%cx
42b40a:	74 24                	je     0x42b430
42b40c:	56                   	push   %esi
42b40d:	8b f1                	mov    %ecx,%esi
42b40f:	90                   	nop
42b410:	0f b7 ce             	movzwl %si,%ecx
42b413:	8d 52 02             	lea    0x2(%edx),%edx
42b416:	03 c8                	add    %eax,%ecx
42b418:	69 c1 01 04 00 00    	imul   $0x401,%ecx,%eax
42b41e:	8b c8                	mov    %eax,%ecx
42b420:	c1 e9 06             	shr    $0x6,%ecx
42b423:	33 c1                	xor    %ecx,%eax
42b425:	0f b7 0a             	movzwl (%edx),%ecx
42b428:	8b f1                	mov    %ecx,%esi
42b42a:	66 85 c9             	test   %cx,%cx
42b42d:	75 e1                	jne    0x42b410
42b42f:	5e                   	pop    %esi
42b430:	8d 0c c0             	lea    (%eax,%eax,8),%ecx
42b433:	8b c1                	mov    %ecx,%eax
42b435:	c1 e8 0b             	shr    $0xb,%eax
42b438:	33 c1                	xor    %ecx,%eax
42b43a:	69 c0 01 80 00 00    	imul   $0x8001,%eax,%eax
42b440:	c3                   	ret
42b441:	cc                   	int3
42b442:	cc                   	int3
42b443:	cc                   	int3
42b444:	cc                   	int3
42b445:	cc                   	int3
42b446:	cc                   	int3
42b447:	cc                   	int3
42b448:	cc                   	int3
42b449:	cc                   	int3
42b44a:	cc                   	int3
42b44b:	cc                   	int3
42b44c:	cc                   	int3
42b44d:	cc                   	int3
42b44e:	cc                   	int3
42b44f:	cc                   	int3
42b450:	55                   	push   %ebp
42b451:	8b ec                	mov    %esp,%ebp
42b453:	83 ec 0c             	sub    $0xc,%esp
42b456:	8b 45 08             	mov    0x8(%ebp),%eax
42b459:	53                   	push   %ebx
42b45a:	56                   	push   %esi
42b45b:	57                   	push   %edi
42b45c:	8b fa                	mov    %edx,%edi
42b45e:	8b d9                	mov    %ecx,%ebx
42b460:	8b cf                	mov    %edi,%ecx
42b462:	2b cb                	sub    %ebx,%ecx
42b464:	89 4d f4             	mov    %ecx,-0xc(%ebp)
42b467:	85 c0                	test   %eax,%eax
42b469:	75 52                	jne    0x42b4bd
42b46b:	8b c1                	mov    %ecx,%eax
42b46d:	83 e0 f8             	and    $0xfffffff8,%eax
42b470:	83 f8 10             	cmp    $0x10,%eax
42b473:	7d 07                	jge    0x42b47c
42b475:	b8 01 00 00 00       	mov    $0x1,%eax
42b47a:	eb 41                	jmp    0x42b4bd
42b47c:	8d 43 08             	lea    0x8(%ebx),%eax
42b47f:	50                   	push   %eax
42b480:	53                   	push   %ebx
42b481:	89 45 f8             	mov    %eax,-0x8(%ebp)
42b484:	e8 c7 f9 ff ff       	call   0x42ae50
42b489:	88 45 ff             	mov    %al,-0x1(%ebp)
42b48c:	8d 43 08             	lea    0x8(%ebx),%eax
42b48f:	8d 70 08             	lea    0x8(%eax),%esi
42b492:	3b f7                	cmp    %edi,%esi
42b494:	73 1c                	jae    0x42b4b2
42b496:	56                   	push   %esi
42b497:	50                   	push   %eax
42b498:	e8 b3 f9 ff ff       	call   0x42ae50
42b49d:	3a 45 ff             	cmp    -0x1(%ebp),%al
42b4a0:	75 60                	jne    0x42b502
42b4a2:	8b 45 f8             	mov    -0x8(%ebp),%eax
42b4a5:	83 c6 08             	add    $0x8,%esi
42b4a8:	83 c0 08             	add    $0x8,%eax
42b4ab:	89 45 f8             	mov    %eax,-0x8(%ebp)
42b4ae:	3b f7                	cmp    %edi,%esi
42b4b0:	72 e4                	jb     0x42b496
42b4b2:	0f b6 45 ff          	movzbl -0x1(%ebp),%eax
42b4b6:	8b 4d f4             	mov    -0xc(%ebp),%ecx
42b4b9:	83 f0 01             	xor    $0x1,%eax
42b4bc:	40                   	inc    %eax
42b4bd:	83 f8 01             	cmp    $0x1,%eax
42b4c0:	74 34                	je     0x42b4f6
42b4c2:	83 e1 f8             	and    $0xfffffff8,%ecx
42b4c5:	83 f9 08             	cmp    $0x8,%ecx
42b4c8:	7e 2c                	jle    0x42b4f6
42b4ca:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
42b4d0:	8b 13                	mov    (%ebx),%edx
42b4d2:	83 ef 08             	sub    $0x8,%edi
42b4d5:	8b 73 04             	mov    0x4(%ebx),%esi
42b4d8:	8b 07                	mov    (%edi),%eax
42b4da:	8b 4f 04             	mov    0x4(%edi),%ecx
42b4dd:	89 03                	mov    %eax,(%ebx)
42b4df:	8b c7                	mov    %edi,%eax
42b4e1:	89 4b 04             	mov    %ecx,0x4(%ebx)
42b4e4:	83 c3 08             	add    $0x8,%ebx
42b4e7:	2b c3                	sub    %ebx,%eax
42b4e9:	89 17                	mov    %edx,(%edi)
42b4eb:	83 e0 f8             	and    $0xfffffff8,%eax
42b4ee:	89 77 04             	mov    %esi,0x4(%edi)
42b4f1:	83 f8 08             	cmp    $0x8,%eax
42b4f4:	7f da                	jg     0x42b4d0
42b4f6:	5f                   	pop    %edi
42b4f7:	5e                   	pop    %esi
42b4f8:	b8 01 00 00 00       	mov    $0x1,%eax
42b4fd:	5b                   	pop    %ebx
42b4fe:	8b e5                	mov    %ebp,%esp
42b500:	5d                   	pop    %ebp
42b501:	c3                   	ret
42b502:	8d 45 ff             	lea    -0x1(%ebp),%eax
42b505:	8b d7                	mov    %edi,%edx
42b507:	50                   	push   %eax
42b508:	8b cb                	mov    %ebx,%ecx
42b50a:	e8 e1 69 00 00       	call   0x431ef0
42b50f:	83 c4 04             	add    $0x4,%esp
42b512:	b8 01 00 00 00       	mov    $0x1,%eax
42b517:	5f                   	pop    %edi
42b518:	5e                   	pop    %esi
42b519:	5b                   	pop    %ebx
42b51a:	8b e5                	mov    %ebp,%esp
42b51c:	5d                   	pop    %ebp
42b51d:	c3                   	ret
42b51e:	cc                   	int3
42b51f:	cc                   	int3
42b520:	55                   	push   %ebp
42b521:	8b ec                	mov    %esp,%ebp
42b523:	51                   	push   %ecx
42b524:	56                   	push   %esi
42b525:	57                   	push   %edi
42b526:	8b f1                	mov    %ecx,%esi
42b528:	8b fa                	mov    %edx,%edi
42b52a:	8b 4d 08             	mov    0x8(%ebp),%ecx
42b52d:	89 75 fc             	mov    %esi,-0x4(%ebp)
42b530:	3b f9                	cmp    %ecx,%edi
42b532:	75 15                	jne    0x42b549
42b534:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
42b53a:	8b c6                	mov    %esi,%eax
42b53c:	5f                   	pop    %edi
42b53d:	c7 46 04 00 00 00 00 	movl   $0x0,0x4(%esi)
42b544:	5e                   	pop    %esi
42b545:	8b e5                	mov    %ebp,%esp
42b547:	5d                   	pop    %ebp
42b548:	c3                   	ret
42b549:	8b 45 0c             	mov    0xc(%ebp),%eax
42b54c:	83 e8 00             	sub    $0x0,%eax
42b54f:	74 1d                	je     0x42b56e
42b551:	83 e8 01             	sub    $0x1,%eax
42b554:	74 3d                	je     0x42b593
42b556:	83 e8 01             	sub    $0x1,%eax
42b559:	75 d9                	jne    0x42b534
42b55b:	8b 41 f8             	mov    -0x8(%ecx),%eax
42b55e:	8b 49 fc             	mov    -0x4(%ecx),%ecx
42b561:	89 06                	mov    %eax,(%esi)
42b563:	8b c6                	mov    %esi,%eax
42b565:	5f                   	pop    %edi
42b566:	89 4e 04             	mov    %ecx,0x4(%esi)
42b569:	5e                   	pop    %esi
42b56a:	8b e5                	mov    %ebp,%esp
42b56c:	5d                   	pop    %ebp
42b56d:	c3                   	ret
42b56e:	53                   	push   %ebx
42b56f:	8d 5f 08             	lea    0x8(%edi),%ebx
42b572:	3b d9                	cmp    %ecx,%ebx
42b574:	74 1c                	je     0x42b592
42b576:	8b f1                	mov    %ecx,%esi
42b578:	57                   	push   %edi
42b579:	53                   	push   %ebx
42b57a:	e8 d1 f8 ff ff       	call   0x42ae50
42b57f:	84 c0                	test   %al,%al
42b581:	8b cb                	mov    %ebx,%ecx
42b583:	0f 44 cf             	cmove  %edi,%ecx
42b586:	83 c3 08             	add    $0x8,%ebx
42b589:	8b f9                	mov    %ecx,%edi
42b58b:	3b de                	cmp    %esi,%ebx
42b58d:	75 e9                	jne    0x42b578
42b58f:	8b 75 fc             	mov    -0x4(%ebp),%esi
42b592:	5b                   	pop    %ebx
42b593:	8b 07                	mov    (%edi),%eax
42b595:	8b 4f 04             	mov    0x4(%edi),%ecx
42b598:	89 06                	mov    %eax,(%esi)
42b59a:	8b c6                	mov    %esi,%eax
42b59c:	5f                   	pop    %edi
42b59d:	89 4e 04             	mov    %ecx,0x4(%esi)
42b5a0:	5e                   	pop    %esi
42b5a1:	8b e5                	mov    %ebp,%esp
42b5a3:	5d                   	pop    %ebp
42b5a4:	c3                   	ret
42b5a5:	cc                   	int3
42b5a6:	cc                   	int3
42b5a7:	cc                   	int3
42b5a8:	cc                   	int3
42b5a9:	cc                   	int3
42b5aa:	cc                   	int3
42b5ab:	cc                   	int3
42b5ac:	cc                   	int3
42b5ad:	cc                   	int3
42b5ae:	cc                   	int3
42b5af:	cc                   	int3
42b5b0:	55                   	push   %ebp
42b5b1:	8b ec                	mov    %esp,%ebp
42b5b3:	8b 45 08             	mov    0x8(%ebp),%eax
42b5b6:	83 ec 10             	sub    $0x10,%esp
42b5b9:	53                   	push   %ebx
42b5ba:	8b 5d 0c             	mov    0xc(%ebp),%ebx
42b5bd:	57                   	push   %edi
42b5be:	8b f9                	mov    %ecx,%edi
42b5c0:	3b c3                	cmp    %ebx,%eax
42b5c2:	0f 84 d9 00 00 00    	je     0x42b6a1
42b5c8:	8b 4f 08             	mov    0x8(%edi),%ecx
42b5cb:	2b d8                	sub    %eax,%ebx
42b5cd:	56                   	push   %esi
42b5ce:	8b 77 04             	mov    0x4(%edi),%esi
42b5d1:	8b d1                	mov    %ecx,%edx
42b5d3:	2b d6                	sub    %esi,%edx
42b5d5:	c1 fb 03             	sar    $0x3,%ebx
42b5d8:	c1 fa 03             	sar    $0x3,%edx
42b5db:	89 55 f8             	mov    %edx,-0x8(%ebp)
42b5de:	8b 57 0c             	mov    0xc(%edi),%edx
42b5e1:	8b 45 f8             	mov    -0x8(%ebp),%eax
42b5e4:	2b d6                	sub    %esi,%edx
42b5e6:	03 c3                	add    %ebx,%eax
42b5e8:	c1 fa 03             	sar    $0x3,%edx
42b5eb:	89 45 f4             	mov    %eax,-0xc(%ebp)
42b5ee:	3b c2                	cmp    %edx,%eax
42b5f0:	8b 45 08             	mov    0x8(%ebp),%eax
42b5f3:	0f 86 92 00 00 00    	jbe    0x42b68b
42b5f9:	8b 45 f4             	mov    -0xc(%ebp),%eax
42b5fc:	c1 e2 03             	shl    $0x3,%edx
42b5ff:	c1 e0 03             	shl    $0x3,%eax
42b602:	89 55 f0             	mov    %edx,-0x10(%ebp)
42b605:	89 45 fc             	mov    %eax,-0x4(%ebp)
42b608:	85 f6                	test   %esi,%esi
42b60a:	74 16                	je     0x42b622
42b60c:	8b c8                	mov    %eax,%ecx
42b60e:	2b ca                	sub    %edx,%ecx
42b610:	8b 55 10             	mov    0x10(%ebp),%edx
42b613:	8b 02                	mov    (%edx),%eax
42b615:	03 4a 04             	add    0x4(%edx),%ecx
42b618:	3b 48 04             	cmp    0x4(%eax),%ecx
42b61b:	77 0a                	ja     0x42b627
42b61d:	89 4a 04             	mov    %ecx,0x4(%edx)
42b620:	eb 51                	jmp    0x42b673
42b622:	8b 55 10             	mov    0x10(%ebp),%edx
42b625:	eb 03                	jmp    0x42b62a
42b627:	8b 45 fc             	mov    -0x4(%ebp),%eax
42b62a:	50                   	push   %eax
42b62b:	8b ca                	mov    %edx,%ecx
42b62d:	e8 de f0 ff ff       	call   0x42a710
42b632:	89 45 fc             	mov    %eax,-0x4(%ebp)
42b635:	85 c0                	test   %eax,%eax
42b637:	74 67                	je     0x42b6a0
42b639:	85 f6                	test   %esi,%esi
42b63b:	74 34                	je     0x42b671
42b63d:	ff 75 f0             	push   -0x10(%ebp)
42b640:	56                   	push   %esi
42b641:	50                   	push   %eax
42b642:	e8 d9 ff 03 00       	call   0x46b620
42b647:	8b 45 10             	mov    0x10(%ebp),%eax
42b64a:	83 c4 0c             	add    $0xc,%esp
42b64d:	8b 00                	mov    (%eax),%eax
42b64f:	8b 08                	mov    (%eax),%ecx
42b651:	8d 41 08             	lea    0x8(%ecx),%eax
42b654:	3b c6                	cmp    %esi,%eax
42b656:	75 16                	jne    0x42b66e
42b658:	8b 31                	mov    (%ecx),%esi
42b65a:	85 f6                	test   %esi,%esi
42b65c:	74 10                	je     0x42b66e
42b65e:	51                   	push   %ecx
42b65f:	e8 1e e0 04 00       	call   0x479682
42b664:	8b 45 10             	mov    0x10(%ebp),%eax
42b667:	83 c4 04             	add    $0x4,%esp
42b66a:	8b 00                	mov    (%eax),%eax
42b66c:	89 30                	mov    %esi,(%eax)
42b66e:	8b 45 fc             	mov    -0x4(%ebp),%eax
42b671:	8b f0                	mov    %eax,%esi
42b673:	8b 45 f8             	mov    -0x8(%ebp),%eax
42b676:	89 77 04             	mov    %esi,0x4(%edi)
42b679:	8d 0c c6             	lea    (%esi,%eax,8),%ecx
42b67c:	8b 45 f4             	mov    -0xc(%ebp),%eax
42b67f:	89 4f 08             	mov    %ecx,0x8(%edi)
42b682:	8d 04 c6             	lea    (%esi,%eax,8),%eax
42b685:	89 47 0c             	mov    %eax,0xc(%edi)
42b688:	8b 45 08             	mov    0x8(%ebp),%eax
42b68b:	8d 34 dd 00 00 00 00 	lea    0x0(,%ebx,8),%esi
42b692:	56                   	push   %esi
42b693:	50                   	push   %eax
42b694:	51                   	push   %ecx
42b695:	e8 86 ff 03 00       	call   0x46b620
42b69a:	83 c4 0c             	add    $0xc,%esp
42b69d:	01 77 08             	add    %esi,0x8(%edi)
42b6a0:	5e                   	pop    %esi
42b6a1:	5f                   	pop    %edi
42b6a2:	5b                   	pop    %ebx
42b6a3:	8b e5                	mov    %ebp,%esp
42b6a5:	5d                   	pop    %ebp
42b6a6:	c2 0c 00             	ret    $0xc
42b6a9:	cc                   	int3
42b6aa:	cc                   	int3
42b6ab:	cc                   	int3
42b6ac:	cc                   	int3
42b6ad:	cc                   	int3
42b6ae:	cc                   	int3