408725:	8b e5                	mov    %ebp,%esp
408727:	5d                   	pop    %ebp
408728:	c2 08 00             	ret    $0x8
40872b:	55                   	push   %ebp
40872c:	8b ec                	mov    %esp,%ebp
40872e:	56                   	push   %esi
40872f:	8b 75 08             	mov    0x8(%ebp),%esi
408732:	57                   	push   %edi
408733:	56                   	push   %esi
408734:	ff 15 8c b1 44 00    	call   *0x44b18c
40873a:	33 ff                	xor    %edi,%edi
40873c:	39 7e 20             	cmp    %edi,0x20(%esi)
40873f:	74 3f                	je     0x408780
408741:	39 7e 1c             	cmp    %edi,0x1c(%esi)
408744:	76 32                	jbe    0x408778
408746:	8b c7                	mov    %edi,%eax
408748:	89 45 08             	mov    %eax,0x8(%ebp)
40874b:	53                   	push   %ebx
40874c:	8b 5e 20             	mov    0x20(%esi),%ebx
40874f:	03 d8                	add    %eax,%ebx
408751:	74 18                	je     0x40876b
408753:	83 3b 00             	cmpl   $0x0,(%ebx)
408756:	74 07                	je     0x40875f
408758:	ff 33                	push   (%ebx)
40875a:	e8 90 cd 03 00       	call   0x4454ef
40875f:	8d 43 08             	lea    0x8(%ebx),%eax
408762:	50                   	push   %eax
408763:	e8 31 7d 01 00       	call   0x420499
408768:	8b 45 08             	mov    0x8(%ebp),%eax
40876b:	47                   	inc    %edi
40876c:	83 c0 38             	add    $0x38,%eax
40876f:	89 45 08             	mov    %eax,0x8(%ebp)
408772:	3b 7e 1c             	cmp    0x1c(%esi),%edi
408775:	72 d5                	jb     0x40874c
408777:	5b                   	pop    %ebx
408778:	ff 76 20             	push   0x20(%esi)
40877b:	e8 19 b2 ff ff       	call   0x403999
408780:	5f                   	pop    %edi
408781:	5e                   	pop    %esi
408782:	5d                   	pop    %ebp
408783:	c2 04 00             	ret    $0x4
408786:	55                   	push   %ebp
408787:	8b ec                	mov    %esp,%ebp
408789:	8b 45 08             	mov    0x8(%ebp),%eax
40878c:	b9 05 00 03 00       	mov    $0x30005,%ecx
408791:	33 d2                	xor    %edx,%edx
408793:	3b c1                	cmp    %ecx,%eax
408795:	7f 3d                	jg     0x4087d4
408797:	74 15                	je     0x4087ae
408799:	05 fb ff fe ff       	add    $0xfffefffb,%eax
40879e:	83 f8 08             	cmp    $0x8,%eax
4087a1:	0f 87 e8 00 00 00    	ja     0x40888f
4087a7:	ff 24 85 9a 88 40 00 	jmp    *0x40889a(,%eax,4)
4087ae:	8b 45 10             	mov    0x10(%ebp),%eax
4087b1:	3b 45 18             	cmp    0x18(%ebp),%eax
4087b4:	7f 12                	jg     0x4087c8
4087b6:	0f 8c cb 00 00 00    	jl     0x408887
4087bc:	8b 45 0c             	mov    0xc(%ebp),%eax
4087bf:	3b 45 14             	cmp    0x14(%ebp),%eax
4087c2:	0f 82 bf 00 00 00    	jb     0x408887
4087c8:	8b ca                	mov    %edx,%ecx
4087ca:	8b 45 1c             	mov    0x1c(%ebp),%eax
4087cd:	89 08                	mov    %ecx,(%eax)
4087cf:	e9 c0 00 00 00       	jmp    0x408894
4087d4:	05 fa ff fc ff       	add    $0xfffcfffa,%eax
4087d9:	83 f8 07             	cmp    $0x7,%eax
4087dc:	0f 87 ad 00 00 00    	ja     0x40888f
4087e2:	ff 24 85 be 88 40 00 	jmp    *0x4088be(,%eax,4)
4087e9:	8b 45 10             	mov    0x10(%ebp),%eax
4087ec:	3b 45 18             	cmp    0x18(%ebp),%eax
4087ef:	7c d7                	jl     0x4087c8
4087f1:	0f 8f 90 00 00 00    	jg     0x408887
4087f7:	8b 45 0c             	mov    0xc(%ebp),%eax
4087fa:	3b 45 14             	cmp    0x14(%ebp),%eax
4087fd:	76 c9                	jbe    0x4087c8
4087ff:	e9 83 00 00 00       	jmp    0x408887
408804:	8b 45 10             	mov    0x10(%ebp),%eax
408807:	3b 45 18             	cmp    0x18(%ebp),%eax
40880a:	7f bc                	jg     0x4087c8
40880c:	7c 79                	jl     0x408887
40880e:	8b 45 0c             	mov    0xc(%ebp),%eax
408811:	3b 45 14             	cmp    0x14(%ebp),%eax
408814:	77 b2                	ja     0x4087c8
408816:	eb 6f                	jmp    0x408887
408818:	8b 45 10             	mov    0x10(%ebp),%eax
40881b:	3b 45 18             	cmp    0x18(%ebp),%eax
40881e:	7c a8                	jl     0x4087c8
408820:	7f 65                	jg     0x408887
408822:	8b 45 0c             	mov    0xc(%ebp),%eax
408825:	3b 45 14             	cmp    0x14(%ebp),%eax
408828:	72 9e                	jb     0x4087c8
40882a:	eb 5b                	jmp    0x408887
40882c:	8b 45 0c             	mov    0xc(%ebp),%eax
40882f:	3b 45 14             	cmp    0x14(%ebp),%eax
408832:	75 94                	jne    0x4087c8
408834:	8b 45 10             	mov    0x10(%ebp),%eax
408837:	3b 45 18             	cmp    0x18(%ebp),%eax
40883a:	eb 45                	jmp    0x408881
40883c:	8b 45 0c             	mov    0xc(%ebp),%eax
40883f:	3b 45 14             	cmp    0x14(%ebp),%eax
408842:	75 43                	jne    0x408887
408844:	8b 45 10             	mov    0x10(%ebp),%eax
408847:	3b 45 18             	cmp    0x18(%ebp),%eax
40884a:	0f 84 78 ff ff ff    	je     0x4087c8
408850:	eb 35                	jmp    0x408887
408852:	8b 4d 0c             	mov    0xc(%ebp),%ecx
408855:	8b 45 10             	mov    0x10(%ebp),%eax
408858:	23 4d 14             	and    0x14(%ebp),%ecx
40885b:	23 45 18             	and    0x18(%ebp),%eax
40885e:	0b c8                	or     %eax,%ecx
408860:	eb e8                	jmp    0x40884a
408862:	8b 4d 0c             	mov    0xc(%ebp),%ecx
408865:	8b 45 10             	mov    0x10(%ebp),%eax
408868:	0f ac c1 10          	shrd   $0x10,%eax,%ecx
40886c:	0f b7 c1             	movzwl %cx,%eax
40886f:	eb 04                	jmp    0x408875
408871:	0f b7 45 0c          	movzwl 0xc(%ebp),%eax
408875:	3b 45 14             	cmp    0x14(%ebp),%eax
408878:	0f 85 4a ff ff ff    	jne    0x4087c8
40887e:	3b 55 18             	cmp    0x18(%ebp),%edx
408881:	0f 85 41 ff ff ff    	jne    0x4087c8
408887:	33 c9                	xor    %ecx,%ecx
408889:	41                   	inc    %ecx
40888a:	e9 3b ff ff ff       	jmp    0x4087ca
40888f:	ba 57 00 07 80       	mov    $0x80070057,%edx
408894:	8b c2                	mov    %edx,%eax
408896:	5d                   	pop    %ebp
408897:	c2 18 00             	ret    $0x18
40889a:	ae                   	scas   %es:(%edi),%al
40889b:	87 40 00             	xchg   %eax,0x0(%eax)
40889e:	e9 87 40 00 04       	jmp    0x440c92a
4088a3:	88 40 00             	mov    %al,0x0(%eax)
4088a6:	18 88 40 00 2c 88    	sbb    %cl,-0x77d3ffc0(%eax)
4088ac:	40                   	inc    %eax
4088ad:	00 3c 88             	add    %bh,(%eax,%ecx,4)
4088b0:	40                   	inc    %eax
4088b1:	00 52 88             	add    %dl,-0x78(%edx)
4088b4:	40                   	inc    %eax
4088b5:	00 62 88             	add    %ah,-0x78(%edx)
4088b8:	40                   	inc    %eax
4088b9:	00 71 88             	add    %dh,-0x78(%ecx)
4088bc:	40                   	inc    %eax
4088bd:	00 e9                	add    %ch,%cl
4088bf:	87 40 00             	xchg   %eax,0x0(%eax)
4088c2:	04 88                	add    $0x88,%al
4088c4:	40                   	inc    %eax
4088c5:	00 18                	add    %bl,(%eax)
4088c7:	88 40 00             	mov    %al,0x0(%eax)
4088ca:	2c 88                	sub    $0x88,%al
4088cc:	40                   	inc    %eax
4088cd:	00 3c 88             	add    %bh,(%eax,%ecx,4)
4088d0:	40                   	inc    %eax
4088d1:	00 52 88             	add    %dl,-0x78(%edx)
4088d4:	40                   	inc    %eax
4088d5:	00 62 88             	add    %ah,-0x78(%edx)
4088d8:	40                   	inc    %eax
4088d9:	00 71 88             	add    %dh,-0x78(%ecx)
4088dc:	40                   	inc    %eax
4088dd:	00 55 8b             	add    %dl,-0x75(%ebp)
4088e0:	ec                   	in     (%dx),%al
4088e1:	51                   	push   %ecx
4088e2:	53                   	push   %ebx
4088e3:	56                   	push   %esi
4088e4:	8b 35 f8 b0 44 00    	mov    0x44b0f8,%esi
4088ea:	33 db                	xor    %ebx,%ebx
4088ec:	57                   	push   %edi
4088ed:	8b 7d 08             	mov    0x8(%ebp),%edi
4088f0:	8b c7                	mov    %edi,%eax
4088f2:	ff 75 0c             	push   0xc(%ebp)
4088f5:	c1 e8 11             	shr    $0x11,%eax
4088f8:	83 e0 01             	and    $0x1,%eax
4088fb:	89 45 fc             	mov    %eax,-0x4(%ebp)
4088fe:	ff d6                	call   *%esi
408900:	ff 75 10             	push   0x10(%ebp)
408903:	89 45 08             	mov    %eax,0x8(%ebp)
408906:	ff d6                	call   *%esi
408908:	8b f0                	mov    %eax,%esi
40890a:	81 ff 0a 00 03 00    	cmp    $0x3000a,%edi
408910:	7f 5f                	jg     0x408971
408912:	81 ff 05 00 03 00    	cmp    $0x30005,%edi
408918:	7d 2c                	jge    0x408946
40891a:	81 ff 05 00 01 00    	cmp    $0x10005,%edi
408920:	7c 61                	jl     0x408983
408922:	81 ff 0a 00 01 00    	cmp    $0x1000a,%edi
408928:	7e 1c                	jle    0x408946
40892a:	81 ff 0b 00 01 00    	cmp    $0x1000b,%edi
408930:	0f 84 96 00 00 00    	je     0x4089cc
408936:	81 ff 0c 00 01 00    	cmp    $0x1000c,%edi
40893c:	74 67                	je     0x4089a5
40893e:	81 ff 0d 00 01 00    	cmp    $0x1000d,%edi
408944:	eb 3b                	jmp    0x408981
408946:	56                   	push   %esi
408947:	ff 75 10             	push   0x10(%ebp)
40894a:	ff 75 08             	push   0x8(%ebp)
40894d:	ff 75 0c             	push   0xc(%ebp)
408950:	ff 75 fc             	push   -0x4(%ebp)
408953:	6a 7f                	push   $0x7f
408955:	ff 15 28 b1 44 00    	call   *0x44b128
40895b:	ff 75 14             	push   0x14(%ebp)
40895e:	99                   	cltd
40895f:	53                   	push   %ebx
408960:	6a 02                	push   $0x2
408962:	52                   	push   %edx
408963:	50                   	push   %eax
408964:	57                   	push   %edi
408965:	e8 1c fe ff ff       	call   0x408786
40896a:	8b d8                	mov    %eax,%ebx
40896c:	e9 97 00 00 00       	jmp    0x408a08
408971:	81 ef 0b 00 03 00    	sub    $0x3000b,%edi
408977:	74 53                	je     0x4089cc
408979:	83 ef 01             	sub    $0x1,%edi
40897c:	74 27                	je     0x4089a5
40897e:	83 ef 01             	sub    $0x1,%edi
408981:	74 07                	je     0x40898a
408983:	bb 57 00 07 80       	mov    $0x80070057,%ebx
408988:	eb 7e                	jmp    0x408a08
40898a:	8b 45 08             	mov    0x8(%ebp),%eax
40898d:	3b c6                	cmp    %esi,%eax
40898f:	7c 10                	jl     0x4089a1
408991:	8b 4d 0c             	mov    0xc(%ebp),%ecx
408994:	2b c6                	sub    %esi,%eax
408996:	56                   	push   %esi
408997:	ff 75 10             	push   0x10(%ebp)
40899a:	56                   	push   %esi
40899b:	8d 04 41             	lea    (%ecx,%eax,2),%eax
40899e:	50                   	push   %eax
40899f:	eb 11                	jmp    0x4089b2
4089a1:	8b cb                	mov    %ebx,%ecx
4089a3:	eb 20                	jmp    0x4089c5
4089a5:	39 75 08             	cmp    %esi,0x8(%ebp)
4089a8:	7c f7                	jl     0x4089a1
4089aa:	56                   	push   %esi
4089ab:	ff 75 10             	push   0x10(%ebp)
4089ae:	56                   	push   %esi
4089af:	ff 75 0c             	push   0xc(%ebp)
4089b2:	ff 75 fc             	push   -0x4(%ebp)
4089b5:	6a 7f                	push   $0x7f
4089b7:	ff 15 28 b1 44 00    	call   *0x44b128
4089bd:	83 f8 02             	cmp    $0x2,%eax
4089c0:	75 df                	jne    0x4089a1
4089c2:	33 c9                	xor    %ecx,%ecx
4089c4:	41                   	inc    %ecx
4089c5:	8b 45 14             	mov    0x14(%ebp),%eax
4089c8:	89 08                	mov    %ecx,(%eax)
4089ca:	eb 3c                	jmp    0x408a08
4089cc:	8b 7d 08             	mov    0x8(%ebp),%edi
4089cf:	3b f7                	cmp    %edi,%esi
4089d1:	7f 30                	jg     0x408a03
4089d3:	8b 45 0c             	mov    0xc(%ebp),%eax
4089d6:	89 75 08             	mov    %esi,0x8(%ebp)
4089d9:	56                   	push   %esi
4089da:	ff 75 10             	push   0x10(%ebp)
4089dd:	56                   	push   %esi
4089de:	50                   	push   %eax
4089df:	ff 75 fc             	push   -0x4(%ebp)
4089e2:	6a 7f                	push   $0x7f
4089e4:	ff 15 28 b1 44 00    	call   *0x44b128
4089ea:	83 f8 02             	cmp    $0x2,%eax
4089ed:	74 d3                	je     0x4089c2
4089ef:	8b 45 0c             	mov    0xc(%ebp),%eax
4089f2:	8b 4d 08             	mov    0x8(%ebp),%ecx
4089f5:	83 c0 02             	add    $0x2,%eax
4089f8:	41                   	inc    %ecx
4089f9:	89 45 0c             	mov    %eax,0xc(%ebp)
4089fc:	89 4d 08             	mov    %ecx,0x8(%ebp)
4089ff:	3b cf                	cmp    %edi,%ecx
408a01:	7e d6                	jle    0x4089d9
408a03:	8b 45 14             	mov    0x14(%ebp),%eax
408a06:	89 18                	mov    %ebx,(%eax)
408a08:	5f                   	pop    %edi
408a09:	5e                   	pop    %esi
408a0a:	8b c3                	mov    %ebx,%eax
408a0c:	5b                   	pop    %ebx
408a0d:	8b e5                	mov    %ebp,%esp
408a0f:	5d                   	pop    %ebp
408a10:	c2 10 00             	ret    $0x10
408a13:	55                   	push   %ebp
408a14:	8b ec                	mov    %esp,%ebp
408a16:	83 ec 28             	sub    $0x28,%esp
408a19:	53                   	push   %ebx
408a1a:	56                   	push   %esi
408a1b:	57                   	push   %edi
408a1c:	33 db                	xor    %ebx,%ebx
408a1e:	0f 57 c0             	xorps  %xmm0,%xmm0
408a21:	6a 02                	push   $0x2
408a23:	58                   	pop    %eax
408a24:	8b f3                	mov    %ebx,%esi
408a26:	66 0f 13 45 e8       	movlpd %xmm0,-0x18(%ebp)
408a2b:	66 0f 13 45 f0       	movlpd %xmm0,-0x10(%ebp)
408a30:	89 5d fc             	mov    %ebx,-0x4(%ebp)
408a33:	66 0f 13 45 d8       	movlpd %xmm0,-0x28(%ebp)
408a38:	66 0f 13 45 e0       	movlpd %xmm0,-0x20(%ebp)
408a3d:	89 5d f8             	mov    %ebx,-0x8(%ebp)
408a40:	39 45 1c             	cmp    %eax,0x1c(%ebp)
408a43:	0f 85 6e 01 00 00    	jne    0x408bb7
408a49:	39 45 34             	cmp    %eax,0x34(%ebp)
408a4c:	75 55                	jne    0x408aa3
408a4e:	8d 45 fc             	lea    -0x4(%ebp),%eax
408a51:	50                   	push   %eax
408a52:	8d 45 0c             	lea    0xc(%ebp),%eax
408a55:	50                   	push   %eax
408a56:	e8 85 76 01 00       	call   0x4200e0
408a5b:	8b f0                	mov    %eax,%esi
408a5d:	85 f6                	test   %esi,%esi
408a5f:	79 12                	jns    0x408a73
408a61:	68 00 e0 44 00       	push   $0x44e000
408a66:	56                   	push   %esi
408a67:	e8 c3 76 03 00       	call   0x44012f
408a6c:	59                   	pop    %ecx
408a6d:	59                   	pop    %ecx
408a6e:	e9 83 00 00 00       	jmp    0x408af6
408a73:	8d 45 f8             	lea    -0x8(%ebp),%eax
408a76:	50                   	push   %eax
408a77:	8d 45 24             	lea    0x24(%ebp),%eax
408a7a:	50                   	push   %eax
408a7b:	e8 60 76 01 00       	call   0x4200e0
408a80:	8b f0                	mov    %eax,%esi
408a82:	85 f6                	test   %esi,%esi
408a84:	79 07                	jns    0x408a8d
408a86:	68 20 e0 44 00       	push   $0x44e020
408a8b:	eb d9                	jmp    0x408a66
408a8d:	ff 75 3c             	push   0x3c(%ebp)
408a90:	ff 75 f8             	push   -0x8(%ebp)
408a93:	ff 75 fc             	push   -0x4(%ebp)
408a96:	ff 75 08             	push   0x8(%ebp)
408a99:	e8 40 fe ff ff       	call   0x4088de
408a9e:	e9 0d 01 00 00       	jmp    0x408bb0
408aa3:	83 7d 34 03          	cmpl   $0x3,0x34(%ebp)
408aa7:	0f 85 b2 00 00 00    	jne    0x408b5f
408aad:	8d 45 e0             	lea    -0x20(%ebp),%eax
408ab0:	50                   	push   %eax
408ab1:	8d 45 24             	lea    0x24(%ebp),%eax
408ab4:	50                   	push   %eax
408ab5:	e8 16 77 01 00       	call   0x4201d0
408aba:	8b f0                	mov    %eax,%esi
408abc:	85 f6                	test   %esi,%esi
408abe:	0f 88 c2 01 00 00    	js     0x408c86
408ac4:	8d 45 f0             	lea    -0x10(%ebp),%eax
408ac7:	50                   	push   %eax
408ac8:	8d 45 0c             	lea    0xc(%ebp),%eax
408acb:	50                   	push   %eax
408acc:	e8 ff 76 01 00       	call   0x4201d0
408ad1:	8b f0                	mov    %eax,%esi
408ad3:	85 f6                	test   %esi,%esi
408ad5:	79 6f                	jns    0x408b46
408ad7:	81 fe 05 00 02 80    	cmp    $0x80020005,%esi
408add:	0f 85 82 01 00 00    	jne    0x408c65
408ae3:	8b f3                	mov    %ebx,%esi
408ae5:	8b 45 3c             	mov    0x3c(%ebp),%eax
408ae8:	33 c9                	xor    %ecx,%ecx