45ccc3:	c2 04 00             	ret    $0x4
45ccc6:	56                   	push   %esi
45ccc7:	8b f1                	mov    %ecx,%esi
45ccc9:	57                   	push   %edi
45ccca:	33 ff                	xor    %edi,%edi
45cccc:	39 7e 08             	cmp    %edi,0x8(%esi)
45cccf:	76 2f                	jbe    0x45cd00
45ccd1:	53                   	push   %ebx
45ccd2:	8b 46 04             	mov    0x4(%esi),%eax
45ccd5:	8b 1c b8             	mov    (%eax,%edi,4),%ebx
45ccd8:	85 db                	test   %ebx,%ebx
45ccda:	74 16                	je     0x45ccf2
45ccdc:	53                   	push   %ebx
45ccdd:	ff 15 5c f4 48 00    	call   *0x48f45c
45cce3:	83 63 08 00          	andl   $0x0,0x8(%ebx)
45cce7:	83 63 0c 00          	andl   $0x0,0xc(%ebx)
45cceb:	53                   	push   %ebx
45ccec:	e8 7b 43 fc ff       	call   0x42106c
45ccf1:	59                   	pop    %ecx
45ccf2:	8b 46 04             	mov    0x4(%esi),%eax
45ccf5:	83 24 b8 00          	andl   $0x0,(%eax,%edi,4)
45ccf9:	47                   	inc    %edi
45ccfa:	3b 7e 08             	cmp    0x8(%esi),%edi
45ccfd:	72 d3                	jb     0x45ccd2
45ccff:	5b                   	pop    %ebx
45cd00:	83 66 08 00          	andl   $0x0,0x8(%esi)
45cd04:	5f                   	pop    %edi
45cd05:	5e                   	pop    %esi
45cd06:	c3                   	ret
45cd07:	55                   	push   %ebp
45cd08:	8b ec                	mov    %esp,%ebp
45cd0a:	56                   	push   %esi
45cd0b:	8b f1                	mov    %ecx,%esi
45cd0d:	57                   	push   %edi
45cd0e:	8b 46 0c             	mov    0xc(%esi),%eax
45cd11:	39 46 08             	cmp    %eax,0x8(%esi)
45cd14:	75 4e                	jne    0x45cd64
45cd16:	8d 0c 00             	lea    (%eax,%eax,1),%ecx
45cd19:	6a 08                	push   $0x8
45cd1b:	58                   	pop    %eax
45cd1c:	3b c8                	cmp    %eax,%ecx
45cd1e:	72 02                	jb     0x45cd22
45cd20:	8b c1                	mov    %ecx,%eax
45cd22:	33 c9                	xor    %ecx,%ecx
45cd24:	89 46 0c             	mov    %eax,0xc(%esi)
45cd27:	6a 04                	push   $0x4
45cd29:	5a                   	pop    %edx
45cd2a:	f7 e2                	mul    %edx
45cd2c:	0f 90 c1             	seto   %cl
45cd2f:	f7 d9                	neg    %ecx
45cd31:	0b c8                	or     %eax,%ecx
45cd33:	51                   	push   %ecx
45cd34:	e8 bd 42 fc ff       	call   0x420ff6
45cd39:	83 7e 04 00          	cmpl   $0x0,0x4(%esi)
45cd3d:	8b f8                	mov    %eax,%edi
45cd3f:	59                   	pop    %ecx
45cd40:	74 1f                	je     0x45cd61
45cd42:	8b 46 08             	mov    0x8(%esi),%eax
45cd45:	85 c0                	test   %eax,%eax
45cd47:	74 18                	je     0x45cd61
45cd49:	c1 e0 02             	shl    $0x2,%eax
45cd4c:	50                   	push   %eax
45cd4d:	ff 76 04             	push   0x4(%esi)
45cd50:	57                   	push   %edi
45cd51:	e8 2a 43 fc ff       	call   0x421080
45cd56:	ff 76 04             	push   0x4(%esi)
45cd59:	e8 0e 43 fc ff       	call   0x42106c
45cd5e:	83 c4 10             	add    $0x10,%esp
45cd61:	89 7e 04             	mov    %edi,0x4(%esi)
45cd64:	6a 10                	push   $0x10
45cd66:	e8 8b 42 fc ff       	call   0x420ff6
45cd6b:	8b f8                	mov    %eax,%edi
45cd6d:	59                   	pop    %ecx
45cd6e:	85 ff                	test   %edi,%edi
45cd70:	74 13                	je     0x45cd85
45cd72:	57                   	push   %edi
45cd73:	ff 15 7c f4 48 00    	call   *0x48f47c
45cd79:	ff 75 08             	push   0x8(%ebp)
45cd7c:	57                   	push   %edi
45cd7d:	ff 15 58 f4 48 00    	call   *0x48f458
45cd83:	eb 02                	jmp    0x45cd87
45cd85:	33 ff                	xor    %edi,%edi
45cd87:	8b 4e 08             	mov    0x8(%esi),%ecx
45cd8a:	8b 46 04             	mov    0x4(%esi),%eax
45cd8d:	89 3c 88             	mov    %edi,(%eax,%ecx,4)
45cd90:	ff 46 08             	incl   0x8(%esi)
45cd93:	5f                   	pop    %edi
45cd94:	5e                   	pop    %esi
45cd95:	5d                   	pop    %ebp
45cd96:	c2 04 00             	ret    $0x4
45cd99:	55                   	push   %ebp
45cd9a:	8b ec                	mov    %esp,%ebp
45cd9c:	51                   	push   %ecx
45cd9d:	53                   	push   %ebx
45cd9e:	56                   	push   %esi
45cd9f:	8b f1                	mov    %ecx,%esi
45cda1:	8b 4d 0c             	mov    0xc(%ebp),%ecx
45cda4:	57                   	push   %edi
45cda5:	ff 75 08             	push   0x8(%ebp)
45cda8:	33 ff                	xor    %edi,%edi
45cdaa:	c7 06 58 9a 4b 00    	movl   $0x4b9a58,(%esi)
45cdb0:	8d 5e 20             	lea    0x20(%esi),%ebx
45cdb3:	89 7e 04             	mov    %edi,0x4(%esi)
45cdb6:	89 7e 08             	mov    %edi,0x8(%esi)
45cdb9:	89 7e 0c             	mov    %edi,0xc(%esi)
45cdbc:	89 3b                	mov    %edi,(%ebx)
45cdbe:	c7 46 24 01 00 00 00 	movl   $0x1,0x24(%esi)
45cdc5:	8b 01                	mov    (%ecx),%eax
45cdc7:	89 46 28             	mov    %eax,0x28(%esi)
45cdca:	8b 41 04             	mov    0x4(%ecx),%eax
45cdcd:	89 46 2c             	mov    %eax,0x2c(%esi)
45cdd0:	8b 41 08             	mov    0x8(%ecx),%eax
45cdd3:	89 46 30             	mov    %eax,0x30(%esi)
45cdd6:	8b 41 0c             	mov    0xc(%ecx),%eax
45cdd9:	8d 4e 40             	lea    0x40(%esi),%ecx
45cddc:	89 46 34             	mov    %eax,0x34(%esi)
45cddf:	ff 00                	incl   (%eax)
45cde1:	8b 45 18             	mov    0x18(%ebp),%eax
45cde4:	89 46 38             	mov    %eax,0x38(%esi)
45cde7:	8b 45 14             	mov    0x14(%ebp),%eax
45cdea:	89 46 3c             	mov    %eax,0x3c(%esi)
45cded:	89 7e 48             	mov    %edi,0x48(%esi)
45cdf0:	e8 cb cc fa ff       	call   0x409ac0
45cdf5:	83 7e 4c 08          	cmpl   $0x8,0x4c(%esi)
45cdf9:	75 03                	jne    0x45cdfe
45cdfb:	8b 7e 40             	mov    0x40(%esi),%edi
45cdfe:	8b 7f 08             	mov    0x8(%edi),%edi
45ce01:	85 ff                	test   %edi,%edi
45ce03:	74 6d                	je     0x45ce72
45ce05:	8b 07                	mov    (%edi),%eax
45ce07:	8d 4d fc             	lea    -0x4(%ebp),%ecx
45ce0a:	51                   	push   %ecx
45ce0b:	68 6c 2c 49 00       	push   $0x492c6c
45ce10:	57                   	push   %edi
45ce11:	ff 10                	call   *(%eax)
45ce13:	85 c0                	test   %eax,%eax
45ce15:	78 56                	js     0x45ce6d
45ce17:	8b 55 10             	mov    0x10(%ebp),%edx
45ce1a:	8d 46 10             	lea    0x10(%esi),%eax
45ce1d:	50                   	push   %eax
45ce1e:	8d 46 0c             	lea    0xc(%esi),%eax
45ce21:	8b cf                	mov    %edi,%ecx
45ce23:	50                   	push   %eax
45ce24:	e8 7c b0 ff ff       	call   0x457ea5
45ce29:	59                   	pop    %ecx
45ce2a:	59                   	pop    %ecx
45ce2b:	85 c0                	test   %eax,%eax
45ce2d:	78 30                	js     0x45ce5f
45ce2f:	8b 46 0c             	mov    0xc(%esi),%eax
45ce32:	50                   	push   %eax
45ce33:	8b 08                	mov    (%eax),%ecx
45ce35:	ff 51 04             	call   *0x4(%ecx)
45ce38:	8b 45 fc             	mov    -0x4(%ebp),%eax
45ce3b:	8d 56 10             	lea    0x10(%esi),%edx
45ce3e:	53                   	push   %ebx
45ce3f:	52                   	push   %edx
45ce40:	50                   	push   %eax
45ce41:	8b 08                	mov    (%eax),%ecx
45ce43:	ff 51 10             	call   *0x10(%ecx)
45ce46:	85 c0                	test   %eax,%eax
45ce48:	78 15                	js     0x45ce5f
45ce4a:	8b 03                	mov    (%ebx),%eax
45ce4c:	50                   	push   %eax
45ce4d:	8b 08                	mov    (%eax),%ecx
45ce4f:	ff 51 04             	call   *0x4(%ecx)
45ce52:	8b 03                	mov    (%ebx),%eax
45ce54:	8d 56 08             	lea    0x8(%esi),%edx
45ce57:	52                   	push   %edx
45ce58:	56                   	push   %esi
45ce59:	50                   	push   %eax
45ce5a:	8b 08                	mov    (%eax),%ecx
45ce5c:	ff 51 14             	call   *0x14(%ecx)
45ce5f:	89 46 04             	mov    %eax,0x4(%esi)
45ce62:	8b 45 fc             	mov    -0x4(%ebp),%eax
45ce65:	50                   	push   %eax
45ce66:	8b 08                	mov    (%eax),%ecx
45ce68:	ff 51 08             	call   *0x8(%ecx)
45ce6b:	eb 0c                	jmp    0x45ce79
45ce6d:	89 46 04             	mov    %eax,0x4(%esi)
45ce70:	eb 07                	jmp    0x45ce79
45ce72:	c7 46 04 03 40 00 80 	movl   $0x80004003,0x4(%esi)
45ce79:	5f                   	pop    %edi
45ce7a:	8b c6                	mov    %esi,%eax
45ce7c:	5e                   	pop    %esi
45ce7d:	5b                   	pop    %ebx
45ce7e:	8b e5                	mov    %ebp,%esp
45ce80:	5d                   	pop    %ebp
45ce81:	c2 14 00             	ret    $0x14
45ce84:	55                   	push   %ebp
45ce85:	8b ec                	mov    %esp,%ebp
45ce87:	53                   	push   %ebx
45ce88:	8b 5d 08             	mov    0x8(%ebp),%ebx
45ce8b:	56                   	push   %esi
45ce8c:	8b f1                	mov    %ecx,%esi
45ce8e:	3b f3                	cmp    %ebx,%esi
45ce90:	0f 84 85 00 00 00    	je     0x45cf1b
45ce96:	57                   	push   %edi
45ce97:	e8 9a 97 ff ff       	call   0x456636
45ce9c:	8b 43 08             	mov    0x8(%ebx),%eax
45ce9f:	39 46 0c             	cmp    %eax,0xc(%esi)
45cea2:	73 37                	jae    0x45cedb
45cea4:	6a 08                	push   $0x8
45cea6:	5a                   	pop    %edx
45cea7:	3b c2                	cmp    %edx,%eax
45cea9:	72 02                	jb     0x45cead
45ceab:	8b d0                	mov    %eax,%edx
45cead:	89 56 0c             	mov    %edx,0xc(%esi)
45ceb0:	33 c9                	xor    %ecx,%ecx
45ceb2:	8b c2                	mov    %edx,%eax
45ceb4:	6a 04                	push   $0x4
45ceb6:	5a                   	pop    %edx
45ceb7:	f7 e2                	mul    %edx
45ceb9:	0f 90 c1             	seto   %cl
45cebc:	f7 d9                	neg    %ecx
45cebe:	0b c8                	or     %eax,%ecx
45cec0:	51                   	push   %ecx
45cec1:	e8 30 41 fc ff       	call   0x420ff6
45cec6:	83 7e 04 00          	cmpl   $0x0,0x4(%esi)
45ceca:	8b f8                	mov    %eax,%edi
45cecc:	59                   	pop    %ecx
45cecd:	74 09                	je     0x45ced8
45cecf:	ff 76 04             	push   0x4(%esi)
45ced2:	e8 95 41 fc ff       	call   0x42106c
45ced7:	59                   	pop    %ecx
45ced8:	89 7e 04             	mov    %edi,0x4(%esi)
45cedb:	8b 43 08             	mov    0x8(%ebx),%eax
45cede:	33 db                	xor    %ebx,%ebx
45cee0:	89 46 08             	mov    %eax,0x8(%esi)
45cee3:	85 c0                	test   %eax,%eax
45cee5:	74 33                	je     0x45cf1a
45cee7:	6a 10                	push   $0x10
45cee9:	e8 08 41 fc ff       	call   0x420ff6
45ceee:	8b f8                	mov    %eax,%edi
45cef0:	59                   	pop    %ecx
45cef1:	85 ff                	test   %edi,%edi
45cef3:	74 17                	je     0x45cf0c
45cef5:	8b 45 08             	mov    0x8(%ebp),%eax
45cef8:	8b 48 04             	mov    0x4(%eax),%ecx
45cefb:	8b 0c 99             	mov    (%ecx,%ebx,4),%ecx
45cefe:	83 67 08 00          	andl   $0x0,0x8(%edi)
45cf02:	51                   	push   %ecx
45cf03:	8b cf                	mov    %edi,%ecx
45cf05:	e8 b6 cb fa ff       	call   0x409ac0
45cf0a:	eb 02                	jmp    0x45cf0e
45cf0c:	33 ff                	xor    %edi,%edi
45cf0e:	8b 46 04             	mov    0x4(%esi),%eax
45cf11:	89 3c 98             	mov    %edi,(%eax,%ebx,4)
45cf14:	43                   	inc    %ebx
45cf15:	3b 5e 08             	cmp    0x8(%esi),%ebx
45cf18:	72 cd                	jb     0x45cee7
45cf1a:	5f                   	pop    %edi
45cf1b:	8b c6                	mov    %esi,%eax
45cf1d:	5e                   	pop    %esi
45cf1e:	5b                   	pop    %ebx
45cf1f:	5d                   	pop    %ebp
45cf20:	c2 04 00             	ret    $0x4
45cf23:	56                   	push   %esi
45cf24:	8b f1                	mov    %ecx,%esi
45cf26:	e8 c9 97 ff ff       	call   0x4566f4
45cf2b:	56                   	push   %esi
45cf2c:	e8 3b 41 fc ff       	call   0x42106c
45cf31:	59                   	pop    %ecx
45cf32:	8b c6                	mov    %esi,%eax
45cf34:	5e                   	pop    %esi
45cf35:	c2 04 00             	ret    $0x4
45cf38:	55                   	push   %ebp
45cf39:	8b ec                	mov    %esp,%ebp
45cf3b:	56                   	push   %esi
45cf3c:	8b f1                	mov    %ecx,%esi
45cf3e:	e8 b1 97 ff ff       	call   0x4566f4
45cf43:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
45cf47:	74 07                	je     0x45cf50
45cf49:	56                   	push   %esi
45cf4a:	e8 1d 41 fc ff       	call   0x42106c
45cf4f:	59                   	pop    %ecx
45cf50:	8b c6                	mov    %esi,%eax
45cf52:	5e                   	pop    %esi
45cf53:	5d                   	pop    %ebp
45cf54:	c2 04 00             	ret    $0x4
45cf57:	56                   	push   %esi
45cf58:	8b f1                	mov    %ecx,%esi
45cf5a:	57                   	push   %edi
45cf5b:	c7 06 58 9a 4b 00    	movl   $0x4b9a58,(%esi)
45cf61:	e8 f7 08 00 00       	call   0x45d85d
45cf66:	8b 4e 0c             	mov    0xc(%esi),%ecx
45cf69:	85 c9                	test   %ecx,%ecx
45cf6b:	74 06                	je     0x45cf73
45cf6d:	8b 01                	mov    (%ecx),%eax
45cf6f:	51                   	push   %ecx
45cf70:	ff 50 08             	call   *0x8(%eax)
45cf73:	8b 4e 48             	mov    0x48(%esi),%ecx
45cf76:	85 c9                	test   %ecx,%ecx
45cf78:	74 0a                	je     0x45cf84
45cf7a:	51                   	push   %ecx
45cf7b:	e8 bd ab fa ff       	call   0x407b3d
45cf80:	83 66 48 00          	andl   $0x0,0x48(%esi)
45cf84:	8b 46 4c             	mov    0x4c(%esi),%eax
45cf87:	83 f8 0b             	cmp    $0xb,%eax
45cf8a:	7f 69                	jg     0x45cff5
45cf8c:	74 51                	je     0x45cfdf
45cf8e:	83 e8 05             	sub    $0x5,%eax
45cf91:	74 3d                	je     0x45cfd0
45cf93:	83 e8 03             	sub    $0x3,%eax
45cf96:	74 1e                	je     0x45cfb6
45cf98:	48                   	dec    %eax
45cf99:	48                   	dec    %eax
45cf9a:	0f 85 8d 00 00 00    	jne    0x45d02d
45cfa0:	8b 7e 40             	mov    0x40(%esi),%edi
45cfa3:	85 ff                	test   %edi,%edi
45cfa5:	0f 84 82 00 00 00    	je     0x45d02d
45cfab:	8d 4f 08             	lea    0x8(%edi),%ecx
45cfae:	e8 b1 8a fa ff       	call   0x405a64
45cfb3:	57                   	push   %edi
45cfb4:	eb 12                	jmp    0x45cfc8
45cfb6:	83 7e 40 00          	cmpl   $0x0,0x40(%esi)
45cfba:	74 71                	je     0x45d02d
45cfbc:	ff 76 40             	push   0x40(%esi)
45cfbf:	ff 15 5c f4 48 00    	call   *0x48f45c
45cfc5:	ff 76 40             	push   0x40(%esi)
45cfc8:	e8 9f 40 fc ff       	call   0x42106c
45cfcd:	59                   	pop    %ecx
45cfce:	eb 5d                	jmp    0x45d02d
45cfd0:	8b 4e 40             	mov    0x40(%esi),%ecx
45cfd3:	85 c9                	test   %ecx,%ecx
45cfd5:	74 56                	je     0x45d02d
45cfd7:	51                   	push   %ecx
45cfd8:	e8 57 be fa ff       	call   0x408e34
45cfdd:	eb 4e                	jmp    0x45d02d
45cfdf:	8b 46 40             	mov    0x40(%esi),%eax
45cfe2:	ff 70 04             	push   0x4(%eax)
45cfe5:	e8 82 40 fc ff       	call   0x42106c
45cfea:	ff 76 40             	push   0x40(%esi)
45cfed:	e8 7a 40 fc ff       	call   0x42106c
45cff2:	59                   	pop    %ecx
45cff3:	eb d8                	jmp    0x45cfcd
45cff5:	83 f8 0c             	cmp    $0xc,%eax
45cff8:	74 26                	je     0x45d020
45cffa:	7e 31                	jle    0x45d02d
45cffc:	83 f8 0e             	cmp    $0xe,%eax
45cfff:	7e 14                	jle    0x45d015
45d001:	83 f8 0f             	cmp    $0xf,%eax
45d004:	75 27                	jne    0x45d02d
45d006:	8b 4e 40             	mov    0x40(%esi),%ecx
45d009:	85 c9                	test   %ecx,%ecx
45d00b:	74 20                	je     0x45d02d
45d00d:	51                   	push   %ecx
45d00e:	e8 f2 a3 ff ff       	call   0x457405
45d013:	eb 18                	jmp    0x45d02d
45d015:	8b 7e 40             	mov    0x40(%esi),%edi
45d018:	85 ff                	test   %edi,%edi