4eed02:	89 74 24 24          	mov    %esi,0x24(%esp)
4eed06:	eb 16                	jmp    0x4eed1e
4eed08:	33 d2                	xor    %edx,%edx
4eed0a:	c7 44 24 24 00 00 00 	movl   $0x0,0x24(%esp)
4eed11:	00
4eed12:	85 c9                	test   %ecx,%ecx
4eed14:	0f 95 c2             	setne  %dl
4eed17:	83 c2 10             	add    $0x10,%edx
4eed1a:	89 54 24 1c          	mov    %edx,0x1c(%esp)
4eed1e:	33 ff                	xor    %edi,%edi
4eed20:	50                   	push   %eax
4eed21:	89 7c 24 1c          	mov    %edi,0x1c(%esp)
4eed25:	e8 96 63 ff ff       	call   0x4e50c0
4eed2a:	83 c4 04             	add    $0x4,%esp
4eed2d:	85 c0                	test   %eax,%eax
4eed2f:	7e 5c                	jle    0x4eed8d
4eed31:	33 c9                	xor    %ecx,%ecx
4eed33:	51                   	push   %ecx
4eed34:	ff 74 24 24          	push   0x24(%esp)
4eed38:	e8 43 65 ff ff       	call   0x4e5280
4eed3d:	83 c4 08             	add    $0x8,%esp
4eed40:	89 44 24 30          	mov    %eax,0x30(%esp)
4eed44:	8b 44 24 44          	mov    0x44(%esp),%eax
4eed48:	ff 74 24 4c          	push   0x4c(%esp)
4eed4c:	8b 40 10             	mov    0x10(%eax),%eax
4eed4f:	6a ff                	push   $0xffffffff
4eed51:	ff d0                	call   *%eax
4eed53:	50                   	push   %eax
4eed54:	8d 44 24 3c          	lea    0x3c(%esp),%eax
4eed58:	6a 00                	push   $0x0
4eed5a:	50                   	push   %eax
4eed5b:	e8 40 f6 ff ff       	call   0x4ee3a0
4eed60:	83 c4 14             	add    $0x14,%esp
4eed63:	83 f8 ff             	cmp    $0xffffffff,%eax
4eed66:	74 41                	je     0x4eeda9
4eed68:	b9 ff ff ff 7f       	mov    $0x7fffffff,%ecx
4eed6d:	2b c8                	sub    %eax,%ecx
4eed6f:	3b f9                	cmp    %ecx,%edi
4eed71:	7f 36                	jg     0x4eeda9
4eed73:	ff 74 24 20          	push   0x20(%esp)
4eed77:	ff 44 24 1c          	incl   0x1c(%esp)
4eed7b:	03 f8                	add    %eax,%edi
4eed7d:	e8 3e 63 ff ff       	call   0x4e50c0
4eed82:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
4eed86:	83 c4 04             	add    $0x4,%esp
4eed89:	3b c8                	cmp    %eax,%ecx
4eed8b:	7c a6                	jl     0x4eed33
4eed8d:	ff 74 24 1c          	push   0x1c(%esp)
4eed91:	57                   	push   %edi
4eed92:	ff 74 24 1c          	push   0x1c(%esp)
4eed96:	e8 55 b7 01 00       	call   0x50a4f0
4eed9b:	8b d0                	mov    %eax,%edx
4eed9d:	83 c4 0c             	add    $0xc,%esp
4eeda0:	89 54 24 34          	mov    %edx,0x34(%esp)
4eeda4:	83 fa ff             	cmp    $0xffffffff,%edx
4eeda7:	75 0b                	jne    0x4eedb4
4eeda9:	5f                   	pop    %edi
4eedaa:	5e                   	pop    %esi
4eedab:	5d                   	pop    %ebp
4eedac:	83 c8 ff             	or     $0xffffffff,%eax
4eedaf:	5b                   	pop    %ebx
4eedb0:	83 c4 28             	add    $0x28,%esp
4eedb3:	c3                   	ret
4eedb4:	83 e3 10             	and    $0x10,%ebx
4eedb7:	74 1a                	je     0x4eedd3
4eedb9:	55                   	push   %ebp
4eedba:	52                   	push   %edx
4eedbb:	ff 74 24 1c          	push   0x1c(%esp)
4eedbf:	e8 2c b7 01 00       	call   0x50a4f0
4eedc4:	8b 54 24 40          	mov    0x40(%esp),%edx
4eedc8:	8b c8                	mov    %eax,%ecx
4eedca:	83 c4 0c             	add    $0xc,%esp
4eedcd:	89 4c 24 18          	mov    %ecx,0x18(%esp)
4eedd1:	eb 06                	jmp    0x4eedd9
4eedd3:	8b ca                	mov    %edx,%ecx
4eedd5:	89 54 24 18          	mov    %edx,0x18(%esp)
4eedd9:	8b 44 24 40          	mov    0x40(%esp),%eax
4eeddd:	85 c0                	test   %eax,%eax
4eeddf:	0f 84 78 00 00 00    	je     0x4eee5d
4eede5:	83 f9 ff             	cmp    $0xffffffff,%ecx
4eede8:	74 73                	je     0x4eee5d
4eedea:	85 db                	test   %ebx,%ebx
4eedec:	74 17                	je     0x4eee05
4eedee:	56                   	push   %esi
4eedef:	8b 74 24 18          	mov    0x18(%esp),%esi
4eedf3:	55                   	push   %ebp
4eedf4:	52                   	push   %edx
4eedf5:	56                   	push   %esi
4eedf6:	50                   	push   %eax
4eedf7:	e8 64 b7 01 00       	call   0x50a560
4eedfc:	8b 44 24 54          	mov    0x54(%esp),%eax
4eee00:	83 c4 14             	add    $0x14,%esp
4eee03:	eb 04                	jmp    0x4eee09
4eee05:	8b 74 24 14          	mov    0x14(%esp),%esi
4eee09:	ff 74 24 24          	push   0x24(%esp)
4eee0d:	ff 74 24 20          	push   0x20(%esp)
4eee11:	57                   	push   %edi
4eee12:	56                   	push   %esi
4eee13:	50                   	push   %eax
4eee14:	e8 47 b7 01 00       	call   0x50a560
4eee19:	8b 44 24 58          	mov    0x58(%esp),%eax
4eee1d:	83 c4 14             	add    $0x14,%esp
4eee20:	ff 74 24 4c          	push   0x4c(%esp)
4eee24:	8b 40 10             	mov    0x10(%eax),%eax
4eee27:	ff 74 24 2c          	push   0x2c(%esp)
4eee2b:	ff d0                	call   *%eax
4eee2d:	8b 74 24 48          	mov    0x48(%esp),%esi
4eee31:	50                   	push   %eax
4eee32:	57                   	push   %edi
4eee33:	56                   	push   %esi
4eee34:	ff 74 24 34          	push   0x34(%esp)
4eee38:	e8 e3 fb ff ff       	call   0x4eea20
4eee3d:	83 c4 18             	add    $0x18,%esp
4eee40:	80 7c 24 13 00       	cmpb   $0x0,0x13(%esp)
4eee45:	74 16                	je     0x4eee5d
4eee47:	56                   	push   %esi
4eee48:	e8 f3 b6 01 00       	call   0x50a540
4eee4d:	83 c4 04             	add    $0x4,%esp
4eee50:	85 db                	test   %ebx,%ebx
4eee52:	74 09                	je     0x4eee5d
4eee54:	56                   	push   %esi
4eee55:	e8 e6 b6 01 00       	call   0x50a540
4eee5a:	83 c4 04             	add    $0x4,%esp
4eee5d:	8b 44 24 18          	mov    0x18(%esp),%eax
4eee61:	5f                   	pop    %edi
4eee62:	5e                   	pop    %esi
4eee63:	5d                   	pop    %ebp
4eee64:	5b                   	pop    %ebx
4eee65:	83 c4 28             	add    $0x28,%esp
4eee68:	c3                   	ret
4eee69:	8b 42 10             	mov    0x10(%edx),%eax
4eee6c:	f6 c3 10             	test   $0x10,%bl
4eee6f:	0f 84 92 00 00 00    	je     0x4eef07
4eee75:	57                   	push   %edi
4eee76:	6a ff                	push   $0xffffffff
4eee78:	ff d0                	call   *%eax
4eee7a:	8b 5c 24 28          	mov    0x28(%esp),%ebx
4eee7e:	50                   	push   %eax
4eee7f:	6a 00                	push   $0x0
4eee81:	53                   	push   %ebx
4eee82:	e8 19 f5 ff ff       	call   0x4ee3a0
4eee87:	83 c4 14             	add    $0x14,%esp
4eee8a:	89 44 24 34          	mov    %eax,0x34(%esp)
4eee8e:	85 c0                	test   %eax,%eax
4eee90:	75 0a                	jne    0x4eee9c
4eee92:	5f                   	pop    %edi
4eee93:	5e                   	pop    %esi
4eee94:	5d                   	pop    %ebp
4eee95:	33 c0                	xor    %eax,%eax
4eee97:	5b                   	pop    %ebx
4eee98:	83 c4 28             	add    $0x28,%esp
4eee9b:	c3                   	ret
4eee9c:	55                   	push   %ebp
4eee9d:	50                   	push   %eax
4eee9e:	ff 74 24 1c          	push   0x1c(%esp)
4eeea2:	e8 49 b6 01 00       	call   0x50a4f0
4eeea7:	89 44 24 34          	mov    %eax,0x34(%esp)
4eeeab:	83 c4 0c             	add    $0xc,%esp
4eeeae:	8b 44 24 40          	mov    0x40(%esp),%eax
4eeeb2:	85 c0                	test   %eax,%eax
4eeeb4:	74 45                	je     0x4eeefb
4eeeb6:	83 7c 24 28 ff       	cmpl   $0xffffffff,0x28(%esp)
4eeebb:	74 3e                	je     0x4eeefb
4eeebd:	56                   	push   %esi
4eeebe:	55                   	push   %ebp
4eeebf:	ff 74 24 3c          	push   0x3c(%esp)
4eeec3:	ff 74 24 20          	push   0x20(%esp)
4eeec7:	50                   	push   %eax
4eeec8:	e8 93 b6 01 00       	call   0x50a560
4eeecd:	8b 44 24 58          	mov    0x58(%esp),%eax
4eeed1:	83 c4 14             	add    $0x14,%esp
4eeed4:	8b 40 10             	mov    0x10(%eax),%eax
4eeed7:	57                   	push   %edi
4eeed8:	6a ff                	push   $0xffffffff
4eeeda:	ff d0                	call   *%eax
4eeedc:	8b 74 24 48          	mov    0x48(%esp),%esi
4eeee0:	50                   	push   %eax
4eeee1:	56                   	push   %esi
4eeee2:	53                   	push   %ebx
4eeee3:	e8 b8 f4 ff ff       	call   0x4ee3a0
4eeee8:	83 c4 14             	add    $0x14,%esp
4eeeeb:	80 7c 24 13 00       	cmpb   $0x0,0x13(%esp)
4eeef0:	74 09                	je     0x4eeefb
4eeef2:	56                   	push   %esi
4eeef3:	e8 48 b6 01 00       	call   0x50a540
4eeef8:	83 c4 04             	add    $0x4,%esp
4eeefb:	8b 44 24 28          	mov    0x28(%esp),%eax
4eeeff:	5f                   	pop    %edi
4eef00:	5e                   	pop    %esi
4eef01:	5d                   	pop    %ebp
4eef02:	5b                   	pop    %ebx
4eef03:	83 c4 28             	add    $0x28,%esp
4eef06:	c3                   	ret
4eef07:	0b f7                	or     %edi,%esi
4eef09:	56                   	push   %esi
4eef0a:	55                   	push   %ebp
4eef0b:	ff d0                	call   *%eax
4eef0d:	8b 5c 24 28          	mov    0x28(%esp),%ebx
4eef11:	50                   	push   %eax
4eef12:	ff 74 24 4c          	push   0x4c(%esp)
4eef16:	53                   	push   %ebx
4eef17:	e8 84 f4 ff ff       	call   0x4ee3a0
4eef1c:	83 c4 14             	add    $0x14,%esp
4eef1f:	5f                   	pop    %edi
4eef20:	5e                   	pop    %esi
4eef21:	5d                   	pop    %ebp
4eef22:	5b                   	pop    %ebx
4eef23:	83 c4 28             	add    $0x28,%esp
4eef26:	c3                   	ret
4eef27:	cc                   	int3
4eef28:	cc                   	int3
4eef29:	cc                   	int3
4eef2a:	cc                   	int3
4eef2b:	cc                   	int3
4eef2c:	cc                   	int3
4eef2d:	cc                   	int3
4eef2e:	cc                   	int3
4eef2f:	cc                   	int3
4eef30:	8b 44 24 04          	mov    0x4(%esp),%eax
4eef34:	8b 4c 24 08          	mov    0x8(%esp),%ecx
4eef38:	53                   	push   %ebx
4eef39:	56                   	push   %esi
4eef3a:	8b 10                	mov    (%eax),%edx
4eef3c:	8b 59 04             	mov    0x4(%ecx),%ebx
4eef3f:	8b 09                	mov    (%ecx),%ecx
4eef41:	57                   	push   %edi
4eef42:	8b 78 04             	mov    0x4(%eax),%edi
4eef45:	3b fb                	cmp    %ebx,%edi
4eef47:	8b f7                	mov    %edi,%esi
4eef49:	0f 4d f3             	cmovge %ebx,%esi
4eef4c:	83 ee 04             	sub    $0x4,%esi
4eef4f:	72 11                	jb     0x4eef62
4eef51:	8b 02                	mov    (%edx),%eax
4eef53:	3b 01                	cmp    (%ecx),%eax
4eef55:	75 10                	jne    0x4eef67
4eef57:	83 c2 04             	add    $0x4,%edx
4eef5a:	83 c1 04             	add    $0x4,%ecx
4eef5d:	83 ee 04             	sub    $0x4,%esi
4eef60:	73 ef                	jae    0x4eef51
4eef62:	83 fe fc             	cmp    $0xfffffffc,%esi
4eef65:	74 34                	je     0x4eef9b
4eef67:	8a 02                	mov    (%edx),%al
4eef69:	3a 01                	cmp    (%ecx),%al
4eef6b:	75 27                	jne    0x4eef94
4eef6d:	83 fe fd             	cmp    $0xfffffffd,%esi
4eef70:	74 29                	je     0x4eef9b
4eef72:	8a 42 01             	mov    0x1(%edx),%al
4eef75:	3a 41 01             	cmp    0x1(%ecx),%al
4eef78:	75 1a                	jne    0x4eef94
4eef7a:	83 fe fe             	cmp    $0xfffffffe,%esi
4eef7d:	74 1c                	je     0x4eef9b
4eef7f:	8a 42 02             	mov    0x2(%edx),%al
4eef82:	3a 41 02             	cmp    0x2(%ecx),%al
4eef85:	75 0d                	jne    0x4eef94
4eef87:	83 fe ff             	cmp    $0xffffffff,%esi
4eef8a:	74 0f                	je     0x4eef9b
4eef8c:	8a 42 03             	mov    0x3(%edx),%al
4eef8f:	3a 41 03             	cmp    0x3(%ecx),%al
4eef92:	74 07                	je     0x4eef9b
4eef94:	1b c0                	sbb    %eax,%eax
4eef96:	83 c8 01             	or     $0x1,%eax
4eef99:	eb 02                	jmp    0x4eef9d
4eef9b:	33 c0                	xor    %eax,%eax
4eef9d:	85 c0                	test   %eax,%eax
4eef9f:	75 04                	jne    0x4eefa5
4eefa1:	2b fb                	sub    %ebx,%edi
4eefa3:	8b c7                	mov    %edi,%eax
4eefa5:	5f                   	pop    %edi
4eefa6:	5e                   	pop    %esi
4eefa7:	5b                   	pop    %ebx
4eefa8:	c3                   	ret
4eefa9:	cc                   	int3
4eefaa:	cc                   	int3
4eefab:	cc                   	int3
4eefac:	cc                   	int3
4eefad:	cc                   	int3
4eefae:	cc                   	int3
4eefaf:	cc                   	int3
4eefb0:	53                   	push   %ebx
4eefb1:	56                   	push   %esi
4eefb2:	8b 74 24 14          	mov    0x14(%esp),%esi
4eefb6:	33 db                	xor    %ebx,%ebx
4eefb8:	85 f6                	test   %esi,%esi
4eefba:	75 05                	jne    0x4eefc1
4eefbc:	5e                   	pop    %esi
4eefbd:	33 c0                	xor    %eax,%eax
4eefbf:	5b                   	pop    %ebx
4eefc0:	c3                   	ret
4eefc1:	55                   	push   %ebp
4eefc2:	33 ed                	xor    %ebp,%ebp
4eefc4:	85 f6                	test   %esi,%esi
4eefc6:	7e 48                	jle    0x4ef010
4eefc8:	57                   	push   %edi
4eefc9:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
4eefd0:	8d 04 2e             	lea    (%esi,%ebp,1),%eax
4eefd3:	99                   	cltd
4eefd4:	2b c2                	sub    %edx,%eax
4eefd6:	8b f8                	mov    %eax,%edi
4eefd8:	d1 ff                	sar    $1,%edi
4eefda:	8b df                	mov    %edi,%ebx
4eefdc:	0f af 5c 24 20       	imul   0x20(%esp),%ebx
4eefe1:	03 5c 24 18          	add    0x18(%esp),%ebx
4eefe5:	53                   	push   %ebx
4eefe6:	ff 74 24 18          	push   0x18(%esp)
4eefea:	ff 54 24 2c          	call   *0x2c(%esp)
4eefee:	83 c4 08             	add    $0x8,%esp
4eeff1:	85 c0                	test   %eax,%eax
4eeff3:	79 04                	jns    0x4eeff9
4eeff5:	8b f7                	mov    %edi,%esi
4eeff7:	eb 05                	jmp    0x4eeffe
4eeff9:	7e 07                	jle    0x4ef002
4eeffb:	8d 6f 01             	lea    0x1(%edi),%ebp
4eeffe:	3b ee                	cmp    %esi,%ebp
4ef000:	7c ce                	jl     0x4eefd0
4ef002:	33 c9                	xor    %ecx,%ecx
4ef004:	85 c0                	test   %eax,%eax
4ef006:	5f                   	pop    %edi
4ef007:	0f 45 d9             	cmovne %ecx,%ebx
4ef00a:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
4ef010:	5d                   	pop    %ebp
4ef011:	5e                   	pop    %esi
4ef012:	8b c3                	mov    %ebx,%eax
4ef014:	5b                   	pop    %ebx
4ef015:	c3                   	ret
4ef016:	cc                   	int3
4ef017:	cc                   	int3
4ef018:	cc                   	int3
4ef019:	cc                   	int3
4ef01a:	cc                   	int3
4ef01b:	cc                   	int3
4ef01c:	cc                   	int3
4ef01d:	cc                   	int3
4ef01e:	cc                   	int3
4ef01f:	cc                   	int3
4ef020:	8b 4c 24 10          	mov    0x10(%esp),%ecx
4ef024:	53                   	push   %ebx
4ef025:	8b 5c 24 10          	mov    0x10(%esp),%ebx
4ef029:	56                   	push   %esi
4ef02a:	57                   	push   %edi
4ef02b:	33 f6                	xor    %esi,%esi
4ef02d:	33 ff                	xor    %edi,%edi
4ef02f:	85 db                	test   %ebx,%ebx
4ef031:	75 06                	jne    0x4ef039
4ef033:	5f                   	pop    %edi
4ef034:	5e                   	pop    %esi
4ef035:	33 c0                	xor    %eax,%eax
4ef037:	5b                   	pop    %ebx
4ef038:	c3                   	ret
4ef039:	55                   	push   %ebp
4ef03a:	33 ed                	xor    %ebp,%ebp