40eccf:	83 c0 14             	add    $0x14,%eax
40ecd2:	c3                   	ret
40ecd3:	e8 88 fc ff ff       	call   0x40e960
40ecd8:	85 c0                	test   %eax,%eax
40ecda:	75 06                	jne    0x40ece2
40ecdc:	b8 54 60 42 00       	mov    $0x426054,%eax
40ece1:	c3                   	ret
40ece2:	83 c0 10             	add    $0x10,%eax
40ece5:	c3                   	ret
40ece6:	8b ff                	mov    %edi,%edi
40ece8:	55                   	push   %ebp
40ece9:	8b ec                	mov    %esp,%ebp
40eceb:	56                   	push   %esi
40ecec:	8b 75 08             	mov    0x8(%ebp),%esi
40ecef:	85 f6                	test   %esi,%esi
40ecf1:	74 0c                	je     0x40ecff
40ecf3:	6a e0                	push   $0xffffffe0
40ecf5:	33 d2                	xor    %edx,%edx
40ecf7:	58                   	pop    %eax
40ecf8:	f7 f6                	div    %esi
40ecfa:	3b 45 0c             	cmp    0xc(%ebp),%eax
40ecfd:	72 34                	jb     0x40ed33
40ecff:	0f af 75 0c          	imul   0xc(%ebp),%esi
40ed03:	85 f6                	test   %esi,%esi
40ed05:	75 17                	jne    0x40ed1e
40ed07:	46                   	inc    %esi
40ed08:	eb 14                	jmp    0x40ed1e
40ed0a:	e8 da cf ff ff       	call   0x40bce9
40ed0f:	85 c0                	test   %eax,%eax
40ed11:	74 20                	je     0x40ed33
40ed13:	56                   	push   %esi
40ed14:	e8 39 2a 00 00       	call   0x411752
40ed19:	59                   	pop    %ecx
40ed1a:	85 c0                	test   %eax,%eax
40ed1c:	74 15                	je     0x40ed33
40ed1e:	56                   	push   %esi
40ed1f:	6a 08                	push   $0x8
40ed21:	ff 35 00 73 42 00    	push   0x427300
40ed27:	ff 15 94 c0 41 00    	call   *0x41c094
40ed2d:	85 c0                	test   %eax,%eax
40ed2f:	74 d9                	je     0x40ed0a
40ed31:	eb 0d                	jmp    0x40ed40
40ed33:	e8 9b ff ff ff       	call   0x40ecd3
40ed38:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
40ed3e:	33 c0                	xor    %eax,%eax
40ed40:	5e                   	pop    %esi
40ed41:	5d                   	pop    %ebp
40ed42:	c3                   	ret
40ed43:	8b ff                	mov    %edi,%edi
40ed45:	55                   	push   %ebp
40ed46:	8b ec                	mov    %esp,%ebp
40ed48:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
40ed4c:	74 2d                	je     0x40ed7b
40ed4e:	ff 75 08             	push   0x8(%ebp)
40ed51:	6a 00                	push   $0x0
40ed53:	ff 35 00 73 42 00    	push   0x427300
40ed59:	ff 15 98 c0 41 00    	call   *0x41c098
40ed5f:	85 c0                	test   %eax,%eax
40ed61:	75 18                	jne    0x40ed7b
40ed63:	56                   	push   %esi
40ed64:	e8 6a ff ff ff       	call   0x40ecd3
40ed69:	8b f0                	mov    %eax,%esi
40ed6b:	ff 15 48 c1 41 00    	call   *0x41c148
40ed71:	50                   	push   %eax
40ed72:	e8 e3 fe ff ff       	call   0x40ec5a
40ed77:	59                   	pop    %ecx
40ed78:	89 06                	mov    %eax,(%esi)
40ed7a:	5e                   	pop    %esi
40ed7b:	5d                   	pop    %ebp
40ed7c:	c3                   	ret
40ed7d:	cc                   	int3
40ed7e:	cc                   	int3
40ed7f:	cc                   	int3
40ed80:	8b ff                	mov    %edi,%edi
40ed82:	55                   	push   %ebp
40ed83:	8b ec                	mov    %esp,%ebp
40ed85:	8b 45 0c             	mov    0xc(%ebp),%eax
40ed88:	3b 45 08             	cmp    0x8(%ebp),%eax
40ed8b:	76 05                	jbe    0x40ed92
40ed8d:	83 c8 ff             	or     $0xffffffff,%eax
40ed90:	5d                   	pop    %ebp
40ed91:	c3                   	ret
40ed92:	1b c0                	sbb    %eax,%eax
40ed94:	f7 d8                	neg    %eax
40ed96:	5d                   	pop    %ebp
40ed97:	c3                   	ret
40ed98:	8b ff                	mov    %edi,%edi
40ed9a:	55                   	push   %ebp
40ed9b:	8b ec                	mov    %esp,%ebp
40ed9d:	56                   	push   %esi
40ed9e:	8b 75 08             	mov    0x8(%ebp),%esi
40eda1:	57                   	push   %edi
40eda2:	85 f6                	test   %esi,%esi
40eda4:	75 1a                	jne    0x40edc0
40eda6:	8b 75 0c             	mov    0xc(%ebp),%esi
40eda9:	8b ce                	mov    %esi,%ecx
40edab:	e8 bc 06 00 00       	call   0x40f46c
40edb0:	33 ff                	xor    %edi,%edi
40edb2:	89 7e 08             	mov    %edi,0x8(%esi)
40edb5:	89 7e 0c             	mov    %edi,0xc(%esi)
40edb8:	89 7e 10             	mov    %edi,0x10(%esi)
40edbb:	e9 84 00 00 00       	jmp    0x40ee44
40edc0:	33 ff                	xor    %edi,%edi
40edc2:	80 3e 00             	cmpb   $0x0,(%esi)
40edc5:	75 1f                	jne    0x40ede6
40edc7:	8b 75 0c             	mov    0xc(%ebp),%esi
40edca:	39 7e 0c             	cmp    %edi,0xc(%esi)
40edcd:	75 0d                	jne    0x40eddc
40edcf:	6a 01                	push   $0x1
40edd1:	8b ce                	mov    %esi,%ecx
40edd3:	e8 ea 06 00 00       	call   0x40f4c2
40edd8:	85 c0                	test   %eax,%eax
40edda:	75 6a                	jne    0x40ee46
40eddc:	8b 46 08             	mov    0x8(%esi),%eax
40eddf:	33 c9                	xor    %ecx,%ecx
40ede1:	66 89 08             	mov    %cx,(%eax)
40ede4:	eb d2                	jmp    0x40edb8
40ede6:	57                   	push   %edi
40ede7:	57                   	push   %edi
40ede8:	6a ff                	push   $0xffffffff
40edea:	56                   	push   %esi
40edeb:	6a 09                	push   $0x9
40eded:	ff 75 14             	push   0x14(%ebp)
40edf0:	e8 d4 11 00 00       	call   0x40ffc9
40edf5:	83 c4 18             	add    $0x18,%esp
40edf8:	85 c0                	test   %eax,%eax
40edfa:	75 16                	jne    0x40ee12
40edfc:	ff 15 48 c1 41 00    	call   *0x41c148
40ee02:	50                   	push   %eax
40ee03:	e8 95 fe ff ff       	call   0x40ec9d
40ee08:	59                   	pop    %ecx
40ee09:	e8 c5 fe ff ff       	call   0x40ecd3
40ee0e:	8b 00                	mov    (%eax),%eax
40ee10:	eb 34                	jmp    0x40ee46
40ee12:	8b 7d 0c             	mov    0xc(%ebp),%edi
40ee15:	3b 47 0c             	cmp    0xc(%edi),%eax
40ee18:	76 0c                	jbe    0x40ee26
40ee1a:	50                   	push   %eax
40ee1b:	8b cf                	mov    %edi,%ecx
40ee1d:	e8 a0 06 00 00       	call   0x40f4c2
40ee22:	85 c0                	test   %eax,%eax
40ee24:	75 20                	jne    0x40ee46
40ee26:	ff 77 0c             	push   0xc(%edi)
40ee29:	ff 77 08             	push   0x8(%edi)
40ee2c:	6a ff                	push   $0xffffffff
40ee2e:	56                   	push   %esi
40ee2f:	6a 09                	push   $0x9
40ee31:	ff 75 14             	push   0x14(%ebp)
40ee34:	e8 90 11 00 00       	call   0x40ffc9
40ee39:	83 c4 18             	add    $0x18,%esp
40ee3c:	85 c0                	test   %eax,%eax
40ee3e:	74 bc                	je     0x40edfc
40ee40:	48                   	dec    %eax
40ee41:	89 47 10             	mov    %eax,0x10(%edi)
40ee44:	33 c0                	xor    %eax,%eax
40ee46:	5f                   	pop    %edi
40ee47:	5e                   	pop    %esi
40ee48:	5d                   	pop    %ebp
40ee49:	c3                   	ret
40ee4a:	8b ff                	mov    %edi,%edi
40ee4c:	55                   	push   %ebp
40ee4d:	8b ec                	mov    %esp,%ebp
40ee4f:	53                   	push   %ebx
40ee50:	56                   	push   %esi
40ee51:	8b 75 08             	mov    0x8(%ebp),%esi
40ee54:	85 f6                	test   %esi,%esi
40ee56:	75 1c                	jne    0x40ee74
40ee58:	8b 75 0c             	mov    0xc(%ebp),%esi
40ee5b:	8b ce                	mov    %esi,%ecx
40ee5d:	e8 0a 06 00 00       	call   0x40f46c
40ee62:	33 db                	xor    %ebx,%ebx
40ee64:	89 5e 08             	mov    %ebx,0x8(%esi)
40ee67:	89 5e 0c             	mov    %ebx,0xc(%esi)
40ee6a:	89 5e 10             	mov    %ebx,0x10(%esi)
40ee6d:	33 c0                	xor    %eax,%eax
40ee6f:	e9 a1 00 00 00       	jmp    0x40ef15
40ee74:	33 db                	xor    %ebx,%ebx
40ee76:	66 39 1e             	cmp    %bx,(%esi)
40ee79:	75 20                	jne    0x40ee9b
40ee7b:	8b 75 0c             	mov    0xc(%ebp),%esi
40ee7e:	39 5e 0c             	cmp    %ebx,0xc(%esi)
40ee81:	75 11                	jne    0x40ee94
40ee83:	6a 01                	push   $0x1
40ee85:	8b ce                	mov    %esi,%ecx
40ee87:	e8 fa 05 00 00       	call   0x40f486
40ee8c:	85 c0                	test   %eax,%eax
40ee8e:	0f 85 81 00 00 00    	jne    0x40ef15
40ee94:	8b 46 08             	mov    0x8(%esi),%eax
40ee97:	88 18                	mov    %bl,(%eax)
40ee99:	eb cf                	jmp    0x40ee6a
40ee9b:	53                   	push   %ebx
40ee9c:	53                   	push   %ebx
40ee9d:	53                   	push   %ebx
40ee9e:	53                   	push   %ebx
40ee9f:	6a ff                	push   $0xffffffff
40eea1:	56                   	push   %esi
40eea2:	53                   	push   %ebx
40eea3:	ff 75 14             	push   0x14(%ebp)
40eea6:	e8 9a 11 00 00       	call   0x410045
40eeab:	83 c4 20             	add    $0x20,%esp
40eeae:	85 c0                	test   %eax,%eax
40eeb0:	75 16                	jne    0x40eec8
40eeb2:	ff 15 48 c1 41 00    	call   *0x41c148
40eeb8:	50                   	push   %eax
40eeb9:	e8 df fd ff ff       	call   0x40ec9d
40eebe:	59                   	pop    %ecx
40eebf:	e8 0f fe ff ff       	call   0x40ecd3
40eec4:	8b 00                	mov    (%eax),%eax
40eec6:	eb 4d                	jmp    0x40ef15
40eec8:	57                   	push   %edi
40eec9:	8b 7d 0c             	mov    0xc(%ebp),%edi
40eecc:	3b 47 0c             	cmp    0xc(%edi),%eax
40eecf:	76 0c                	jbe    0x40eedd
40eed1:	50                   	push   %eax
40eed2:	8b cf                	mov    %edi,%ecx
40eed4:	e8 ad 05 00 00       	call   0x40f486
40eed9:	85 c0                	test   %eax,%eax
40eedb:	75 37                	jne    0x40ef14
40eedd:	53                   	push   %ebx
40eede:	53                   	push   %ebx
40eedf:	ff 77 0c             	push   0xc(%edi)
40eee2:	ff 77 08             	push   0x8(%edi)
40eee5:	6a ff                	push   $0xffffffff
40eee7:	56                   	push   %esi
40eee8:	53                   	push   %ebx
40eee9:	ff 75 14             	push   0x14(%ebp)
40eeec:	e8 54 11 00 00       	call   0x410045
40eef1:	83 c4 20             	add    $0x20,%esp
40eef4:	85 c0                	test   %eax,%eax
40eef6:	75 16                	jne    0x40ef0e
40eef8:	ff 15 48 c1 41 00    	call   *0x41c148
40eefe:	50                   	push   %eax
40eeff:	e8 99 fd ff ff       	call   0x40ec9d
40ef04:	59                   	pop    %ecx
40ef05:	e8 c9 fd ff ff       	call   0x40ecd3
40ef0a:	8b 00                	mov    (%eax),%eax
40ef0c:	eb 06                	jmp    0x40ef14
40ef0e:	48                   	dec    %eax
40ef0f:	89 47 10             	mov    %eax,0x10(%edi)
40ef12:	33 c0                	xor    %eax,%eax
40ef14:	5f                   	pop    %edi
40ef15:	5e                   	pop    %esi
40ef16:	5b                   	pop    %ebx
40ef17:	5d                   	pop    %ebp
40ef18:	c3                   	ret
40ef19:	8b ff                	mov    %edi,%edi
40ef1b:	55                   	push   %ebp
40ef1c:	8b ec                	mov    %esp,%ebp
40ef1e:	51                   	push   %ecx
40ef1f:	ff 75 10             	push   0x10(%ebp)
40ef22:	8d 45 ff             	lea    -0x1(%ebp),%eax
40ef25:	50                   	push   %eax
40ef26:	ff 75 0c             	push   0xc(%ebp)
40ef29:	ff 75 08             	push   0x8(%ebp)
40ef2c:	e8 67 fe ff ff       	call   0x40ed98
40ef31:	83 c4 10             	add    $0x10,%esp
40ef34:	c9                   	leave
40ef35:	c3                   	ret
40ef36:	8b ff                	mov    %edi,%edi
40ef38:	55                   	push   %ebp
40ef39:	8b ec                	mov    %esp,%ebp
40ef3b:	8b 45 0c             	mov    0xc(%ebp),%eax
40ef3e:	83 ec 28             	sub    $0x28,%esp
40ef41:	56                   	push   %esi
40ef42:	85 c0                	test   %eax,%eax
40ef44:	75 14                	jne    0x40ef5a
40ef46:	e8 88 fd ff ff       	call   0x40ecd3
40ef4b:	6a 16                	push   $0x16
40ef4d:	5e                   	pop    %esi
40ef4e:	89 30                	mov    %esi,(%eax)
40ef50:	e8 c1 fc ff ff       	call   0x40ec16
40ef55:	e9 bb 01 00 00       	jmp    0x40f115
40ef5a:	8b 75 08             	mov    0x8(%ebp),%esi
40ef5d:	53                   	push   %ebx
40ef5e:	33 db                	xor    %ebx,%ebx
40ef60:	57                   	push   %edi
40ef61:	89 18                	mov    %ebx,(%eax)
40ef63:	8b fb                	mov    %ebx,%edi
40ef65:	8b 06                	mov    (%esi),%eax
40ef67:	8b cb                	mov    %ebx,%ecx
40ef69:	89 7d d8             	mov    %edi,-0x28(%ebp)
40ef6c:	89 4d dc             	mov    %ecx,-0x24(%ebp)
40ef6f:	89 5d e0             	mov    %ebx,-0x20(%ebp)
40ef72:	85 c0                	test   %eax,%eax
40ef74:	74 61                	je     0x40efd7
40ef76:	8d 4d fc             	lea    -0x4(%ebp),%ecx
40ef79:	66 c7 45 fc 2a 3f    	movw   $0x3f2a,-0x4(%ebp)
40ef7f:	51                   	push   %ecx
40ef80:	50                   	push   %eax
40ef81:	88 5d fe             	mov    %bl,-0x2(%ebp)
40ef84:	e8 b7 48 00 00       	call   0x413840
40ef89:	59                   	pop    %ecx
40ef8a:	59                   	pop    %ecx
40ef8b:	8b 0e                	mov    (%esi),%ecx
40ef8d:	85 c0                	test   %eax,%eax
40ef8f:	75 16                	jne    0x40efa7
40ef91:	8d 45 d8             	lea    -0x28(%ebp),%eax
40ef94:	50                   	push   %eax
40ef95:	53                   	push   %ebx
40ef96:	53                   	push   %ebx
40ef97:	51                   	push   %ecx
40ef98:	e8 88 01 00 00       	call   0x40f125
40ef9d:	8b f0                	mov    %eax,%esi
40ef9f:	83 c4 10             	add    $0x10,%esp
40efa2:	89 75 f8             	mov    %esi,-0x8(%ebp)
40efa5:	eb 13                	jmp    0x40efba
40efa7:	8d 55 d8             	lea    -0x28(%ebp),%edx
40efaa:	52                   	push   %edx
40efab:	50                   	push   %eax
40efac:	51                   	push   %ecx
40efad:	e8 24 02 00 00       	call   0x40f1d6
40efb2:	83 c4 0c             	add    $0xc,%esp
40efb5:	89 45 f8             	mov    %eax,-0x8(%ebp)
40efb8:	8b f0                	mov    %eax,%esi
40efba:	85 f6                	test   %esi,%esi
40efbc:	0f 85 88 00 00 00    	jne    0x40f04a
40efc2:	8b 75 08             	mov    0x8(%ebp),%esi
40efc5:	83 c6 04             	add    $0x4,%esi
40efc8:	89 75 08             	mov    %esi,0x8(%ebp)
40efcb:	8b 06                	mov    (%esi),%eax
40efcd:	85 c0                	test   %eax,%eax
40efcf:	75 a5                	jne    0x40ef76
40efd1:	8b 7d d8             	mov    -0x28(%ebp),%edi
40efd4:	8b 4d dc             	mov    -0x24(%ebp),%ecx
40efd7:	8b c1                	mov    %ecx,%eax
40efd9:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40efdc:	2b c7                	sub    %edi,%eax
40efde:	8b f7                	mov    %edi,%esi
40efe0:	8b d0                	mov    %eax,%edx
40efe2:	89 75 f8             	mov    %esi,-0x8(%ebp)
40efe5:	c1 fa 02             	sar    $0x2,%edx
40efe8:	83 c0 03             	add    $0x3,%eax
40efeb:	42                   	inc    %edx
40efec:	c1 e8 02             	shr    $0x2,%eax
40efef:	3b ce                	cmp    %esi,%ecx
40eff1:	89 55 f4             	mov    %edx,-0xc(%ebp)
40eff4:	1b f6                	sbb    %esi,%esi
40eff6:	f7 d6                	not    %esi
40eff8:	23 f0                	and    %eax,%esi
40effa:	74 2f                	je     0x40f02b
40effc:	8b c7                	mov    %edi,%eax
40effe:	8b d3                	mov    %ebx,%edx
40f000:	8b 08                	mov    (%eax),%ecx
40f002:	8d 41 01             	lea    0x1(%ecx),%eax
40f005:	89 45 f0             	mov    %eax,-0x10(%ebp)
40f008:	8a 01                	mov    (%ecx),%al
40f00a:	41                   	inc    %ecx
40f00b:	84 c0                	test   %al,%al
40f00d:	75 f9                	jne    0x40f008
40f00f:	2b 4d f0             	sub    -0x10(%ebp),%ecx