45cb97:	84 c0                	test   %al,%al
45cb99:	75 11                	jne    0x45cbac
45cb9b:	6a 0f                	push   $0xf
45cb9d:	8b ce                	mov    %esi,%ecx
45cb9f:	e8 40 0a fb ff       	call   0x40d5e4
45cba4:	84 c0                	test   %al,%al
45cba6:	75 04                	jne    0x45cbac
45cba8:	33 c0                	xor    %eax,%eax
45cbaa:	5e                   	pop    %esi
45cbab:	c3                   	ret
45cbac:	33 c0                	xor    %eax,%eax
45cbae:	40                   	inc    %eax
45cbaf:	5e                   	pop    %esi
45cbb0:	c3                   	ret
45cbb1:	55                   	push   %ebp
45cbb2:	8b ec                	mov    %esp,%ebp
45cbb4:	56                   	push   %esi
45cbb5:	8b 75 0c             	mov    0xc(%ebp),%esi
45cbb8:	57                   	push   %edi
45cbb9:	8b f9                	mov    %ecx,%edi
45cbbb:	3b 77 04             	cmp    0x4(%edi),%esi
45cbbe:	76 03                	jbe    0x45cbc3
45cbc0:	8b 77 04             	mov    0x4(%edi),%esi
45cbc3:	8b 4d 08             	mov    0x8(%ebp),%ecx
45cbc6:	e8 2c 0c fb ff       	call   0x40d7f7
45cbcb:	8b 4d 08             	mov    0x8(%ebp),%ecx
45cbce:	56                   	push   %esi
45cbcf:	6a 00                	push   $0x0
45cbd1:	57                   	push   %edi
45cbd2:	e8 12 9e fa ff       	call   0x4069e9
45cbd7:	8b 45 08             	mov    0x8(%ebp),%eax
45cbda:	5f                   	pop    %edi
45cbdb:	5e                   	pop    %esi
45cbdc:	5d                   	pop    %ebp
45cbdd:	c2 08 00             	ret    $0x8
45cbe0:	56                   	push   %esi
45cbe1:	8b f1                	mov    %ecx,%esi
45cbe3:	57                   	push   %edi
45cbe4:	80 7e 09 00          	cmpb   $0x0,0x9(%esi)
45cbe8:	74 17                	je     0x45cc01
45cbea:	8b 4e 04             	mov    0x4(%esi),%ecx
45cbed:	8b 79 10             	mov    0x10(%ecx),%edi
45cbf0:	85 c9                	test   %ecx,%ecx
45cbf2:	74 06                	je     0x45cbfa
45cbf4:	51                   	push   %ecx
45cbf5:	e8 1c fa fb ff       	call   0x41c616
45cbfa:	89 7e 04             	mov    %edi,0x4(%esi)
45cbfd:	c6 46 09 00          	movb   $0x0,0x9(%esi)
45cc01:	80 7e 08 00          	cmpb   $0x0,0x8(%esi)
45cc05:	74 06                	je     0x45cc0d
45cc07:	c6 46 09 01          	movb   $0x1,0x9(%esi)
45cc0b:	eb 17                	jmp    0x45cc24
45cc0d:	8b 4e 04             	mov    0x4(%esi),%ecx
45cc10:	8b 79 10             	mov    0x10(%ecx),%edi
45cc13:	85 c9                	test   %ecx,%ecx
45cc15:	74 06                	je     0x45cc1d
45cc17:	51                   	push   %ecx
45cc18:	e8 f9 f9 fb ff       	call   0x41c616
45cc1d:	89 7e 04             	mov    %edi,0x4(%esi)
45cc20:	c6 46 09 00          	movb   $0x0,0x9(%esi)
45cc24:	ff 0e                	decl   (%esi)
45cc26:	5f                   	pop    %edi
45cc27:	5e                   	pop    %esi
45cc28:	c3                   	ret
45cc29:	55                   	push   %ebp
45cc2a:	8b ec                	mov    %esp,%ebp
45cc2c:	53                   	push   %ebx
45cc2d:	56                   	push   %esi
45cc2e:	8b f1                	mov    %ecx,%esi
45cc30:	6a 04                	push   $0x4
45cc32:	8b 46 0c             	mov    0xc(%esi),%eax
45cc35:	5b                   	pop    %ebx
45cc36:	39 46 08             	cmp    %eax,0x8(%esi)
45cc39:	75 4d                	jne    0x45cc88
45cc3b:	8d 0c 00             	lea    (%eax,%eax,1),%ecx
45cc3e:	6a 08                	push   $0x8
45cc40:	58                   	pop    %eax
45cc41:	3b c8                	cmp    %eax,%ecx
45cc43:	72 02                	jb     0x45cc47
45cc45:	8b c1                	mov    %ecx,%eax
45cc47:	33 c9                	xor    %ecx,%ecx
45cc49:	89 46 0c             	mov    %eax,0xc(%esi)
45cc4c:	f7 e3                	mul    %ebx
45cc4e:	0f 90 c1             	seto   %cl
45cc51:	57                   	push   %edi
45cc52:	f7 d9                	neg    %ecx
45cc54:	0b c8                	or     %eax,%ecx
45cc56:	51                   	push   %ecx
45cc57:	e8 19 22 fc ff       	call   0x41ee75
45cc5c:	83 7e 04 00          	cmpl   $0x0,0x4(%esi)
45cc60:	59                   	pop    %ecx
45cc61:	8b f8                	mov    %eax,%edi
45cc63:	74 1f                	je     0x45cc84
45cc65:	8b 46 08             	mov    0x8(%esi),%eax
45cc68:	85 c0                	test   %eax,%eax
45cc6a:	74 18                	je     0x45cc84
45cc6c:	c1 e0 02             	shl    $0x2,%eax
45cc6f:	50                   	push   %eax
45cc70:	ff 76 04             	push   0x4(%esi)
45cc73:	57                   	push   %edi
45cc74:	e8 07 22 fc ff       	call   0x41ee80
45cc79:	ff 76 04             	push   0x4(%esi)
45cc7c:	e8 5f 41 fc ff       	call   0x420de0
45cc81:	83 c4 10             	add    $0x10,%esp
45cc84:	89 7e 04             	mov    %edi,0x4(%esi)
45cc87:	5f                   	pop    %edi
45cc88:	53                   	push   %ebx
45cc89:	e8 5c 28 fc ff       	call   0x41f4ea
45cc8e:	8b d0                	mov    %eax,%edx
45cc90:	59                   	pop    %ecx
45cc91:	85 d2                	test   %edx,%edx
45cc93:	74 09                	je     0x45cc9e
45cc95:	8b 4d 08             	mov    0x8(%ebp),%ecx
45cc98:	8b 09                	mov    (%ecx),%ecx
45cc9a:	89 0a                	mov    %ecx,(%edx)
45cc9c:	eb 02                	jmp    0x45cca0
45cc9e:	33 d2                	xor    %edx,%edx
45cca0:	8b 4e 08             	mov    0x8(%esi),%ecx
45cca3:	8b 46 04             	mov    0x4(%esi),%eax
45cca6:	89 14 88             	mov    %edx,(%eax,%ecx,4)
45cca9:	ff 46 08             	incl   0x8(%esi)
45ccac:	5e                   	pop    %esi
45ccad:	5b                   	pop    %ebx
45ccae:	5d                   	pop    %ebp
45ccaf:	c2 04 00             	ret    $0x4
45ccb2:	55                   	push   %ebp
45ccb3:	8b ec                	mov    %esp,%ebp
45ccb5:	56                   	push   %esi
45ccb6:	ff 75 08             	push   0x8(%ebp)
45ccb9:	8d 71 04             	lea    0x4(%ecx),%esi
45ccbc:	8b ce                	mov    %esi,%ecx
45ccbe:	e8 96 66 fa ff       	call   0x403359
45ccc3:	8b c8                	mov    %eax,%ecx
45ccc5:	e8 e4 0f fb ff       	call   0x40dcae
45ccca:	8b ce                	mov    %esi,%ecx
45cccc:	e8 88 66 fa ff       	call   0x403359
45ccd1:	8a 4d 0c             	mov    0xc(%ebp),%cl
45ccd4:	88 48 10             	mov    %cl,0x10(%eax)
45ccd7:	5e                   	pop    %esi
45ccd8:	5d                   	pop    %ebp
45ccd9:	c2 08 00             	ret    $0x8
45ccdc:	55                   	push   %ebp
45ccdd:	8b ec                	mov    %esp,%ebp
45ccdf:	53                   	push   %ebx
45cce0:	8b 5d 08             	mov    0x8(%ebp),%ebx
45cce3:	56                   	push   %esi
45cce4:	8b f1                	mov    %ecx,%esi
45cce6:	57                   	push   %edi
45cce7:	c7 06 b4 dd 49 00    	movl   $0x49ddb4,(%esi)
45cced:	8b 43 08             	mov    0x8(%ebx),%eax
45ccf0:	89 46 08             	mov    %eax,0x8(%esi)
45ccf3:	85 c0                	test   %eax,%eax
45ccf5:	74 5a                	je     0x45cd51
45ccf7:	6a 08                	push   $0x8
45ccf9:	5a                   	pop    %edx
45ccfa:	3b c2                	cmp    %edx,%eax
45ccfc:	72 02                	jb     0x45cd00
45ccfe:	8b d0                	mov    %eax,%edx
45cd00:	89 56 0c             	mov    %edx,0xc(%esi)
45cd03:	33 c9                	xor    %ecx,%ecx
45cd05:	8b c2                	mov    %edx,%eax
45cd07:	6a 04                	push   $0x4
45cd09:	5a                   	pop    %edx
45cd0a:	f7 e2                	mul    %edx
45cd0c:	0f 90 c1             	seto   %cl
45cd0f:	f7 d9                	neg    %ecx
45cd11:	0b c8                	or     %eax,%ecx
45cd13:	51                   	push   %ecx
45cd14:	e8 d1 27 fc ff       	call   0x41f4ea
45cd19:	33 ff                	xor    %edi,%edi
45cd1b:	59                   	pop    %ecx
45cd1c:	89 46 04             	mov    %eax,0x4(%esi)
45cd1f:	39 7e 08             	cmp    %edi,0x8(%esi)
45cd22:	76 35                	jbe    0x45cd59
45cd24:	6a 0c                	push   $0xc
45cd26:	e8 bf 27 fc ff       	call   0x41f4ea
45cd2b:	59                   	pop    %ecx
45cd2c:	85 c0                	test   %eax,%eax
45cd2e:	74 11                	je     0x45cd41
45cd30:	8b 4b 04             	mov    0x4(%ebx),%ecx
45cd33:	ff 34 b9             	push   (%ecx,%edi,4)
45cd36:	8b c8                	mov    %eax,%ecx
45cd38:	e8 b4 cd fe ff       	call   0x449af1
45cd3d:	8b c8                	mov    %eax,%ecx
45cd3f:	eb 02                	jmp    0x45cd43
45cd41:	33 c9                	xor    %ecx,%ecx
45cd43:	8b 46 04             	mov    0x4(%esi),%eax
45cd46:	89 0c b8             	mov    %ecx,(%eax,%edi,4)
45cd49:	47                   	inc    %edi
45cd4a:	3b 7e 08             	cmp    0x8(%esi),%edi
45cd4d:	72 d5                	jb     0x45cd24
45cd4f:	eb 08                	jmp    0x45cd59
45cd51:	83 66 0c 00          	andl   $0x0,0xc(%esi)
45cd55:	83 66 04 00          	andl   $0x0,0x4(%esi)
45cd59:	5f                   	pop    %edi
45cd5a:	8b c6                	mov    %esi,%eax
45cd5c:	5e                   	pop    %esi
45cd5d:	5b                   	pop    %ebx
45cd5e:	5d                   	pop    %ebp
45cd5f:	c2 04 00             	ret    $0x4
45cd62:	55                   	push   %ebp
45cd63:	8b ec                	mov    %esp,%ebp
45cd65:	56                   	push   %esi
45cd66:	8b 75 08             	mov    0x8(%ebp),%esi
45cd69:	57                   	push   %edi
45cd6a:	8b 06                	mov    (%esi),%eax
45cd6c:	8b f9                	mov    %ecx,%edi
45cd6e:	89 07                	mov    %eax,(%edi)
45cd70:	8b 46 04             	mov    0x4(%esi),%eax
45cd73:	89 47 04             	mov    %eax,0x4(%edi)
45cd76:	8b 46 08             	mov    0x8(%esi),%eax
45cd79:	89 47 08             	mov    %eax,0x8(%edi)
45cd7c:	8b 46 0c             	mov    0xc(%esi),%eax
45cd7f:	89 47 0c             	mov    %eax,0xc(%edi)
45cd82:	8d 46 10             	lea    0x10(%esi),%eax
45cd85:	50                   	push   %eax
45cd86:	8d 4f 10             	lea    0x10(%edi),%ecx
45cd89:	e8 20 0f fb ff       	call   0x40dcae
45cd8e:	8d 46 20             	lea    0x20(%esi),%eax
45cd91:	50                   	push   %eax
45cd92:	8d 4f 20             	lea    0x20(%edi),%ecx
45cd95:	e8 14 0f fb ff       	call   0x40dcae
45cd9a:	8b c7                	mov    %edi,%eax
45cd9c:	5f                   	pop    %edi
45cd9d:	5e                   	pop    %esi
45cd9e:	5d                   	pop    %ebp
45cd9f:	c2 04 00             	ret    $0x4
45cda2:	55                   	push   %ebp
45cda3:	8b ec                	mov    %esp,%ebp
45cda5:	83 ec 24             	sub    $0x24,%esp
45cda8:	53                   	push   %ebx
45cda9:	56                   	push   %esi
45cdaa:	33 db                	xor    %ebx,%ebx
45cdac:	57                   	push   %edi
45cdad:	8b 7d 08             	mov    0x8(%ebp),%edi
45cdb0:	43                   	inc    %ebx
45cdb1:	39 5f 08             	cmp    %ebx,0x8(%edi)
45cdb4:	0f 85 06 01 00 00    	jne    0x45cec0
45cdba:	8b 47 04             	mov    0x4(%edi),%eax
45cdbd:	6a 06                	push   $0x6
45cdbf:	8b 30                	mov    (%eax),%esi
45cdc1:	8b ce                	mov    %esi,%ecx
45cdc3:	e8 1c 08 fb ff       	call   0x40d5e4
45cdc8:	84 c0                	test   %al,%al
45cdca:	74 0c                	je     0x45cdd8
45cdcc:	83 7e 0c 06          	cmpl   $0x6,0xc(%esi)
45cdd0:	75 04                	jne    0x45cdd6
45cdd2:	8b 36                	mov    (%esi),%esi
45cdd4:	eb 02                	jmp    0x45cdd8
45cdd6:	33 f6                	xor    %esi,%esi
45cdd8:	83 65 e8 00          	andl   $0x0,-0x18(%ebp)
45cddc:	56                   	push   %esi
45cddd:	8d 4d e0             	lea    -0x20(%ebp),%ecx
45cde0:	e8 3b 49 fb ff       	call   0x411720
45cde5:	6a 05                	push   $0x5
45cde7:	8d 4d e0             	lea    -0x20(%ebp),%ecx
45cdea:	e8 f5 07 fb ff       	call   0x40d5e4
45cdef:	84 c0                	test   %al,%al
45cdf1:	0f 84 c1 00 00 00    	je     0x45ceb8
45cdf7:	6a 00                	push   $0x0
45cdf9:	8d 4d e0             	lea    -0x20(%ebp),%ecx
45cdfc:	e8 1e f2 fb ff       	call   0x41c01f
45ce01:	3b c3                	cmp    %ebx,%eax
45ce03:	0f 85 af 00 00 00    	jne    0x45ceb8
45ce09:	6a 00                	push   $0x0
45ce0b:	53                   	push   %ebx
45ce0c:	8d 45 e0             	lea    -0x20(%ebp),%eax
45ce0f:	53                   	push   %ebx
45ce10:	50                   	push   %eax
45ce11:	e8 7a 4d fb ff       	call   0x411b90
45ce16:	8b f0                	mov    %eax,%esi
45ce18:	83 c4 10             	add    $0x10,%esp
45ce1b:	8b ce                	mov    %esi,%ecx
45ce1d:	e8 4a c5 fa ff       	call   0x40936c
45ce22:	8b 4e 08             	mov    0x8(%esi),%ecx
45ce25:	8b 01                	mov    (%ecx),%eax
45ce27:	89 45 f0             	mov    %eax,-0x10(%ebp)
45ce2a:	8b 41 04             	mov    0x4(%ecx),%eax
45ce2d:	89 45 f4             	mov    %eax,-0xc(%ebp)
45ce30:	8b 41 08             	mov    0x8(%ecx),%eax
45ce33:	89 45 f8             	mov    %eax,-0x8(%ebp)
45ce36:	8b 41 0c             	mov    0xc(%ecx),%eax
45ce39:	8d 4d f0             	lea    -0x10(%ebp),%ecx
45ce3c:	ff 00                	incl   (%eax)
45ce3e:	89 45 fc             	mov    %eax,-0x4(%ebp)
45ce41:	e8 b4 ef fa ff       	call   0x40bdfa
45ce46:	ff 75 f4             	push   -0xc(%ebp)
45ce49:	ff 75 f0             	push   -0x10(%ebp)
45ce4c:	ff 15 60 d6 48 00    	call   *0x48d660
45ce52:	ba c4 40 4b 00       	mov    $0x4b40c4,%edx
45ce57:	8d 4d f0             	lea    -0x10(%ebp),%ecx
45ce5a:	e8 d0 1d fc ff       	call   0x41ec2f
45ce5f:	84 c0                	test   %al,%al
45ce61:	74 4d                	je     0x45ceb0
45ce63:	8b cf                	mov    %edi,%ecx
45ce65:	e8 0b 33 fe ff       	call   0x440175
45ce6a:	8b f3                	mov    %ebx,%esi
45ce6c:	53                   	push   %ebx
45ce6d:	8d 4d e0             	lea    -0x20(%ebp),%ecx
45ce70:	e8 aa f1 fb ff       	call   0x41c01f
45ce75:	3b f0                	cmp    %eax,%esi
45ce77:	7d 1b                	jge    0x45ce94
45ce79:	56                   	push   %esi
45ce7a:	53                   	push   %ebx
45ce7b:	8d 45 e0             	lea    -0x20(%ebp),%eax
45ce7e:	6a 00                	push   $0x0
45ce80:	50                   	push   %eax
45ce81:	e8 0a 4d fb ff       	call   0x411b90
45ce86:	83 c4 10             	add    $0x10,%esp
45ce89:	8b cf                	mov    %edi,%ecx
45ce8b:	50                   	push   %eax
45ce8c:	e8 45 f4 fb ff       	call   0x41c2d6
45ce91:	46                   	inc    %esi
45ce92:	eb d8                	jmp    0x45ce6c
45ce94:	8b 4f 08             	mov    0x8(%edi),%ecx
45ce97:	8b 45 0c             	mov    0xc(%ebp),%eax
45ce9a:	89 08                	mov    %ecx,(%eax)
45ce9c:	8d 4d f0             	lea    -0x10(%ebp),%ecx
45ce9f:	e8 93 fc fa ff       	call   0x40cb37
45cea4:	8d 4d e0             	lea    -0x20(%ebp),%ecx
45cea7:	e8 74 5d fb ff       	call   0x412c20
45ceac:	33 c0                	xor    %eax,%eax
45ceae:	eb 13                	jmp    0x45cec3
45ceb0:	8d 4d f0             	lea    -0x10(%ebp),%ecx
45ceb3:	e8 7f fc fa ff       	call   0x40cb37
45ceb8:	8d 4d e0             	lea    -0x20(%ebp),%ecx
45cebb:	e8 60 5d fb ff       	call   0x412c20
45cec0:	83 c8 ff             	or     $0xffffffff,%eax
45cec3:	5f                   	pop    %edi
45cec4:	5e                   	pop    %esi
45cec5:	5b                   	pop    %ebx
45cec6:	c9                   	leave
45cec7:	c2 08 00             	ret    $0x8
45ceca:	55                   	push   %ebp
45cecb:	8b ec                	mov    %esp,%ebp
45cecd:	81 ec 68 01 00 00    	sub    $0x168,%esp
45ced3:	53                   	push   %ebx
45ced4:	33 d2                	xor    %edx,%edx
45ced6:	56                   	push   %esi
45ced7:	8b 75 0c             	mov    0xc(%ebp),%esi
45ceda:	8b c2                	mov    %edx,%eax
45cedc:	ff 06                	incl   (%esi)
45cede:	57                   	push   %edi
45cedf:	8b 7d 08             	mov    0x8(%ebp),%edi
45cee2:	8b d9                	mov    %ecx,%ebx
45cee4:	8b 0e                	mov    (%esi),%ecx
45cee6:	89 45 e8             	mov    %eax,-0x18(%ebp)
45cee9:	89 45 e0             	mov    %eax,-0x20(%ebp)
45ceec:	8b 47 04             	mov    0x4(%edi),%eax
45ceef:	89 55 cc             	mov    %edx,-0x34(%ebp)