4084a8:	ff 15 3c f2 43 00    	call   *0x43f23c
4084ae:	8b cf                	mov    %edi,%ecx
4084b0:	ff d6                	call   *%esi
4084b2:	8b 8d ec ef ff ff    	mov    -0x1014(%ebp),%ecx
4084b8:	83 f9 10             	cmp    $0x10,%ecx
4084bb:	72 57                	jb     0x408514
4084bd:	8b 95 d8 ef ff ff    	mov    -0x1028(%ebp),%edx
4084c3:	41                   	inc    %ecx
4084c4:	8b c2                	mov    %edx,%eax
4084c6:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
4084cc:	72 14                	jb     0x4084e2
4084ce:	8b 50 fc             	mov    -0x4(%eax),%edx
4084d1:	83 c1 23             	add    $0x23,%ecx
4084d4:	2b c2                	sub    %edx,%eax
4084d6:	83 c0 fc             	add    $0xfffffffc,%eax
4084d9:	83 f8 1f             	cmp    $0x1f,%eax
4084dc:	0f 87 cc 01 00 00    	ja     0x4086ae
4084e2:	51                   	push   %ecx
4084e3:	52                   	push   %edx
4084e4:	e8 25 34 01 00       	call   0x41b90e
4084e9:	83 c4 08             	add    $0x8,%esp
4084ec:	eb 26                	jmp    0x408514
4084ee:	8b 07                	mov    (%edi),%eax
4084f0:	8d 8d a8 ef ff ff    	lea    -0x1058(%ebp),%ecx
4084f6:	83 bd bc ef ff ff 08 	cmpl   $0x8,-0x1044(%ebp)
4084fd:	0f 43 8d a8 ef ff ff 	cmovae -0x1058(%ebp),%ecx
408504:	8b 70 20             	mov    0x20(%eax),%esi
408507:	51                   	push   %ecx
408508:	8b ce                	mov    %esi,%ecx
40850a:	ff 15 3c f2 43 00    	call   *0x43f23c
408510:	8b cf                	mov    %edi,%ecx
408512:	ff d6                	call   *%esi
408514:	80 7d 34 00          	cmpb   $0x0,0x34(%ebp)
408518:	74 12                	je     0x40852c
40851a:	8b 87 90 00 00 00    	mov    0x90(%edi),%eax
408520:	85 c0                	test   %eax,%eax
408522:	74 08                	je     0x40852c
408524:	ff 30                	push   (%eax)
408526:	ff 15 d4 f0 43 00    	call   *0x43f0d4
40852c:	8b 8d a4 ef ff ff    	mov    -0x105c(%ebp),%ecx
408532:	83 f9 08             	cmp    $0x8,%ecx
408535:	72 35                	jb     0x40856c
408537:	8b 95 90 ef ff ff    	mov    -0x1070(%ebp),%edx
40853d:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
408544:	8b c2                	mov    %edx,%eax
408546:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40854c:	72 14                	jb     0x408562
40854e:	8b 50 fc             	mov    -0x4(%eax),%edx
408551:	83 c1 23             	add    $0x23,%ecx
408554:	2b c2                	sub    %edx,%eax
408556:	83 c0 fc             	add    $0xfffffffc,%eax
408559:	83 f8 1f             	cmp    $0x1f,%eax
40855c:	0f 87 51 01 00 00    	ja     0x4086b3
408562:	51                   	push   %ecx
408563:	52                   	push   %edx
408564:	e8 a5 33 01 00       	call   0x41b90e
408569:	83 c4 08             	add    $0x8,%esp
40856c:	8b 8d bc ef ff ff    	mov    -0x1044(%ebp),%ecx
408572:	33 c0                	xor    %eax,%eax
408574:	c7 85 a0 ef ff ff 00 	movl   $0x0,-0x1060(%ebp)
40857b:	00 00 00
40857e:	c7 85 a4 ef ff ff 07 	movl   $0x7,-0x105c(%ebp)
408585:	00 00 00
408588:	66 89 85 90 ef ff ff 	mov    %ax,-0x1070(%ebp)
40858f:	83 f9 08             	cmp    $0x8,%ecx
408592:	72 35                	jb     0x4085c9
408594:	8b 95 a8 ef ff ff    	mov    -0x1058(%ebp),%edx
40859a:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
4085a1:	8b c2                	mov    %edx,%eax
4085a3:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
4085a9:	72 14                	jb     0x4085bf
4085ab:	8b 50 fc             	mov    -0x4(%eax),%edx
4085ae:	83 c1 23             	add    $0x23,%ecx
4085b1:	2b c2                	sub    %edx,%eax
4085b3:	83 c0 fc             	add    $0xfffffffc,%eax
4085b6:	83 f8 1f             	cmp    $0x1f,%eax
4085b9:	0f 87 f4 00 00 00    	ja     0x4086b3
4085bf:	51                   	push   %ecx
4085c0:	52                   	push   %edx
4085c1:	e8 48 33 01 00       	call   0x41b90e
4085c6:	83 c4 08             	add    $0x8,%esp
4085c9:	8b 8d d4 ef ff ff    	mov    -0x102c(%ebp),%ecx
4085cf:	33 c0                	xor    %eax,%eax
4085d1:	c7 85 b8 ef ff ff 00 	movl   $0x0,-0x1048(%ebp)
4085d8:	00 00 00
4085db:	c7 85 bc ef ff ff 07 	movl   $0x7,-0x1044(%ebp)
4085e2:	00 00 00
4085e5:	66 89 85 a8 ef ff ff 	mov    %ax,-0x1058(%ebp)
4085ec:	83 f9 08             	cmp    $0x8,%ecx
4085ef:	72 35                	jb     0x408626
4085f1:	8b 95 c0 ef ff ff    	mov    -0x1040(%ebp),%edx
4085f7:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
4085fe:	8b c2                	mov    %edx,%eax
408600:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
408606:	72 14                	jb     0x40861c
408608:	8b 50 fc             	mov    -0x4(%eax),%edx
40860b:	83 c1 23             	add    $0x23,%ecx
40860e:	2b c2                	sub    %edx,%eax
408610:	83 c0 fc             	add    $0xfffffffc,%eax
408613:	83 f8 1f             	cmp    $0x1f,%eax
408616:	0f 87 97 00 00 00    	ja     0x4086b3
40861c:	51                   	push   %ecx
40861d:	52                   	push   %edx
40861e:	e8 eb 32 01 00       	call   0x41b90e
408623:	83 c4 08             	add    $0x8,%esp
408626:	8b 8d 8c ef ff ff    	mov    -0x1074(%ebp),%ecx
40862c:	33 c0                	xor    %eax,%eax
40862e:	c7 85 d0 ef ff ff 00 	movl   $0x0,-0x1030(%ebp)
408635:	00 00 00
408638:	c7 85 d4 ef ff ff 07 	movl   $0x7,-0x102c(%ebp)
40863f:	00 00 00
408642:	66 89 85 c0 ef ff ff 	mov    %ax,-0x1040(%ebp)
408649:	83 f9 08             	cmp    $0x8,%ecx
40864c:	72 31                	jb     0x40867f
40864e:	8b 95 78 ef ff ff    	mov    -0x1088(%ebp),%edx
408654:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
40865b:	8b c2                	mov    %edx,%eax
40865d:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
408663:	72 10                	jb     0x408675
408665:	8b 50 fc             	mov    -0x4(%eax),%edx
408668:	83 c1 23             	add    $0x23,%ecx
40866b:	2b c2                	sub    %edx,%eax
40866d:	83 c0 fc             	add    $0xfffffffc,%eax
408670:	83 f8 1f             	cmp    $0x1f,%eax
408673:	77 3e                	ja     0x4086b3
408675:	51                   	push   %ecx
408676:	52                   	push   %edx
408677:	e8 92 32 01 00       	call   0x41b90e
40867c:	83 c4 08             	add    $0x8,%esp
40867f:	b0 01                	mov    $0x1,%al
408681:	8b 4d f4             	mov    -0xc(%ebp),%ecx
408684:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40868b:	59                   	pop    %ecx
40868c:	5f                   	pop    %edi
40868d:	5e                   	pop    %esi
40868e:	5b                   	pop    %ebx
40868f:	8b 4d f0             	mov    -0x10(%ebp),%ecx
408692:	33 cd                	xor    %ebp,%ecx
408694:	e8 37 32 01 00       	call   0x41b8d0
408699:	8b e5                	mov    %ebp,%esp
40869b:	5d                   	pop    %ebp
40869c:	c2 30 00             	ret    $0x30
40869f:	e8 db 83 01 00       	call   0x420a7f
4086a4:	e8 d6 83 01 00       	call   0x420a7f
4086a9:	e8 d1 83 01 00       	call   0x420a7f
4086ae:	e8 cc 83 01 00       	call   0x420a7f
4086b3:	e8 c7 83 01 00       	call   0x420a7f
4086b8:	cc                   	int3
4086b9:	cc                   	int3
4086ba:	cc                   	int3
4086bb:	cc                   	int3
4086bc:	cc                   	int3
4086bd:	cc                   	int3
4086be:	cc                   	int3
4086bf:	cc                   	int3
4086c0:	55                   	push   %ebp
4086c1:	8b ec                	mov    %esp,%ebp
4086c3:	83 e4 f8             	and    $0xfffffff8,%esp
4086c6:	83 ec 1c             	sub    $0x1c,%esp
4086c9:	8b 45 10             	mov    0x10(%ebp),%eax
4086cc:	53                   	push   %ebx
4086cd:	8b 5d 0c             	mov    0xc(%ebp),%ebx
4086d0:	03 5d 14             	add    0x14(%ebp),%ebx
4086d3:	56                   	push   %esi
4086d4:	13 45 18             	adc    0x18(%ebp),%eax
4086d7:	8b 75 08             	mov    0x8(%ebp),%esi
4086da:	57                   	push   %edi
4086db:	8b f9                	mov    %ecx,%edi
4086dd:	89 44 24 18          	mov    %eax,0x18(%esp)
4086e1:	89 74 24 20          	mov    %esi,0x20(%esp)
4086e5:	f6 47 3c 02          	testb  $0x2,0x3c(%edi)
4086e9:	8b 47 1c             	mov    0x1c(%edi),%eax
4086ec:	8b 00                	mov    (%eax),%eax
4086ee:	89 44 24 1c          	mov    %eax,0x1c(%esp)
4086f2:	74 04                	je     0x4086f8
4086f4:	33 c9                	xor    %ecx,%ecx
4086f6:	eb 11                	jmp    0x408709
4086f8:	8b 47 20             	mov    0x20(%edi),%eax
4086fb:	8b 08                	mov    (%eax),%ecx
4086fd:	85 c9                	test   %ecx,%ecx
4086ff:	74 08                	je     0x408709
408701:	39 4f 38             	cmp    %ecx,0x38(%edi)
408704:	73 03                	jae    0x408709
408706:	89 4f 38             	mov    %ecx,0x38(%edi)
408709:	8b 47 0c             	mov    0xc(%edi),%eax
40870c:	8b 10                	mov    (%eax),%edx
40870e:	8b 47 38             	mov    0x38(%edi),%eax
408711:	89 44 24 14          	mov    %eax,0x14(%esp)
408715:	2b c2                	sub    %edx,%eax
408717:	d1 f8                	sar    $1,%eax
408719:	89 54 24 10          	mov    %edx,0x10(%esp)
40871d:	99                   	cltd
40871e:	39 54 24 18          	cmp    %edx,0x18(%esp)
408722:	0f 87 ac 00 00 00    	ja     0x4087d4
408728:	72 08                	jb     0x408732
40872a:	3b d8                	cmp    %eax,%ebx
40872c:	0f 87 a2 00 00 00    	ja     0x4087d4
408732:	8b 55 24             	mov    0x24(%ebp),%edx
408735:	8b c3                	mov    %ebx,%eax
408737:	0b 44 24 18          	or     0x18(%esp),%eax
40873b:	74 19                	je     0x408756
40873d:	f6 c2 01             	test   $0x1,%dl
408740:	74 0b                	je     0x40874d
408742:	83 7c 24 1c 00       	cmpl   $0x0,0x1c(%esp)
408747:	0f 84 87 00 00 00    	je     0x4087d4
40874d:	f6 c2 02             	test   $0x2,%dl
408750:	74 04                	je     0x408756
408752:	85 c9                	test   %ecx,%ecx
408754:	74 7e                	je     0x4087d4
408756:	f6 c2 01             	test   $0x1,%dl
408759:	74 38                	je     0x408793
40875b:	83 7c 24 1c 00       	cmpl   $0x0,0x1c(%esp)
408760:	74 31                	je     0x408793
408762:	8b 57 0c             	mov    0xc(%edi),%edx
408765:	8b 44 24 10          	mov    0x10(%esp),%eax
408769:	8b 74 24 10          	mov    0x10(%esp),%esi
40876d:	89 02                	mov    %eax,(%edx)
40876f:	8b 47 1c             	mov    0x1c(%edi),%eax
408772:	8d 14 5e             	lea    (%esi,%ebx,2),%edx
408775:	8b 74 24 20          	mov    0x20(%esp),%esi
408779:	89 10                	mov    %edx,(%eax)
40877b:	8b 44 24 14          	mov    0x14(%esp),%eax
40877f:	2b c2                	sub    %edx,%eax
408781:	d1 f8                	sar    $1,%eax
408783:	89 44 24 14          	mov    %eax,0x14(%esp)
408787:	8b 47 2c             	mov    0x2c(%edi),%eax
40878a:	8b 54 24 14          	mov    0x14(%esp),%edx
40878e:	89 10                	mov    %edx,(%eax)
408790:	8b 55 24             	mov    0x24(%ebp),%edx
408793:	f6 c2 02             	test   $0x2,%dl
408796:	74 31                	je     0x4087c9
408798:	85 c9                	test   %ecx,%ecx
40879a:	74 2d                	je     0x4087c9
40879c:	8b 47 30             	mov    0x30(%edi),%eax
40879f:	8b 54 24 10          	mov    0x10(%esp),%edx
4087a3:	8b f2                	mov    %edx,%esi
4087a5:	8b 08                	mov    (%eax),%ecx
4087a7:	8b 47 20             	mov    0x20(%edi),%eax
4087aa:	8b 00                	mov    (%eax),%eax
4087ac:	8d 0c 48             	lea    (%eax,%ecx,2),%ecx
4087af:	8b 47 10             	mov    0x10(%edi),%eax
4087b2:	89 10                	mov    %edx,(%eax)
4087b4:	8d 14 5e             	lea    (%esi,%ebx,2),%edx
4087b7:	8b 47 20             	mov    0x20(%edi),%eax
4087ba:	2b ca                	sub    %edx,%ecx
4087bc:	8b 74 24 20          	mov    0x20(%esp),%esi
4087c0:	d1 f9                	sar    $1,%ecx
4087c2:	89 10                	mov    %edx,(%eax)
4087c4:	8b 47 30             	mov    0x30(%edi),%eax
4087c7:	89 08                	mov    %ecx,(%eax)
4087c9:	8b 44 24 18          	mov    0x18(%esp),%eax
4087cd:	89 1e                	mov    %ebx,(%esi)
4087cf:	89 46 04             	mov    %eax,0x4(%esi)
4087d2:	eb 0d                	jmp    0x4087e1
4087d4:	c7 06 ff ff ff ff    	movl   $0xffffffff,(%esi)
4087da:	c7 46 04 ff ff ff ff 	movl   $0xffffffff,0x4(%esi)
4087e1:	c7 46 08 00 00 00 00 	movl   $0x0,0x8(%esi)
4087e8:	0f 57 c0             	xorps  %xmm0,%xmm0
4087eb:	c7 46 0c 00 00 00 00 	movl   $0x0,0xc(%esi)
4087f2:	8b c6                	mov    %esi,%eax
4087f4:	5f                   	pop    %edi
4087f5:	66 0f d6 46 10       	movq   %xmm0,0x10(%esi)
4087fa:	5e                   	pop    %esi
4087fb:	5b                   	pop    %ebx
4087fc:	8b e5                	mov    %ebp,%esp
4087fe:	5d                   	pop    %ebp
4087ff:	c2 20 00             	ret    $0x20
408802:	cc                   	int3
408803:	cc                   	int3
408804:	cc                   	int3
408805:	cc                   	int3
408806:	cc                   	int3
408807:	cc                   	int3
408808:	cc                   	int3
408809:	cc                   	int3
40880a:	cc                   	int3
40880b:	cc                   	int3
40880c:	cc                   	int3
40880d:	cc                   	int3
40880e:	cc                   	int3
40880f:	cc                   	int3
408810:	55                   	push   %ebp
408811:	8b ec                	mov    %esp,%ebp
408813:	83 e4 f8             	and    $0xfffffff8,%esp
408816:	83 ec 24             	sub    $0x24,%esp
408819:	53                   	push   %ebx
40881a:	56                   	push   %esi
40881b:	8b f1                	mov    %ecx,%esi
40881d:	57                   	push   %edi
40881e:	f6 46 3c 02          	testb  $0x2,0x3c(%esi)
408822:	8b 46 1c             	mov    0x1c(%esi),%eax
408825:	8b 00                	mov    (%eax),%eax
408827:	89 44 24 10          	mov    %eax,0x10(%esp)
40882b:	74 04                	je     0x408831
40882d:	33 c9                	xor    %ecx,%ecx
40882f:	eb 11                	jmp    0x408842
408831:	8b 46 20             	mov    0x20(%esi),%eax
408834:	8b 08                	mov    (%eax),%ecx
408836:	85 c9                	test   %ecx,%ecx
408838:	74 08                	je     0x408842
40883a:	39 4e 38             	cmp    %ecx,0x38(%esi)
40883d:	73 03                	jae    0x408842
40883f:	89 4e 38             	mov    %ecx,0x38(%esi)
408842:	8b 46 0c             	mov    0xc(%esi),%eax
408845:	8b 7e 38             	mov    0x38(%esi),%edi
408848:	8b 5d 18             	mov    0x18(%ebp),%ebx
40884b:	89 7c 24 2c          	mov    %edi,0x2c(%esp)
40884f:	8b 10                	mov    (%eax),%edx
408851:	2b fa                	sub    %edx,%edi
408853:	8b 45 14             	mov    0x14(%ebp),%eax
408856:	d1 ff                	sar    $1,%edi
408858:	89 54 24 24          	mov    %edx,0x24(%esp)
40885c:	89 7c 24 14          	mov    %edi,0x14(%esp)
408860:	83 e8 00             	sub    $0x0,%eax
408863:	74 66                	je     0x4088cb
408865:	83 e8 01             	sub    $0x1,%eax
408868:	74 12                	je     0x40887c
40886a:	83 e8 01             	sub    $0x1,%eax
40886d:	0f 85 1c 01 00 00    	jne    0x40898f
408873:	8b c7                	mov    %edi,%eax
408875:	99                   	cltd
408876:	8b f8                	mov    %eax,%edi
408878:	8b c2                	mov    %edx,%eax
40887a:	eb 60                	jmp    0x4088dc
40887c:	8b c3                	mov    %ebx,%eax
40887e:	83 e0 03             	and    $0x3,%eax
408881:	3c 03                	cmp    $0x3,%al
408883:	0f 84 06 01 00 00    	je     0x40898f
408889:	f6 c3 01             	test   $0x1,%bl
40888c:	74 1b                	je     0x4088a9
40888e:	8b 44 24 10          	mov    0x10(%esp),%eax
408892:	85 c0                	test   %eax,%eax
408894:	75 08                	jne    0x40889e
408896:	85 d2                	test   %edx,%edx
408898:	0f 85 f1 00 00 00    	jne    0x40898f
40889e:	2b c2                	sub    %edx,%eax
4088a0:	d1 f8                	sar    $1,%eax
4088a2:	99                   	cltd
4088a3:	8b f8                	mov    %eax,%edi
4088a5:	8b c2                	mov    %edx,%eax
4088a7:	eb 33                	jmp    0x4088dc
4088a9:	f6 c3 02             	test   $0x2,%bl
4088ac:	0f 84 dd 00 00 00    	je     0x40898f
4088b2:	85 c9                	test   %ecx,%ecx
4088b4:	75 08                	jne    0x4088be
4088b6:	85 d2                	test   %edx,%edx
4088b8:	0f 85 d1 00 00 00    	jne    0x40898f
4088be:	8b c1                	mov    %ecx,%eax
4088c0:	2b c2                	sub    %edx,%eax
4088c2:	d1 f8                	sar    $1,%eax