45080e:	89 4e 2c             	mov    %ecx,0x2c(%esi)
450811:	eb 17                	jmp    0x45082a
450813:	8b 4e 24             	mov    0x24(%esi),%ecx
450816:	8b 11                	mov    (%ecx),%edx
450818:	8d 46 2c             	lea    0x2c(%esi),%eax
45081b:	50                   	push   %eax
45081c:	8d 7e 30             	lea    0x30(%esi),%edi
45081f:	57                   	push   %edi
450820:	ff 76 20             	push   0x20(%esi)
450823:	6a 00                	push   $0x0
450825:	ff 52 50             	call   *0x50(%edx)
450828:	8b 07                	mov    (%edi),%eax
45082a:	8b 7e 2c             	mov    0x2c(%esi),%edi
45082d:	2b f8                	sub    %eax,%edi
45082f:	3b df                	cmp    %edi,%ebx
450831:	89 46 28             	mov    %eax,0x28(%esi)
450834:	73 02                	jae    0x450838
450836:	8b fb                	mov    %ebx,%edi
450838:	57                   	push   %edi
450839:	50                   	push   %eax
45083a:	ff 75 08             	push   0x8(%ebp)
45083d:	e8 2e 70 fc ff       	call   0x417870
450842:	01 7e 28             	add    %edi,0x28(%esi)
450845:	83 c4 0c             	add    $0xc,%esp
450848:	2b df                	sub    %edi,%ebx
45084a:	8b 45 0c             	mov    0xc(%ebp),%eax
45084d:	2b c3                	sub    %ebx,%eax
45084f:	5f                   	pop    %edi
450850:	5e                   	pop    %esi
450851:	5b                   	pop    %ebx
450852:	c9                   	leave
450853:	c2 08 00             	ret    $0x8
450856:	56                   	push   %esi
450857:	8b f1                	mov    %ecx,%esi
450859:	f6 46 18 01          	testb  $0x1,0x18(%esi)
45085d:	8b 46 28             	mov    0x28(%esi),%eax
450860:	57                   	push   %edi
450861:	74 1b                	je     0x45087e
450863:	8b 56 2c             	mov    0x2c(%esi),%edx
450866:	3b d0                	cmp    %eax,%edx
450868:	74 0f                	je     0x450879
45086a:	8b 4e 24             	mov    0x24(%esi),%ecx
45086d:	8b 39                	mov    (%ecx),%edi
45086f:	2b c2                	sub    %edx,%eax
450871:	99                   	cltd
450872:	6a 01                	push   $0x1
450874:	52                   	push   %edx
450875:	50                   	push   %eax
450876:	ff 57 28             	call   *0x28(%edi)
450879:	8b 46 2c             	mov    0x2c(%esi),%eax
45087c:	eb 49                	jmp    0x4508c7
45087e:	53                   	push   %ebx
45087f:	33 db                	xor    %ebx,%ebx
450881:	39 5e 08             	cmp    %ebx,0x8(%esi)
450884:	8d 7e 30             	lea    0x30(%esi),%edi
450887:	8b 17                	mov    (%edi),%edx
450889:	75 12                	jne    0x45089d
45088b:	3b c2                	cmp    %edx,%eax
45088d:	74 35                	je     0x4508c4
45088f:	8b 4e 24             	mov    0x24(%esi),%ecx
450892:	8b 19                	mov    (%ecx),%ebx
450894:	2b c2                	sub    %edx,%eax
450896:	50                   	push   %eax
450897:	52                   	push   %edx
450898:	ff 53 38             	call   *0x38(%ebx)
45089b:	eb 27                	jmp    0x4508c4
45089d:	3b c2                	cmp    %edx,%eax
45089f:	74 11                	je     0x4508b2
4508a1:	8b 4e 24             	mov    0x24(%esi),%ecx
4508a4:	55                   	push   %ebp
4508a5:	8b 29                	mov    (%ecx),%ebp
4508a7:	53                   	push   %ebx
4508a8:	53                   	push   %ebx
4508a9:	2b c2                	sub    %edx,%eax
4508ab:	50                   	push   %eax
4508ac:	6a 02                	push   $0x2
4508ae:	ff 55 50             	call   *0x50(%ebp)
4508b1:	5d                   	pop    %ebp
4508b2:	8b 4e 24             	mov    0x24(%esi),%ecx
4508b5:	8b 01                	mov    (%ecx),%eax
4508b7:	8d 56 2c             	lea    0x2c(%esi),%edx
4508ba:	52                   	push   %edx
4508bb:	57                   	push   %edi
4508bc:	ff 76 20             	push   0x20(%esi)
4508bf:	6a 01                	push   $0x1
4508c1:	ff 50 50             	call   *0x50(%eax)
4508c4:	8b 07                	mov    (%edi),%eax
4508c6:	5b                   	pop    %ebx
4508c7:	5f                   	pop    %edi
4508c8:	89 46 28             	mov    %eax,0x28(%esi)
4508cb:	5e                   	pop    %esi
4508cc:	c3                   	ret
4508cd:	55                   	push   %ebp
4508ce:	8b ec                	mov    %esp,%ebp
4508d0:	51                   	push   %ecx
4508d1:	51                   	push   %ecx
4508d2:	53                   	push   %ebx
4508d3:	56                   	push   %esi
4508d4:	8b f1                	mov    %ecx,%esi
4508d6:	f6 46 18 01          	testb  $0x1,0x18(%esi)
4508da:	57                   	push   %edi
4508db:	75 0a                	jne    0x4508e7
4508dd:	ff 76 14             	push   0x14(%esi)
4508e0:	6a 04                	push   $0x4
4508e2:	e9 c5 00 00 00       	jmp    0x4509ac
4508e7:	8b 4e 28             	mov    0x28(%esi),%ecx
4508ea:	8b 45 08             	mov    0x8(%ebp),%eax
4508ed:	8d 5e 2c             	lea    0x2c(%esi),%ebx
4508f0:	8b 3b                	mov    (%ebx),%edi
4508f2:	2b f9                	sub    %ecx,%edi
4508f4:	03 c7                	add    %edi,%eax
4508f6:	83 7e 08 00          	cmpl   $0x0,0x8(%esi)
4508fa:	89 45 f8             	mov    %eax,-0x8(%ebp)
4508fd:	75 69                	jne    0x450968
4508ff:	8b 46 30             	mov    0x30(%esi),%eax
450902:	3b c8                	cmp    %eax,%ecx
450904:	0f 86 90 00 00 00    	jbe    0x45099a
45090a:	85 ff                	test   %edi,%edi
45090c:	7e 16                	jle    0x450924
45090e:	57                   	push   %edi
45090f:	51                   	push   %ecx
450910:	50                   	push   %eax
450911:	e8 0a 67 fc ff       	call   0x417020
450916:	8b 46 30             	mov    0x30(%esi),%eax
450919:	8d 0c 38             	lea    (%eax,%edi,1),%ecx
45091c:	83 c4 0c             	add    $0xc,%esp
45091f:	89 46 28             	mov    %eax,0x28(%esi)
450922:	89 0b                	mov    %ecx,(%ebx)
450924:	83 7e 0c 00          	cmpl   $0x0,0xc(%esi)
450928:	8b 5d 08             	mov    0x8(%ebp),%ebx
45092b:	89 7d fc             	mov    %edi,-0x4(%ebp)
45092e:	75 03                	jne    0x450933
450930:	8b 5e 20             	mov    0x20(%esi),%ebx
450933:	2b df                	sub    %edi,%ebx
450935:	03 f8                	add    %eax,%edi
450937:	8b 4e 24             	mov    0x24(%esi),%ecx
45093a:	8b 01                	mov    (%ecx),%eax
45093c:	53                   	push   %ebx
45093d:	57                   	push   %edi
45093e:	ff 50 34             	call   *0x34(%eax)
450941:	01 45 fc             	add    %eax,-0x4(%ebp)
450944:	03 f8                	add    %eax,%edi
450946:	2b d8                	sub    %eax,%ebx
450948:	85 c0                	test   %eax,%eax
45094a:	76 0c                	jbe    0x450958
45094c:	85 db                	test   %ebx,%ebx
45094e:	76 08                	jbe    0x450958
450950:	8b 45 fc             	mov    -0x4(%ebp),%eax
450953:	3b 45 08             	cmp    0x8(%ebp),%eax
450956:	72 df                	jb     0x450937
450958:	8b 46 30             	mov    0x30(%esi),%eax
45095b:	8b 4d fc             	mov    -0x4(%ebp),%ecx
45095e:	89 46 28             	mov    %eax,0x28(%esi)
450961:	03 c1                	add    %ecx,%eax
450963:	89 46 2c             	mov    %eax,0x2c(%esi)
450966:	eb 32                	jmp    0x45099a
450968:	85 ff                	test   %edi,%edi
45096a:	74 17                	je     0x450983
45096c:	8b 4e 24             	mov    0x24(%esi),%ecx
45096f:	8b 01                	mov    (%ecx),%eax
450971:	89 45 08             	mov    %eax,0x8(%ebp)
450974:	8b c7                	mov    %edi,%eax
450976:	f7 d8                	neg    %eax
450978:	99                   	cltd
450979:	6a 01                	push   $0x1
45097b:	52                   	push   %edx
45097c:	50                   	push   %eax
45097d:	8b 45 08             	mov    0x8(%ebp),%eax
450980:	ff 50 28             	call   *0x28(%eax)
450983:	8b 4e 24             	mov    0x24(%esi),%ecx
450986:	8b 01                	mov    (%ecx),%eax
450988:	53                   	push   %ebx
450989:	8d 7e 30             	lea    0x30(%esi),%edi
45098c:	57                   	push   %edi
45098d:	ff 76 20             	push   0x20(%esi)
450990:	6a 00                	push   $0x0
450992:	ff 50 50             	call   *0x50(%eax)
450995:	8b 07                	mov    (%edi),%eax
450997:	89 46 28             	mov    %eax,0x28(%esi)
45099a:	8b 46 2c             	mov    0x2c(%esi),%eax
45099d:	2b 46 28             	sub    0x28(%esi),%eax
4509a0:	5f                   	pop    %edi
4509a1:	3b 45 f8             	cmp    -0x8(%ebp),%eax
4509a4:	5e                   	pop    %esi
4509a5:	5b                   	pop    %ebx
4509a6:	73 09                	jae    0x4509b1
4509a8:	6a 00                	push   $0x0
4509aa:	6a 03                	push   $0x3
4509ac:	e8 aa 07 00 00       	call   0x45115b
4509b1:	c9                   	leave
4509b2:	c2 04 00             	ret    $0x4
4509b5:	8b 01                	mov    (%ecx),%eax
4509b7:	c3                   	ret
4509b8:	55                   	push   %ebp
4509b9:	8b ec                	mov    %esp,%ebp
4509bb:	51                   	push   %ecx
4509bc:	51                   	push   %ecx
4509bd:	56                   	push   %esi
4509be:	8b 75 0c             	mov    0xc(%ebp),%esi
4509c1:	57                   	push   %edi
4509c2:	8b 7d 08             	mov    0x8(%ebp),%edi
4509c5:	8d 45 0f             	lea    0xf(%ebp),%eax
4509c8:	50                   	push   %eax
4509c9:	8b cf                	mov    %edi,%ecx
4509cb:	c7 06 01 00 00 00    	movl   $0x1,(%esi)
4509d1:	e8 09 a9 fb ff       	call   0x40b2df
4509d6:	80 7d 0f ff          	cmpb   $0xff,0xf(%ebp)
4509da:	72 2a                	jb     0x450a06
4509dc:	8d 45 0a             	lea    0xa(%ebp),%eax
4509df:	50                   	push   %eax
4509e0:	8b cf                	mov    %edi,%ecx
4509e2:	e8 c7 a9 fb ff       	call   0x40b3ae
4509e7:	66 81 7d 0a fe ff    	cmpw   $0xfffe,0xa(%ebp)
4509ed:	75 2c                	jne    0x450a1b
4509ef:	8d 45 0f             	lea    0xf(%ebp),%eax
4509f2:	50                   	push   %eax
4509f3:	8b cf                	mov    %edi,%ecx
4509f5:	c7 06 02 00 00 00    	movl   $0x2,(%esi)
4509fb:	e8 df a8 fb ff       	call   0x40b2df
450a00:	80 7d 0f ff          	cmpb   $0xff,0xf(%ebp)
450a04:	73 0a                	jae    0x450a10
450a06:	0f b6 45 0f          	movzbl 0xf(%ebp),%eax
450a0a:	5f                   	pop    %edi
450a0b:	5e                   	pop    %esi
450a0c:	c9                   	leave
450a0d:	c2 08 00             	ret    $0x8
450a10:	8d 45 0a             	lea    0xa(%ebp),%eax
450a13:	50                   	push   %eax
450a14:	8b cf                	mov    %edi,%ecx
450a16:	e8 93 a9 fb ff       	call   0x40b3ae
450a1b:	66 81 7d 0a ff ff    	cmpw   $0xffff,0xa(%ebp)
450a21:	73 06                	jae    0x450a29
450a23:	0f b7 45 0a          	movzwl 0xa(%ebp),%eax
450a27:	eb e1                	jmp    0x450a0a
450a29:	8d 45 0c             	lea    0xc(%ebp),%eax
450a2c:	50                   	push   %eax
450a2d:	8b cf                	mov    %edi,%ecx
450a2f:	e8 bd a9 fb ff       	call   0x40b3f1
450a34:	8b 45 0c             	mov    0xc(%ebp),%eax
450a37:	83 f8 ff             	cmp    $0xffffffff,%eax
450a3a:	72 ce                	jb     0x450a0a
450a3c:	8d 45 f8             	lea    -0x8(%ebp),%eax
450a3f:	50                   	push   %eax
450a40:	8b cf                	mov    %edi,%ecx
450a42:	e8 1f a9 fb ff       	call   0x40b366
450a47:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
450a4b:	77 0a                	ja     0x450a57
450a4d:	8b 45 f8             	mov    -0x8(%ebp),%eax
450a50:	3d ff ff ff 7f       	cmp    $0x7fffffff,%eax
450a55:	76 b3                	jbe    0x450a0a
450a57:	6a 00                	push   $0x0
450a59:	6a 01                	push   $0x1
450a5b:	e8 fb 06 00 00       	call   0x45115b
450a60:	cc                   	int3
450a61:	83 7c 24 0c 00       	cmpl   $0x0,0xc(%esp)
450a66:	53                   	push   %ebx
450a67:	56                   	push   %esi
450a68:	57                   	push   %edi
450a69:	8b 7c 24 10          	mov    0x10(%esp),%edi
450a6d:	be ff 00 00 00       	mov    $0xff,%esi
450a72:	74 14                	je     0x450a88
450a74:	56                   	push   %esi
450a75:	8b cf                	mov    %edi,%ecx
450a77:	e8 7f a6 fb ff       	call   0x40b0fb
450a7c:	68 fe ff 00 00       	push   $0xfffe
450a81:	8b cf                	mov    %edi,%ecx
450a83:	e8 2f a7 fb ff       	call   0x40b1b7
450a88:	8b 5c 24 14          	mov    0x14(%esp),%ebx
450a8c:	3b de                	cmp    %esi,%ebx
450a8e:	8b cf                	mov    %edi,%ecx
450a90:	73 08                	jae    0x450a9a
450a92:	53                   	push   %ebx
450a93:	e8 63 a6 fb ff       	call   0x40b0fb
450a98:	eb 42                	jmp    0x450adc
450a9a:	56                   	push   %esi
450a9b:	e8 5b a6 fb ff       	call   0x40b0fb
450aa0:	81 fb fe ff 00 00    	cmp    $0xfffe,%ebx
450aa6:	8b cf                	mov    %edi,%ecx
450aa8:	73 08                	jae    0x450ab2
450aaa:	53                   	push   %ebx
450aab:	e8 07 a7 fb ff       	call   0x40b1b7
450ab0:	eb 2a                	jmp    0x450adc
450ab2:	68 ff ff 00 00       	push   $0xffff
450ab7:	e8 fb a6 fb ff       	call   0x40b1b7
450abc:	83 fb ff             	cmp    $0xffffffff,%ebx
450abf:	8b cf                	mov    %edi,%ecx
450ac1:	73 08                	jae    0x450acb
450ac3:	53                   	push   %ebx
450ac4:	e8 65 a7 fb ff       	call   0x40b22e
450ac9:	eb 11                	jmp    0x450adc
450acb:	6a ff                	push   $0xffffffff
450acd:	e8 5c a7 fb ff       	call   0x40b22e
450ad2:	6a 00                	push   $0x0
450ad4:	53                   	push   %ebx
450ad5:	8b cf                	mov    %edi,%ecx
450ad7:	e8 99 a6 fb ff       	call   0x40b175
450adc:	5f                   	pop    %edi
450add:	5e                   	pop    %esi
450ade:	5b                   	pop    %ebx
450adf:	c2 0c 00             	ret    $0xc
450ae2:	56                   	push   %esi
450ae3:	e8 19 ce 01 00       	call   0x46d901
450ae8:	6a 00                	push   $0x0
450aea:	8b f0                	mov    %eax,%esi
450aec:	e8 b5 da 01 00       	call   0x46e5a6
450af1:	8b 76 1c             	mov    0x1c(%esi),%esi
450af4:	eb 13                	jmp    0x450b09
450af6:	ff 36                	push   (%esi)
450af8:	ff 74 24 0c          	push   0xc(%esp)
450afc:	ff 15 ec 02 4b 00    	call   *0x4b02ec
450b02:	85 c0                	test   %eax,%eax
450b04:	74 07                	je     0x450b0d
450b06:	8b 76 14             	mov    0x14(%esi),%esi
450b09:	85 f6                	test   %esi,%esi
450b0b:	75 e9                	jne    0x450af6
450b0d:	6a 00                	push   $0x0
450b0f:	e8 f5 da 01 00       	call   0x46e609
450b14:	8b c6                	mov    %esi,%eax
450b16:	5e                   	pop    %esi
450b17:	c2 04 00             	ret    $0x4
450b1a:	b8 e9 31 48 00       	mov    $0x4831e9,%eax
450b1f:	e8 58 71 fc ff       	call   0x417c7c
450b24:	51                   	push   %ecx
450b25:	56                   	push   %esi
450b26:	57                   	push   %edi
450b27:	ff 15 fc 70 4a 00    	call   *0x4a70fc
450b2d:	83 65 f0 00          	andl   $0x0,-0x10(%ebp)
450b31:	8b f8                	mov    %eax,%edi
450b33:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
450b37:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
450b3b:	74 49                	je     0x450b86
450b3d:	ff 75 08             	push   0x8(%ebp)
450b40:	ff 15 90 03 4b 00    	call   *0x4b0390
450b46:	8d 74 00 02          	lea    0x2(%eax,%eax,1),%esi
450b4a:	81 fe 00 04 00 00    	cmp    $0x400,%esi
450b50:	7f 1c                	jg     0x450b6e
450b52:	56                   	push   %esi
450b53:	e8 a9 08 fb ff       	call   0x401401
450b58:	84 c0                	test   %al,%al
450b5a:	59                   	pop    %ecx
450b5b:	74 11                	je     0x450b6e
450b5d:	8b c6                	mov    %esi,%eax
450b5f:	83 c0 03             	add    $0x3,%eax
450b62:	83 e0 fc             	and    $0xfffffffc,%eax
450b65:	e8 86 5b fc ff       	call   0x4166f0
450b6a:	8b c4                	mov    %esp,%eax
450b6c:	eb 09                	jmp    0x450b77
450b6e:	56                   	push   %esi
450b6f:	8d 4d f0             	lea    -0x10(%ebp),%ecx
450b72:	e8 d7 06 fb ff       	call   0x40124e