45e8e7:	75 17                	jne    0x45e900
45e8e9:	6a 10                	push   $0x10
45e8eb:	e8 e8 b0 00 00       	call   0x4699d8
45e8f0:	8b 55 f0             	mov    -0x10(%ebp),%edx
45e8f3:	8b c8                	mov    %eax,%ecx
45e8f5:	8b 46 04             	mov    0x4(%esi),%eax
45e8f8:	83 c4 04             	add    $0x4,%esp
45e8fb:	89 0c 02             	mov    %ecx,(%edx,%eax,1)
45e8fe:	8b ca                	mov    %edx,%ecx
45e900:	8b 46 04             	mov    0x4(%esi),%eax
45e903:	83 e7 01             	and    $0x1,%edi
45e906:	8b 04 08             	mov    (%eax,%ecx,1),%eax
45e909:	c7 04 f8 00 00 00 00 	movl   $0x0,(%eax,%edi,8)
45e910:	c7 44 f8 04 00 00 00 	movl   $0x0,0x4(%eax,%edi,8)
45e917:	00
45e918:	ff 46 10             	incl   0x10(%esi)
45e91b:	c6 45 fc 03          	movb   $0x3,-0x4(%ebp)
45e91f:	8d 73 4c             	lea    0x4c(%ebx),%esi
45e922:	8d 45 ee             	lea    -0x12(%ebp),%eax
45e925:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
45e92b:	6a 08                	push   $0x8
45e92d:	c7 46 04 00 00 00 00 	movl   $0x0,0x4(%esi)
45e934:	c7 46 08 00 00 00 00 	movl   $0x0,0x8(%esi)
45e93b:	c7 46 0c 00 00 00 00 	movl   $0x0,0xc(%esi)
45e942:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
45e949:	89 45 e4             	mov    %eax,-0x1c(%ebp)
45e94c:	e8 87 b0 00 00       	call   0x4699d8
45e951:	83 c4 04             	add    $0x4,%esp
45e954:	89 45 e0             	mov    %eax,-0x20(%ebp)
45e957:	89 30                	mov    %esi,(%eax)
45e959:	c7 40 04 00 00 00 00 	movl   $0x0,0x4(%eax)
45e960:	89 06                	mov    %eax,(%esi)
45e962:	89 75 e8             	mov    %esi,-0x18(%ebp)
45e965:	c6 45 fc 05          	movb   $0x5,-0x4(%ebp)
45e969:	8b 46 0c             	mov    0xc(%esi),%eax
45e96c:	8b 4e 10             	mov    0x10(%esi),%ecx
45e96f:	03 c1                	add    %ecx,%eax
45e971:	a8 03                	test   $0x3,%al
45e973:	75 13                	jne    0x45e988
45e975:	8d 41 04             	lea    0x4(%ecx),%eax
45e978:	c1 e8 02             	shr    $0x2,%eax
45e97b:	39 46 08             	cmp    %eax,0x8(%esi)
45e97e:	77 08                	ja     0x45e988
45e980:	51                   	push   %ecx
45e981:	8b ce                	mov    %esi,%ecx
45e983:	e8 18 06 00 00       	call   0x45efa0
45e988:	8b 4e 08             	mov    0x8(%esi),%ecx
45e98b:	8b 7e 10             	mov    0x10(%esi),%edi
45e98e:	8d 04 8d ff ff ff ff 	lea    -0x1(,%ecx,4),%eax
45e995:	49                   	dec    %ecx
45e996:	21 46 0c             	and    %eax,0xc(%esi)
45e999:	03 7e 0c             	add    0xc(%esi),%edi
45e99c:	8b c7                	mov    %edi,%eax
45e99e:	c1 e8 02             	shr    $0x2,%eax
45e9a1:	23 c8                	and    %eax,%ecx
45e9a3:	8b 46 04             	mov    0x4(%esi),%eax
45e9a6:	c1 e1 02             	shl    $0x2,%ecx
45e9a9:	89 4d f0             	mov    %ecx,-0x10(%ebp)
45e9ac:	83 3c 01 00          	cmpl   $0x0,(%ecx,%eax,1)
45e9b0:	75 15                	jne    0x45e9c7
45e9b2:	6a 10                	push   $0x10
45e9b4:	e8 1f b0 00 00       	call   0x4699d8
45e9b9:	8b 4e 04             	mov    0x4(%esi),%ecx
45e9bc:	83 c4 04             	add    $0x4,%esp
45e9bf:	8b 55 f0             	mov    -0x10(%ebp),%edx
45e9c2:	89 04 0a             	mov    %eax,(%edx,%ecx,1)
45e9c5:	eb 02                	jmp    0x45e9c9
45e9c7:	8b d1                	mov    %ecx,%edx
45e9c9:	8b 4e 04             	mov    0x4(%esi),%ecx
45e9cc:	83 e7 03             	and    $0x3,%edi
45e9cf:	8b c3                	mov    %ebx,%eax
45e9d1:	8b 0c 0a             	mov    (%edx,%ecx,1),%ecx
45e9d4:	c7 04 b9 00 00 00 00 	movl   $0x0,(%ecx,%edi,4)
45e9db:	ff 46 10             	incl   0x10(%esi)
45e9de:	8b 4d f4             	mov    -0xc(%ebp),%ecx
45e9e1:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
45e9e8:	59                   	pop    %ecx
45e9e9:	5f                   	pop    %edi
45e9ea:	5e                   	pop    %esi
45e9eb:	5b                   	pop    %ebx
45e9ec:	8b e5                	mov    %ebp,%esp
45e9ee:	5d                   	pop    %ebp
45e9ef:	c2 04 00             	ret    $0x4
45e9f2:	cc                   	int3
45e9f3:	cc                   	int3
45e9f4:	cc                   	int3
45e9f5:	cc                   	int3
45e9f6:	cc                   	int3
45e9f7:	cc                   	int3
45e9f8:	cc                   	int3
45e9f9:	cc                   	int3
45e9fa:	cc                   	int3
45e9fb:	cc                   	int3
45e9fc:	cc                   	int3
45e9fd:	cc                   	int3
45e9fe:	cc                   	int3
45e9ff:	cc                   	int3
45ea00:	56                   	push   %esi
45ea01:	57                   	push   %edi
45ea02:	8b f9                	mov    %ecx,%edi
45ea04:	8d 4f 4c             	lea    0x4c(%edi),%ecx
45ea07:	e8 f4 04 00 00       	call   0x45ef00
45ea0c:	8b 47 4c             	mov    0x4c(%edi),%eax
45ea0f:	6a 08                	push   $0x8
45ea11:	50                   	push   %eax
45ea12:	c7 47 4c 00 00 00 00 	movl   $0x0,0x4c(%edi)
45ea19:	e8 ea af 00 00       	call   0x469a08
45ea1e:	83 c4 08             	add    $0x8,%esp
45ea21:	8d 4f 38             	lea    0x38(%edi),%ecx
45ea24:	e8 d7 04 00 00       	call   0x45ef00
45ea29:	8b 47 38             	mov    0x38(%edi),%eax
45ea2c:	6a 08                	push   $0x8
45ea2e:	50                   	push   %eax
45ea2f:	c7 47 38 00 00 00 00 	movl   $0x0,0x38(%edi)
45ea36:	e8 cd af 00 00       	call   0x469a08
45ea3b:	83 c4 08             	add    $0x8,%esp
45ea3e:	c7 47 10 30 70 4b 00 	movl   $0x4b7030,0x10(%edi)
45ea45:	8d 4f 10             	lea    0x10(%edi),%ecx
45ea48:	c7 41 04 20 70 4b 00 	movl   $0x4b7020,0x4(%ecx)
45ea4f:	e8 3c e2 ff ff       	call   0x45cc90
45ea54:	f6 44 24 0c 01       	testb  $0x1,0xc(%esp)
45ea59:	74 0b                	je     0x45ea66
45ea5b:	6a 60                	push   $0x60
45ea5d:	57                   	push   %edi
45ea5e:	e8 a5 af 00 00       	call   0x469a08
45ea63:	83 c4 08             	add    $0x8,%esp
45ea66:	8b c7                	mov    %edi,%eax
45ea68:	5f                   	pop    %edi
45ea69:	5e                   	pop    %esi
45ea6a:	c2 04 00             	ret    $0x4
45ea6d:	cc                   	int3
45ea6e:	cc                   	int3
45ea6f:	cc                   	int3
45ea70:	53                   	push   %ebx
45ea71:	56                   	push   %esi
45ea72:	57                   	push   %edi
45ea73:	8b f9                	mov    %ecx,%edi
45ea75:	8b 07                	mov    (%edi),%eax
45ea77:	8b 70 3c             	mov    0x3c(%eax),%esi
45ea7a:	8b ce                	mov    %esi,%ecx
45ea7c:	ff 15 d4 e2 49 00    	call   *0x49e2d4
45ea82:	8b cf                	mov    %edi,%ecx
45ea84:	ff d6                	call   *%esi
45ea86:	8b 5c 24 14          	mov    0x14(%esp),%ebx
45ea8a:	39 53 04             	cmp    %edx,0x4(%ebx)
45ea8d:	72 0e                	jb     0x45ea9d
45ea8f:	77 04                	ja     0x45ea95
45ea91:	39 03                	cmp    %eax,(%ebx)
45ea93:	72 08                	jb     0x45ea9d
45ea95:	5f                   	pop    %edi
45ea96:	5e                   	pop    %esi
45ea97:	33 c0                	xor    %eax,%eax
45ea99:	5b                   	pop    %ebx
45ea9a:	c2 18 00             	ret    $0x18
45ea9d:	8b 07                	mov    (%edi),%eax
45ea9f:	8b 70 3c             	mov    0x3c(%eax),%esi
45eaa2:	8b ce                	mov    %esi,%ecx
45eaa4:	ff 15 d4 e2 49 00    	call   *0x49e2d4
45eaaa:	8b cf                	mov    %edi,%ecx
45eaac:	ff d6                	call   *%esi
45eaae:	8b f2                	mov    %edx,%esi
45eab0:	8b 54 24 1c          	mov    0x1c(%esp),%edx
45eab4:	3b d6                	cmp    %esi,%edx
45eab6:	77 0a                	ja     0x45eac2
45eab8:	8b 4c 24 18          	mov    0x18(%esp),%ecx
45eabc:	72 08                	jb     0x45eac6
45eabe:	3b c8                	cmp    %eax,%ecx
45eac0:	72 04                	jb     0x45eac6
45eac2:	8b c8                	mov    %eax,%ecx
45eac4:	8b d6                	mov    %esi,%edx
45eac6:	ff 74 24 24          	push   0x24(%esp)
45eaca:	8b 77 10             	mov    0x10(%edi),%esi
45eacd:	ff 74 24 24          	push   0x24(%esp)
45ead1:	52                   	push   %edx
45ead2:	8b b6 80 00 00 00    	mov    0x80(%esi),%esi
45ead8:	51                   	push   %ecx
45ead9:	53                   	push   %ebx
45eada:	ff 74 24 24          	push   0x24(%esp)
45eade:	8b ce                	mov    %esi,%ecx
45eae0:	ff 15 d4 e2 49 00    	call   *0x49e2d4
45eae6:	8d 4f 10             	lea    0x10(%edi),%ecx
45eae9:	ff d6                	call   *%esi
45eaeb:	5f                   	pop    %edi
45eaec:	5e                   	pop    %esi
45eaed:	5b                   	pop    %ebx
45eaee:	c2 18 00             	ret    $0x18
45eaf1:	cc                   	int3
45eaf2:	cc                   	int3
45eaf3:	cc                   	int3
45eaf4:	cc                   	int3
45eaf5:	cc                   	int3
45eaf6:	cc                   	int3
45eaf7:	cc                   	int3
45eaf8:	cc                   	int3
45eaf9:	cc                   	int3
45eafa:	cc                   	int3
45eafb:	cc                   	int3
45eafc:	cc                   	int3
45eafd:	cc                   	int3
45eafe:	cc                   	int3
45eaff:	cc                   	int3
45eb00:	53                   	push   %ebx
45eb01:	55                   	push   %ebp
45eb02:	8b e9                	mov    %ecx,%ebp
45eb04:	56                   	push   %esi
45eb05:	57                   	push   %edi
45eb06:	8b 45 00             	mov    0x0(%ebp),%eax
45eb09:	8b 70 3c             	mov    0x3c(%eax),%esi
45eb0c:	8b ce                	mov    %esi,%ecx
45eb0e:	ff 15 d4 e2 49 00    	call   *0x49e2d4
45eb14:	8b cd                	mov    %ebp,%ecx
45eb16:	ff d6                	call   *%esi
45eb18:	8b 5c 24 18          	mov    0x18(%esp),%ebx
45eb1c:	8b 73 04             	mov    0x4(%ebx),%esi
45eb1f:	8b 0b                	mov    (%ebx),%ecx
45eb21:	3b f2                	cmp    %edx,%esi
45eb23:	77 06                	ja     0x45eb2b
45eb25:	72 08                	jb     0x45eb2f
45eb27:	3b c8                	cmp    %eax,%ecx
45eb29:	72 04                	jb     0x45eb2f
45eb2b:	8b c8                	mov    %eax,%ecx
45eb2d:	8b f2                	mov    %edx,%esi
45eb2f:	ff 74 24 20          	push   0x20(%esp)
45eb33:	89 0b                	mov    %ecx,(%ebx)
45eb35:	ff 74 24 20          	push   0x20(%esp)
45eb39:	89 73 04             	mov    %esi,0x4(%ebx)
45eb3c:	8b 75 10             	mov    0x10(%ebp),%esi
45eb3f:	53                   	push   %ebx
45eb40:	ff 74 24 20          	push   0x20(%esp)
45eb44:	8b 76 7c             	mov    0x7c(%esi),%esi
45eb47:	8b ce                	mov    %esi,%ecx
45eb49:	ff 15 d4 e2 49 00    	call   *0x49e2d4
45eb4f:	8d 4d 10             	lea    0x10(%ebp),%ecx
45eb52:	ff d6                	call   *%esi
45eb54:	8b 75 44             	mov    0x44(%ebp),%esi
45eb57:	8b f8                	mov    %eax,%edi
45eb59:	8b 55 40             	mov    0x40(%ebp),%edx
45eb5c:	8b ce                	mov    %esi,%ecx
45eb5e:	8b 45 3c             	mov    0x3c(%ebp),%eax
45eb61:	4a                   	dec    %edx
45eb62:	d1 e9                	shr    $1,%ecx
45eb64:	83 e6 01             	and    $0x1,%esi
45eb67:	23 d1                	and    %ecx,%edx
45eb69:	8b 04 90             	mov    (%eax,%edx,4),%eax
45eb6c:	8d 0c f0             	lea    (%eax,%esi,8),%ecx
45eb6f:	8b 03                	mov    (%ebx),%eax
45eb71:	29 01                	sub    %eax,(%ecx)
45eb73:	8b 43 04             	mov    0x4(%ebx),%eax
45eb76:	19 41 04             	sbb    %eax,0x4(%ecx)
45eb79:	8b c7                	mov    %edi,%eax
45eb7b:	5f                   	pop    %edi
45eb7c:	5e                   	pop    %esi
45eb7d:	5d                   	pop    %ebp
45eb7e:	5b                   	pop    %ebx
45eb7f:	c2 10 00             	ret    $0x10
45eb82:	cc                   	int3
45eb83:	cc                   	int3
45eb84:	cc                   	int3
45eb85:	cc                   	int3
45eb86:	cc                   	int3
45eb87:	cc                   	int3
45eb88:	cc                   	int3
45eb89:	cc                   	int3
45eb8a:	cc                   	int3
45eb8b:	cc                   	int3
45eb8c:	cc                   	int3
45eb8d:	cc                   	int3
45eb8e:	cc                   	int3
45eb8f:	cc                   	int3
45eb90:	56                   	push   %esi
45eb91:	57                   	push   %edi
45eb92:	8b f9                	mov    %ecx,%edi
45eb94:	8b 07                	mov    (%edi),%eax
45eb96:	8b 70 5c             	mov    0x5c(%eax),%esi
45eb99:	8b ce                	mov    %esi,%ecx
45eb9b:	ff 15 d4 e2 49 00    	call   *0x49e2d4
45eba1:	8b cf                	mov    %edi,%ecx
45eba3:	ff d6                	call   *%esi
45eba5:	85 c0                	test   %eax,%eax
45eba7:	74 68                	je     0x45ec11
45eba9:	8b 07                	mov    (%edi),%eax
45ebab:	8b 70 40             	mov    0x40(%eax),%esi
45ebae:	8b ce                	mov    %esi,%ecx
45ebb0:	ff 15 d4 e2 49 00    	call   *0x49e2d4
45ebb6:	8b cf                	mov    %edi,%ecx
45ebb8:	ff d6                	call   *%esi
45ebba:	84 c0                	test   %al,%al
45ebbc:	75 53                	jne    0x45ec11
45ebbe:	83 47 48 ff          	addl   $0xffffffff,0x48(%edi)
45ebc2:	75 09                	jne    0x45ebcd
45ebc4:	c7 47 44 00 00 00 00 	movl   $0x0,0x44(%edi)
45ebcb:	eb 03                	jmp    0x45ebd0
45ebcd:	ff 47 44             	incl   0x44(%edi)
45ebd0:	8b 57 58             	mov    0x58(%edi),%edx
45ebd3:	8b c2                	mov    %edx,%eax
45ebd5:	8b 4f 54             	mov    0x54(%edi),%ecx
45ebd8:	83 e2 03             	and    $0x3,%edx
45ebdb:	c1 e8 02             	shr    $0x2,%eax
45ebde:	49                   	dec    %ecx
45ebdf:	23 c8                	and    %eax,%ecx
45ebe1:	8b 47 50             	mov    0x50(%edi),%eax
45ebe4:	8b 04 88             	mov    (%eax,%ecx,4),%eax
45ebe7:	83 3c 90 00          	cmpl   $0x0,(%eax,%edx,4)
45ebeb:	75 1f                	jne    0x45ec0c
45ebed:	8b 47 5c             	mov    0x5c(%edi),%eax
45ebf0:	83 f8 01             	cmp    $0x1,%eax
45ebf3:	76 17                	jbe    0x45ec0c
45ebf5:	83 c0 ff             	add    $0xffffffff,%eax
45ebf8:	89 47 5c             	mov    %eax,0x5c(%edi)
45ebfb:	75 0c                	jne    0x45ec09
45ebfd:	c7 47 58 00 00 00 00 	movl   $0x0,0x58(%edi)
45ec04:	b0 01                	mov    $0x1,%al
45ec06:	5f                   	pop    %edi
45ec07:	5e                   	pop    %esi
45ec08:	c3                   	ret
45ec09:	ff 47 58             	incl   0x58(%edi)
45ec0c:	5f                   	pop    %edi
45ec0d:	b0 01                	mov    $0x1,%al
45ec0f:	5e                   	pop    %esi
45ec10:	c3                   	ret
45ec11:	5f                   	pop    %edi
45ec12:	32 c0                	xor    %al,%al
45ec14:	5e                   	pop    %esi
45ec15:	c3                   	ret
45ec16:	cc                   	int3
45ec17:	cc                   	int3
45ec18:	cc                   	int3
45ec19:	cc                   	int3
45ec1a:	cc                   	int3
45ec1b:	cc                   	int3
45ec1c:	cc                   	int3
45ec1d:	cc                   	int3
45ec1e:	cc                   	int3
45ec1f:	cc                   	int3
45ec20:	83 ec 14             	sub    $0x14,%esp
45ec23:	53                   	push   %ebx
45ec24:	55                   	push   %ebp
45ec25:	56                   	push   %esi
45ec26:	8b f1                	mov    %ecx,%esi
45ec28:	ba 01 00 00 00       	mov    $0x1,%edx
45ec2d:	57                   	push   %edi
45ec2e:	89 74 24 1c          	mov    %esi,0x1c(%esp)
45ec32:	8b 5e 10             	mov    0x10(%esi),%ebx
45ec35:	8d 7e 08             	lea    0x8(%esi),%edi
45ec38:	8b 46 0c             	mov    0xc(%esi),%eax
45ec3b:	8d 6e 04             	lea    0x4(%esi),%ebp
45ec3e:	89 44 24 18          	mov    %eax,0x18(%esp)
45ec42:	3b da                	cmp    %edx,%ebx
45ec44:	8b c2                	mov    %edx,%eax
45ec46:	89 5c 24 20          	mov    %ebx,0x20(%esp)