42e644:	e8 97 3f ff ff       	call   0x4225e0
42e649:	8b c3                	mov    %ebx,%eax
42e64b:	5f                   	pop    %edi
42e64c:	5e                   	pop    %esi
42e64d:	5b                   	pop    %ebx
42e64e:	8b e5                	mov    %ebp,%esp
42e650:	5d                   	pop    %ebp
42e651:	c3                   	ret
42e652:	8b c0                	mov    %eax,%eax
42e654:	55                   	push   %ebp
42e655:	8b ec                	mov    %esp,%ebp
42e657:	83 c4 dc             	add    $0xffffffdc,%esp
42e65a:	53                   	push   %ebx
42e65b:	56                   	push   %esi
42e65c:	57                   	push   %edi
42e65d:	89 4d f8             	mov    %ecx,-0x8(%ebp)
42e660:	89 55 fc             	mov    %edx,-0x4(%ebp)
42e663:	8b f8                	mov    %eax,%edi
42e665:	8b 5d 0c             	mov    0xc(%ebp),%ebx
42e668:	83 7f 04 00          	cmpl   $0x0,0x4(%edi)
42e66c:	0f 84 3a 01 00 00    	je     0x42e7ac
42e672:	8b 47 04             	mov    0x4(%edi),%eax
42e675:	8b 10                	mov    (%eax),%edx
42e677:	ff 52 2c             	call   *0x2c(%edx)
42e67a:	85 c0                	test   %eax,%eax
42e67c:	0f 84 2a 01 00 00    	je     0x42e7ac
42e682:	8b 47 04             	mov    0x4(%edi),%eax
42e685:	8b 10                	mov    (%eax),%edx
42e687:	ff 52 20             	call   *0x20(%edx)
42e68a:	85 c0                	test   %eax,%eax
42e68c:	0f 84 1a 01 00 00    	je     0x42e7ac
42e692:	8b d3                	mov    %ebx,%edx
42e694:	8b c7                	mov    %edi,%eax
42e696:	e8 e1 f9 ff ff       	call   0x42e07c
42e69b:	8b f0                	mov    %eax,%esi
42e69d:	e8 ce 58 00 00       	call   0x433f70
42e6a2:	e8 a9 59 00 00       	call   0x434050
42e6a7:	84 c0                	test   %al,%al
42e6a9:	0f 84 80 00 00 00    	je     0x42e72f
42e6af:	8b 45 f8             	mov    -0x8(%ebp),%eax
42e6b2:	8b 10                	mov    (%eax),%edx
42e6b4:	89 55 dc             	mov    %edx,-0x24(%ebp)
42e6b7:	8b 50 04             	mov    0x4(%eax),%edx
42e6ba:	89 55 e0             	mov    %edx,-0x20(%ebp)
42e6bd:	8b 47 04             	mov    0x4(%edi),%eax
42e6c0:	8b 10                	mov    (%eax),%edx
42e6c2:	ff 52 2c             	call   *0x2c(%edx)
42e6c5:	33 d2                	xor    %edx,%edx
42e6c7:	8a 57 20             	mov    0x20(%edi),%dl
42e6ca:	8b ca                	mov    %edx,%ecx
42e6cc:	99                   	cltd
42e6cd:	f7 f9                	idiv   %ecx
42e6cf:	03 45 dc             	add    -0x24(%ebp),%eax
42e6d2:	89 45 e4             	mov    %eax,-0x1c(%ebp)
42e6d5:	8b 47 04             	mov    0x4(%edi),%eax
42e6d8:	8b 10                	mov    (%eax),%edx
42e6da:	ff 52 20             	call   *0x20(%edx)
42e6dd:	03 45 e0             	add    -0x20(%ebp),%eax
42e6e0:	89 45 e8             	mov    %eax,-0x18(%ebp)
42e6e3:	fe cb                	dec    %bl
42e6e5:	74 08                	je     0x42e6ef
42e6e7:	4b                   	dec    %ebx
42e6e8:	80 eb 02             	sub    $0x2,%bl
42e6eb:	72 06                	jb     0x42e6f3
42e6ed:	eb 08                	jmp    0x42e6f7
42e6ef:	b3 05                	mov    $0x5,%bl
42e6f1:	eb 06                	jmp    0x42e6f9
42e6f3:	b3 04                	mov    $0x4,%bl
42e6f5:	eb 02                	jmp    0x42e6f9
42e6f7:	b3 02                	mov    $0x2,%bl
42e6f9:	e8 72 58 00 00       	call   0x433f70
42e6fe:	8d 4d ec             	lea    -0x14(%ebp),%ecx
42e701:	8b d3                	mov    %ebx,%edx
42e703:	e8 ac 5b 00 00       	call   0x4342b4
42e708:	8d 45 dc             	lea    -0x24(%ebp),%eax
42e70b:	50                   	push   %eax
42e70c:	8b 47 08             	mov    0x8(%edi),%eax
42e70f:	e8 20 e3 01 00       	call   0x44ca34
42e714:	50                   	push   %eax
42e715:	56                   	push   %esi
42e716:	8b 45 fc             	mov    -0x4(%ebp),%eax
42e719:	e8 be fa fe ff       	call   0x41e1dc
42e71e:	50                   	push   %eax
42e71f:	e8 4c 58 00 00       	call   0x433f70
42e724:	8d 4d ec             	lea    -0x14(%ebp),%ecx
42e727:	5a                   	pop    %edx
42e728:	e8 73 5a 00 00       	call   0x4341a0
42e72d:	eb 7d                	jmp    0x42e7ac
42e72f:	80 7d 08 00          	cmpb   $0x0,0x8(%ebp)
42e733:	75 05                	jne    0x42e73a
42e735:	80 fb 03             	cmp    $0x3,%bl
42e738:	75 37                	jne    0x42e771
42e73a:	6a 01                	push   $0x1
42e73c:	68 ff ff ff 1f       	push   $0x1fffffff
42e741:	68 ff ff ff 1f       	push   $0x1fffffff
42e746:	6a 00                	push   $0x0
42e748:	6a 00                	push   $0x0
42e74a:	8b 45 f8             	mov    -0x8(%ebp),%eax
42e74d:	8b 40 04             	mov    0x4(%eax),%eax
42e750:	50                   	push   %eax
42e751:	8b 45 f8             	mov    -0x8(%ebp),%eax
42e754:	8b 00                	mov    (%eax),%eax
42e756:	50                   	push   %eax
42e757:	8b 45 fc             	mov    -0x4(%ebp),%eax
42e75a:	e8 7d fa fe ff       	call   0x41e1dc
42e75f:	50                   	push   %eax
42e760:	56                   	push   %esi
42e761:	8b 47 08             	mov    0x8(%edi),%eax
42e764:	e8 cb e2 01 00       	call   0x44ca34
42e769:	50                   	push   %eax
42e76a:	e8 d1 63 ff ff       	call   0x424b40
42e76f:	eb 3b                	jmp    0x42e7ac
42e771:	6a 00                	push   $0x0
42e773:	68 ff ff ff 1f       	push   $0x1fffffff
42e778:	b8 0f 00 00 ff       	mov    $0xff00000f,%eax
42e77d:	e8 86 e6 fe ff       	call   0x41ce08
42e782:	50                   	push   %eax
42e783:	6a 00                	push   $0x0
42e785:	6a 00                	push   $0x0
42e787:	8b 45 f8             	mov    -0x8(%ebp),%eax
42e78a:	8b 40 04             	mov    0x4(%eax),%eax
42e78d:	50                   	push   %eax
42e78e:	8b 45 f8             	mov    -0x8(%ebp),%eax
42e791:	8b 00                	mov    (%eax),%eax
42e793:	50                   	push   %eax
42e794:	8b 45 fc             	mov    -0x4(%ebp),%eax
42e797:	e8 40 fa fe ff       	call   0x41e1dc
42e79c:	50                   	push   %eax
42e79d:	56                   	push   %esi
42e79e:	8b 47 08             	mov    0x8(%edi),%eax
42e7a1:	e8 8e e2 01 00       	call   0x44ca34
42e7a6:	50                   	push   %eax
42e7a7:	e8 94 63 ff ff       	call   0x424b40
42e7ac:	5f                   	pop    %edi
42e7ad:	5e                   	pop    %esi
42e7ae:	5b                   	pop    %ebx
42e7af:	8b e5                	mov    %ebp,%esp
42e7b1:	5d                   	pop    %ebp
42e7b2:	c2 08 00             	ret    $0x8
42e7b5:	8d 40 00             	lea    0x0(%eax),%eax
42e7b8:	55                   	push   %ebp
42e7b9:	8b ec                	mov    %esp,%ebp
42e7bb:	83 c4 f0             	add    $0xfffffff0,%esp
42e7be:	53                   	push   %ebx
42e7bf:	56                   	push   %esi
42e7c0:	57                   	push   %edi
42e7c1:	8b 75 10             	mov    0x10(%ebp),%esi
42e7c4:	8d 7d f0             	lea    -0x10(%ebp),%edi
42e7c7:	a5                   	movsl  %ds:(%esi),%es:(%edi)
42e7c8:	a5                   	movsl  %ds:(%esi),%es:(%edi)
42e7c9:	a5                   	movsl  %ds:(%esi),%es:(%edi)
42e7ca:	a5                   	movsl  %ds:(%esi),%es:(%edi)
42e7cb:	8b f1                	mov    %ecx,%esi
42e7cd:	8b da                	mov    %edx,%ebx
42e7cf:	8b 7d 08             	mov    0x8(%ebp),%edi
42e7d2:	b2 01                	mov    $0x1,%dl
42e7d4:	8b 43 14             	mov    0x14(%ebx),%eax
42e7d7:	e8 d4 f3 fe ff       	call   0x41dbb0
42e7dc:	80 7d 0c 01          	cmpb   $0x1,0xc(%ebp)
42e7e0:	0f 85 82 00 00 00    	jne    0x42e868
42e7e6:	6a 01                	push   $0x1
42e7e8:	6a 01                	push   $0x1
42e7ea:	8d 45 f0             	lea    -0x10(%ebp),%eax
42e7ed:	50                   	push   %eax
42e7ee:	e8 a9 7f fd ff       	call   0x40679c
42e7f3:	ba 14 00 00 ff       	mov    $0xff000014,%edx
42e7f8:	8b 43 0c             	mov    0xc(%ebx),%eax
42e7fb:	e8 c8 ea fe ff       	call   0x41d2c8
42e800:	8b c7                	mov    %edi,%eax
42e802:	83 c8 05             	or     $0x5,%eax
42e805:	50                   	push   %eax
42e806:	8d 45 f0             	lea    -0x10(%ebp),%eax
42e809:	50                   	push   %eax
42e80a:	8b c6                	mov    %esi,%eax
42e80c:	e8 47 5a fd ff       	call   0x404258
42e811:	50                   	push   %eax
42e812:	8b c6                	mov    %esi,%eax
42e814:	e8 3f 5c fd ff       	call   0x404458
42e819:	50                   	push   %eax
42e81a:	8b c3                	mov    %ebx,%eax
42e81c:	e8 bb f9 fe ff       	call   0x41e1dc
42e821:	50                   	push   %eax
42e822:	e8 d5 7c fd ff       	call   0x4064fc
42e827:	6a ff                	push   $0xffffffff
42e829:	6a ff                	push   $0xffffffff
42e82b:	8d 45 f0             	lea    -0x10(%ebp),%eax
42e82e:	50                   	push   %eax
42e82f:	e8 68 7f fd ff       	call   0x40679c
42e834:	ba 10 00 00 ff       	mov    $0xff000010,%edx
42e839:	8b 43 0c             	mov    0xc(%ebx),%eax
42e83c:	e8 87 ea fe ff       	call   0x41d2c8
42e841:	83 cf 05             	or     $0x5,%edi
42e844:	57                   	push   %edi
42e845:	8d 45 f0             	lea    -0x10(%ebp),%eax
42e848:	50                   	push   %eax
42e849:	8b c6                	mov    %esi,%eax
42e84b:	e8 08 5a fd ff       	call   0x404258
42e850:	50                   	push   %eax
42e851:	8b c6                	mov    %esi,%eax
42e853:	e8 00 5c fd ff       	call   0x404458
42e858:	50                   	push   %eax
42e859:	8b c3                	mov    %ebx,%eax
42e85b:	e8 7c f9 fe ff       	call   0x41e1dc
42e860:	50                   	push   %eax
42e861:	e8 96 7c fd ff       	call   0x4064fc
42e866:	eb 25                	jmp    0x42e88d
42e868:	83 cf 05             	or     $0x5,%edi
42e86b:	57                   	push   %edi
42e86c:	8d 45 f0             	lea    -0x10(%ebp),%eax
42e86f:	50                   	push   %eax
42e870:	8b c6                	mov    %esi,%eax
42e872:	e8 e1 59 fd ff       	call   0x404258
42e877:	50                   	push   %eax
42e878:	8b c6                	mov    %esi,%eax
42e87a:	e8 d9 5b fd ff       	call   0x404458
42e87f:	50                   	push   %eax
42e880:	8b c3                	mov    %ebx,%eax
42e882:	e8 55 f9 fe ff       	call   0x41e1dc
42e887:	50                   	push   %eax
42e888:	e8 6f 7c fd ff       	call   0x4064fc
42e88d:	5f                   	pop    %edi
42e88e:	5e                   	pop    %esi
42e88f:	5b                   	pop    %ebx
42e890:	8b e5                	mov    %ebp,%esp
42e892:	5d                   	pop    %ebp
42e893:	c2 0c 00             	ret    $0xc
42e896:	8b c0                	mov    %eax,%eax
42e898:	55                   	push   %ebp
42e899:	8b ec                	mov    %esp,%ebp
42e89b:	83 c4 c0             	add    $0xffffffc0,%esp
42e89e:	53                   	push   %ebx
42e89f:	56                   	push   %esi
42e8a0:	57                   	push   %edi
42e8a1:	8b d9                	mov    %ecx,%ebx
42e8a3:	89 55 f8             	mov    %edx,-0x8(%ebp)
42e8a6:	89 45 fc             	mov    %eax,-0x4(%ebp)
42e8a9:	8b 7d 0c             	mov    0xc(%ebp),%edi
42e8ac:	8b 75 10             	mov    0x10(%ebp),%esi
42e8af:	8b 45 08             	mov    0x8(%ebp),%eax
42e8b2:	83 e0 02             	and    $0x2,%eax
42e8b5:	83 f8 02             	cmp    $0x2,%eax
42e8b8:	75 16                	jne    0x42e8d0
42e8ba:	80 7d 1c 00          	cmpb   $0x0,0x1c(%ebp)
42e8be:	75 06                	jne    0x42e8c6
42e8c0:	c6 45 1c 01          	movb   $0x1,0x1c(%ebp)
42e8c4:	eb 0a                	jmp    0x42e8d0
42e8c6:	80 7d 1c 01          	cmpb   $0x1,0x1c(%ebp)
42e8ca:	75 04                	jne    0x42e8d0
42e8cc:	c6 45 1c 00          	movb   $0x0,0x1c(%ebp)
42e8d0:	8b 53 0c             	mov    0xc(%ebx),%edx
42e8d3:	2b 53 04             	sub    0x4(%ebx),%edx
42e8d6:	8b 43 08             	mov    0x8(%ebx),%eax
42e8d9:	2b 03                	sub    (%ebx),%eax
42e8db:	8d 4d e8             	lea    -0x18(%ebp),%ecx
42e8de:	e8 3d 40 fe ff       	call   0x412920
42e8e3:	8b 45 fc             	mov    -0x4(%ebp),%eax
42e8e6:	83 78 04 00          	cmpl   $0x0,0x4(%eax)
42e8ea:	74 2e                	je     0x42e91a
42e8ec:	8b 45 fc             	mov    -0x4(%ebp),%eax
42e8ef:	8b 40 04             	mov    0x4(%eax),%eax
42e8f2:	8b 10                	mov    (%eax),%edx
42e8f4:	ff 52 20             	call   *0x20(%edx)
42e8f7:	50                   	push   %eax
42e8f8:	8b 45 fc             	mov    -0x4(%ebp),%eax
42e8fb:	8b 40 04             	mov    0x4(%eax),%eax
42e8fe:	8b 10                	mov    (%eax),%edx
42e900:	ff 52 2c             	call   *0x2c(%edx)
42e903:	8b 55 fc             	mov    -0x4(%ebp),%edx
42e906:	0f b6 52 20          	movzbl 0x20(%edx),%edx
42e90a:	8b ca                	mov    %edx,%ecx
42e90c:	99                   	cltd
42e90d:	f7 f9                	idiv   %ecx
42e90f:	8d 4d e0             	lea    -0x20(%ebp),%ecx
42e912:	5a                   	pop    %edx
42e913:	e8 08 40 fe ff       	call   0x412920
42e918:	eb 0c                	jmp    0x42e926
42e91a:	8d 4d e0             	lea    -0x20(%ebp),%ecx
42e91d:	33 d2                	xor    %edx,%edx
42e91f:	33 c0                	xor    %eax,%eax
42e921:	e8 fa 3f fe ff       	call   0x412920
42e926:	8b 45 20             	mov    0x20(%ebp),%eax
42e929:	e8 2a 59 fd ff       	call   0x404258
42e92e:	85 c0                	test   %eax,%eax
42e930:	7e 5e                	jle    0x42e990
42e932:	6a 00                	push   $0x0
42e934:	8d 45 c0             	lea    -0x40(%ebp),%eax
42e937:	50                   	push   %eax
42e938:	8b 4b 08             	mov    0x8(%ebx),%ecx
42e93b:	2b 0b                	sub    (%ebx),%ecx
42e93d:	33 d2                	xor    %edx,%edx
42e93f:	33 c0                	xor    %eax,%eax
42e941:	e8 02 40 fe ff       	call   0x412948
42e946:	56                   	push   %esi
42e947:	57                   	push   %edi
42e948:	8d 75 c0             	lea    -0x40(%ebp),%esi
42e94b:	a5                   	movsl  %ds:(%esi),%es:(%edi)
42e94c:	a5                   	movsl  %ds:(%esi),%es:(%edi)
42e94d:	a5                   	movsl  %ds:(%esi),%es:(%edi)
42e94e:	a5                   	movsl  %ds:(%esi),%es:(%edi)
42e94f:	5f                   	pop    %edi
42e950:	5e                   	pop    %esi
42e951:	8b 45 08             	mov    0x8(%ebp),%eax
42e954:	0d 00 04 00 00       	or     $0x400,%eax
42e959:	50                   	push   %eax
42e95a:	57                   	push   %edi
42e95b:	8b 45 20             	mov    0x20(%ebp),%eax
42e95e:	e8 f5 58 fd ff       	call   0x404258
42e963:	50                   	push   %eax
42e964:	8b 45 20             	mov    0x20(%ebp),%eax
42e967:	e8 ec 5a fd ff       	call   0x404458
42e96c:	50                   	push   %eax
42e96d:	8b 45 f8             	mov    -0x8(%ebp),%eax
42e970:	e8 67 f8 fe ff       	call   0x41e1dc
42e975:	50                   	push   %eax
42e976:	e8 81 7b fd ff       	call   0x4064fc
42e97b:	8b 57 0c             	mov    0xc(%edi),%edx
42e97e:	2b 57 04             	sub    0x4(%edi),%edx
42e981:	8b 47 08             	mov    0x8(%edi),%eax
42e984:	2b 07                	sub    (%edi),%eax
42e986:	8d 4d d8             	lea    -0x28(%ebp),%ecx
42e989:	e8 92 3f fe ff       	call   0x412920
42e98e:	eb 28                	jmp    0x42e9b8
42e990:	6a 00                	push   $0x0
42e992:	8d 45 c0             	lea    -0x40(%ebp),%eax
42e995:	50                   	push   %eax
42e996:	33 c9                	xor    %ecx,%ecx
42e998:	33 d2                	xor    %edx,%edx
42e99a:	33 c0                	xor    %eax,%eax
42e99c:	e8 a7 3f fe ff       	call   0x412948
42e9a1:	56                   	push   %esi
42e9a2:	57                   	push   %edi
42e9a3:	8d 75 c0             	lea    -0x40(%ebp),%esi
42e9a6:	a5                   	movsl  %ds:(%esi),%es:(%edi)
42e9a7:	a5                   	movsl  %ds:(%esi),%es:(%edi)
42e9a8:	a5                   	movsl  %ds:(%esi),%es:(%edi)
42e9a9:	a5                   	movsl  %ds:(%esi),%es:(%edi)
42e9aa:	5f                   	pop    %edi
42e9ab:	5e                   	pop    %esi
42e9ac:	8d 4d d8             	lea    -0x28(%ebp),%ecx
42e9af:	33 d2                	xor    %edx,%edx
42e9b1:	33 c0                	xor    %eax,%eax
42e9b3:	e8 68 3f fe ff       	call   0x412920
42e9b8:	8a 45 1c             	mov    0x1c(%ebp),%al
42e9bb:	2c 02                	sub    $0x2,%al
42e9bd:	73 23                	jae    0x42e9e2
42e9bf:	8b 45 ec             	mov    -0x14(%ebp),%eax
42e9c2:	8b d0                	mov    %eax,%edx
42e9c4:	2b 55 e4             	sub    -0x1c(%ebp),%edx
42e9c7:	42                   	inc    %edx
42e9c8:	d1 fa                	sar    $1,%edx