404ddf:	8b 55 f0             	mov    -0x10(%ebp),%edx
404de2:	89 45 fc             	mov    %eax,-0x4(%ebp)
404de5:	8d 34 70             	lea    (%eax,%esi,2),%esi
404de8:	8d 04 4a             	lea    (%edx,%ecx,2),%eax
404deb:	3b 45 fc             	cmp    -0x4(%ebp),%eax
404dee:	76 1a                	jbe    0x404e0a
404df0:	8b 45 f4             	mov    -0xc(%ebp),%eax
404df3:	8d 04 78             	lea    (%eax,%edi,2),%eax
404df6:	3b d0                	cmp    %eax,%edx
404df8:	77 10                	ja     0x404e0a
404dfa:	3b f2                	cmp    %edx,%esi
404dfc:	77 04                	ja     0x404e02
404dfe:	33 ff                	xor    %edi,%edi
404e00:	eb 0a                	jmp    0x404e0c
404e02:	8b fe                	mov    %esi,%edi
404e04:	2b fa                	sub    %edx,%edi
404e06:	d1 ff                	sar    $1,%edi
404e08:	eb 02                	jmp    0x404e0c
404e0a:	8b f9                	mov    %ecx,%edi
404e0c:	8b 45 e8             	mov    -0x18(%ebp),%eax
404e0f:	8d 04 45 02 00 00 00 	lea    0x2(,%eax,2),%eax
404e16:	50                   	push   %eax
404e17:	8b 45 f8             	mov    -0x8(%ebp),%eax
404e1a:	56                   	push   %esi
404e1b:	8d 04 46             	lea    (%esi,%eax,2),%eax
404e1e:	50                   	push   %eax
404e1f:	e8 5c 68 01 00       	call   0x41b680
404e24:	8d 34 3f             	lea    (%edi,%edi,1),%esi
404e27:	56                   	push   %esi
404e28:	ff 75 f0             	push   -0x10(%ebp)
404e2b:	ff 75 fc             	push   -0x4(%ebp)
404e2e:	e8 4d 68 01 00       	call   0x41b680
404e33:	8b 45 ec             	mov    -0x14(%ebp),%eax
404e36:	8b 4d f0             	mov    -0x10(%ebp),%ecx
404e39:	2b c7                	sub    %edi,%eax
404e3b:	03 c0                	add    %eax,%eax
404e3d:	50                   	push   %eax
404e3e:	8b 45 f8             	mov    -0x8(%ebp),%eax
404e41:	03 c7                	add    %edi,%eax
404e43:	8d 04 41             	lea    (%ecx,%eax,2),%eax
404e46:	50                   	push   %eax
404e47:	8b 45 fc             	mov    -0x4(%ebp),%eax
404e4a:	03 c6                	add    %esi,%eax
404e4c:	50                   	push   %eax
404e4d:	e8 2e 68 01 00       	call   0x41b680
404e52:	83 c4 24             	add    $0x24,%esp
404e55:	8b c3                	mov    %ebx,%eax
404e57:	5f                   	pop    %edi
404e58:	5e                   	pop    %esi
404e59:	5b                   	pop    %ebx
404e5a:	8b e5                	mov    %ebp,%esp
404e5c:	5d                   	pop    %ebp
404e5d:	c2 10 00             	ret    $0x10
404e60:	51                   	push   %ecx
404e61:	52                   	push   %edx
404e62:	56                   	push   %esi
404e63:	ff 75 fc             	push   -0x4(%ebp)
404e66:	c6 45 ec 00          	movb   $0x0,-0x14(%ebp)
404e6a:	8b cb                	mov    %ebx,%ecx
404e6c:	ff 75 ec             	push   -0x14(%ebp)
404e6f:	ff 75 f8             	push   -0x8(%ebp)
404e72:	e8 09 03 00 00       	call   0x405180
404e77:	5f                   	pop    %edi
404e78:	5e                   	pop    %esi
404e79:	5b                   	pop    %ebx
404e7a:	8b e5                	mov    %ebp,%esp
404e7c:	5d                   	pop    %ebp
404e7d:	c2 10 00             	ret    $0x10
404e80:	e8 7b 01 00 00       	call   0x405000
404e85:	cc                   	int3
404e86:	cc                   	int3
404e87:	cc                   	int3
404e88:	cc                   	int3
404e89:	cc                   	int3
404e8a:	cc                   	int3
404e8b:	cc                   	int3
404e8c:	cc                   	int3
404e8d:	cc                   	int3
404e8e:	cc                   	int3
404e8f:	cc                   	int3
404e90:	55                   	push   %ebp
404e91:	8b ec                	mov    %esp,%ebp
404e93:	83 ec 0c             	sub    $0xc,%esp
404e96:	8b 45 08             	mov    0x8(%ebp),%eax
404e99:	53                   	push   %ebx
404e9a:	8b 5d 0c             	mov    0xc(%ebp),%ebx
404e9d:	56                   	push   %esi
404e9e:	8b f1                	mov    %ecx,%esi
404ea0:	89 45 f8             	mov    %eax,-0x8(%ebp)
404ea3:	57                   	push   %edi
404ea4:	8b 4e 14             	mov    0x14(%esi),%ecx
404ea7:	89 4d f4             	mov    %ecx,-0xc(%ebp)
404eaa:	3b d9                	cmp    %ecx,%ebx
404eac:	77 26                	ja     0x404ed4
404eae:	8b fe                	mov    %esi,%edi
404eb0:	83 f9 10             	cmp    $0x10,%ecx
404eb3:	72 02                	jb     0x404eb7
404eb5:	8b 3e                	mov    (%esi),%edi
404eb7:	53                   	push   %ebx
404eb8:	50                   	push   %eax
404eb9:	57                   	push   %edi
404eba:	89 5e 10             	mov    %ebx,0x10(%esi)
404ebd:	e8 be 67 01 00       	call   0x41b680
404ec2:	83 c4 0c             	add    $0xc,%esp
404ec5:	c6 04 3b 00          	movb   $0x0,(%ebx,%edi,1)
404ec9:	8b c6                	mov    %esi,%eax
404ecb:	5f                   	pop    %edi
404ecc:	5e                   	pop    %esi
404ecd:	5b                   	pop    %ebx
404ece:	8b e5                	mov    %ebp,%esp
404ed0:	5d                   	pop    %ebp
404ed1:	c2 08 00             	ret    $0x8
404ed4:	81 fb ff ff ff 7f    	cmp    $0x7fffffff,%ebx
404eda:	0f 87 d4 00 00 00    	ja     0x404fb4
404ee0:	8b fb                	mov    %ebx,%edi
404ee2:	83 cf 0f             	or     $0xf,%edi
404ee5:	81 ff ff ff ff 7f    	cmp    $0x7fffffff,%edi
404eeb:	77 2f                	ja     0x404f1c
404eed:	8b d1                	mov    %ecx,%edx
404eef:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
404ef4:	d1 ea                	shr    $1,%edx
404ef6:	2b c2                	sub    %edx,%eax
404ef8:	3b c8                	cmp    %eax,%ecx
404efa:	77 20                	ja     0x404f1c
404efc:	8d 04 0a             	lea    (%edx,%ecx,1),%eax
404eff:	3b f8                	cmp    %eax,%edi
404f01:	0f 42 f8             	cmovb  %eax,%edi
404f04:	8d 4f 01             	lea    0x1(%edi),%ecx
404f07:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
404f0d:	72 34                	jb     0x404f43
404f0f:	8d 41 23             	lea    0x23(%ecx),%eax
404f12:	3b c1                	cmp    %ecx,%eax
404f14:	0f 86 9f 00 00 00    	jbe    0x404fb9
404f1a:	eb 0d                	jmp    0x404f29
404f1c:	b8 00 00 00 80       	mov    $0x80000000,%eax
404f21:	bf ff ff ff 7f       	mov    $0x7fffffff,%edi
404f26:	83 c0 23             	add    $0x23,%eax
404f29:	50                   	push   %eax
404f2a:	e8 97 4c 01 00       	call   0x419bc6
404f2f:	8b c8                	mov    %eax,%ecx
404f31:	83 c4 04             	add    $0x4,%esp
404f34:	85 c9                	test   %ecx,%ecx
404f36:	74 77                	je     0x404faf
404f38:	8d 41 23             	lea    0x23(%ecx),%eax
404f3b:	83 e0 e0             	and    $0xffffffe0,%eax
404f3e:	89 48 fc             	mov    %ecx,-0x4(%eax)
404f41:	eb 11                	jmp    0x404f54
404f43:	85 c9                	test   %ecx,%ecx
404f45:	74 0b                	je     0x404f52
404f47:	51                   	push   %ecx
404f48:	e8 79 4c 01 00       	call   0x419bc6
404f4d:	83 c4 04             	add    $0x4,%esp
404f50:	eb 02                	jmp    0x404f54
404f52:	33 c0                	xor    %eax,%eax
404f54:	53                   	push   %ebx
404f55:	ff 75 f8             	push   -0x8(%ebp)
404f58:	89 45 fc             	mov    %eax,-0x4(%ebp)
404f5b:	50                   	push   %eax
404f5c:	89 5e 10             	mov    %ebx,0x10(%esi)
404f5f:	89 7e 14             	mov    %edi,0x14(%esi)
404f62:	e8 19 67 01 00       	call   0x41b680
404f67:	8b 7d fc             	mov    -0x4(%ebp),%edi
404f6a:	83 c4 0c             	add    $0xc,%esp
404f6d:	8b 45 f4             	mov    -0xc(%ebp),%eax
404f70:	c6 04 3b 00          	movb   $0x0,(%ebx,%edi,1)
404f74:	83 f8 10             	cmp    $0x10,%eax
404f77:	72 29                	jb     0x404fa2
404f79:	8d 48 01             	lea    0x1(%eax),%ecx
404f7c:	8b 06                	mov    (%esi),%eax
404f7e:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
404f84:	72 12                	jb     0x404f98
404f86:	8b 50 fc             	mov    -0x4(%eax),%edx
404f89:	83 c1 23             	add    $0x23,%ecx
404f8c:	2b c2                	sub    %edx,%eax
404f8e:	83 c0 fc             	add    $0xfffffffc,%eax
404f91:	83 f8 1f             	cmp    $0x1f,%eax
404f94:	77 19                	ja     0x404faf
404f96:	8b c2                	mov    %edx,%eax
404f98:	51                   	push   %ecx
404f99:	50                   	push   %eax
404f9a:	e8 19 4c 01 00       	call   0x419bb8
404f9f:	83 c4 08             	add    $0x8,%esp
404fa2:	89 3e                	mov    %edi,(%esi)
404fa4:	8b c6                	mov    %esi,%eax
404fa6:	5f                   	pop    %edi
404fa7:	5e                   	pop    %esi
404fa8:	5b                   	pop    %ebx
404fa9:	8b e5                	mov    %ebp,%esp
404fab:	5d                   	pop    %ebp
404fac:	c2 08 00             	ret    $0x8
404faf:	e8 df a9 01 00       	call   0x41f993
404fb4:	e8 a7 c3 ff ff       	call   0x401360
404fb9:	e8 02 c3 ff ff       	call   0x4012c0
404fbe:	cc                   	int3
404fbf:	cc                   	int3
404fc0:	55                   	push   %ebp
404fc1:	8b ec                	mov    %esp,%ebp
404fc3:	8b 45 0c             	mov    0xc(%ebp),%eax
404fc6:	8b 4d 08             	mov    0x8(%ebp),%ecx
404fc9:	8d 14 40             	lea    (%eax,%eax,2),%edx
404fcc:	c1 e2 03             	shl    $0x3,%edx
404fcf:	81 fa 00 10 00 00    	cmp    $0x1000,%edx
404fd5:	72 14                	jb     0x404feb
404fd7:	56                   	push   %esi
404fd8:	8b 71 fc             	mov    -0x4(%ecx),%esi
404fdb:	83 c2 23             	add    $0x23,%edx
404fde:	2b ce                	sub    %esi,%ecx
404fe0:	8d 41 fc             	lea    -0x4(%ecx),%eax
404fe3:	83 f8 1f             	cmp    $0x1f,%eax
404fe6:	77 11                	ja     0x404ff9
404fe8:	8b ce                	mov    %esi,%ecx
404fea:	5e                   	pop    %esi
404feb:	52                   	push   %edx
404fec:	51                   	push   %ecx
404fed:	e8 c6 4b 01 00       	call   0x419bb8
404ff2:	83 c4 08             	add    $0x8,%esp
404ff5:	5d                   	pop    %ebp
404ff6:	c2 08 00             	ret    $0x8
404ff9:	e8 95 a9 01 00       	call   0x41f993
404ffe:	cc                   	int3
404fff:	cc                   	int3
405000:	68 3c ed 44 00       	push   $0x44ed3c
405005:	e8 b0 3e 01 00       	call   0x418eba
40500a:	cc                   	int3
40500b:	cc                   	int3
40500c:	cc                   	int3
40500d:	cc                   	int3
40500e:	cc                   	int3
40500f:	cc                   	int3
405010:	55                   	push   %ebp
405011:	8b ec                	mov    %esp,%ebp
405013:	56                   	push   %esi
405014:	57                   	push   %edi
405015:	8b fa                	mov    %edx,%edi
405017:	8b f1                	mov    %ecx,%esi
405019:	3b f7                	cmp    %edi,%esi
40501b:	74 52                	je     0x40506f
40501d:	0f 1f 00             	nopl   (%eax)
405020:	8b 4e 14             	mov    0x14(%esi),%ecx
405023:	83 f9 08             	cmp    $0x8,%ecx
405026:	72 2d                	jb     0x405055
405028:	8b 06                	mov    (%esi),%eax
40502a:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
405031:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
405037:	72 12                	jb     0x40504b
405039:	8b 50 fc             	mov    -0x4(%eax),%edx
40503c:	83 c1 23             	add    $0x23,%ecx
40503f:	2b c2                	sub    %edx,%eax
405041:	83 c0 fc             	add    $0xfffffffc,%eax
405044:	83 f8 1f             	cmp    $0x1f,%eax
405047:	77 2a                	ja     0x405073
405049:	8b c2                	mov    %edx,%eax
40504b:	51                   	push   %ecx
40504c:	50                   	push   %eax
40504d:	e8 66 4b 01 00       	call   0x419bb8
405052:	83 c4 08             	add    $0x8,%esp
405055:	33 c0                	xor    %eax,%eax
405057:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
40505e:	c7 46 14 07 00 00 00 	movl   $0x7,0x14(%esi)
405065:	66 89 06             	mov    %ax,(%esi)
405068:	83 c6 18             	add    $0x18,%esi
40506b:	3b f7                	cmp    %edi,%esi
40506d:	75 b1                	jne    0x405020
40506f:	5f                   	pop    %edi
405070:	5e                   	pop    %esi
405071:	5d                   	pop    %ebp
405072:	c3                   	ret
405073:	e8 1b a9 01 00       	call   0x41f993
405078:	cc                   	int3
405079:	cc                   	int3
40507a:	cc                   	int3
40507b:	cc                   	int3
40507c:	cc                   	int3
40507d:	cc                   	int3
40507e:	cc                   	int3
40507f:	cc                   	int3
405080:	55                   	push   %ebp
405081:	8b ec                	mov    %esp,%ebp
405083:	51                   	push   %ecx
405084:	8b c2                	mov    %edx,%eax
405086:	8b d1                	mov    %ecx,%edx
405088:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40508b:	3b c8                	cmp    %eax,%ecx
40508d:	53                   	push   %ebx
40508e:	56                   	push   %esi
40508f:	8b 75 08             	mov    0x8(%ebp),%esi
405092:	57                   	push   %edi
405093:	8b f8                	mov    %eax,%edi
405095:	89 45 fc             	mov    %eax,-0x4(%ebp)
405098:	0f 42 f9             	cmovb  %ecx,%edi
40509b:	85 ff                	test   %edi,%edi
40509d:	74 1e                	je     0x4050bd
40509f:	2b d6                	sub    %esi,%edx
4050a1:	0f b7 04 32          	movzwl (%edx,%esi,1),%eax
4050a5:	0f b7 0e             	movzwl (%esi),%ecx
4050a8:	8b d8                	mov    %eax,%ebx
4050aa:	66 3b c1             	cmp    %cx,%ax
4050ad:	75 1c                	jne    0x4050cb
4050af:	83 c6 02             	add    $0x2,%esi
4050b2:	83 ef 01             	sub    $0x1,%edi
4050b5:	75 ea                	jne    0x4050a1
4050b7:	8b 45 fc             	mov    -0x4(%ebp),%eax
4050ba:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4050bd:	3b c8                	cmp    %eax,%ecx
4050bf:	76 1a                	jbe    0x4050db
4050c1:	5f                   	pop    %edi
4050c2:	5e                   	pop    %esi
4050c3:	83 c8 ff             	or     $0xffffffff,%eax
4050c6:	5b                   	pop    %ebx
4050c7:	8b e5                	mov    %ebp,%esp
4050c9:	5d                   	pop    %ebp
4050ca:	c3                   	ret
4050cb:	66 3b d9             	cmp    %cx,%bx
4050ce:	5f                   	pop    %edi
4050cf:	1b c0                	sbb    %eax,%eax
4050d1:	83 e0 fe             	and    $0xfffffffe,%eax
4050d4:	5e                   	pop    %esi
4050d5:	40                   	inc    %eax
4050d6:	5b                   	pop    %ebx
4050d7:	8b e5                	mov    %ebp,%esp
4050d9:	5d                   	pop    %ebp
4050da:	c3                   	ret
4050db:	5f                   	pop    %edi
4050dc:	1b c0                	sbb    %eax,%eax
4050de:	5e                   	pop    %esi
4050df:	f7 d8                	neg    %eax
4050e1:	5b                   	pop    %ebx
4050e2:	8b e5                	mov    %ebp,%esp
4050e4:	5d                   	pop    %ebp
4050e5:	c3                   	ret
4050e6:	cc                   	int3
4050e7:	cc                   	int3
4050e8:	cc                   	int3
4050e9:	cc                   	int3
4050ea:	cc                   	int3
4050eb:	cc                   	int3
4050ec:	cc                   	int3
4050ed:	cc                   	int3
4050ee:	cc                   	int3
4050ef:	cc                   	int3
4050f0:	55                   	push   %ebp
4050f1:	8b ec                	mov    %esp,%ebp
4050f3:	83 ec 08             	sub    $0x8,%esp
4050f6:	53                   	push   %ebx
4050f7:	56                   	push   %esi
4050f8:	57                   	push   %edi
4050f9:	8b 7d 10             	mov    0x10(%ebp),%edi
4050fc:	8b d9                	mov    %ecx,%ebx
4050fe:	89 5d f8             	mov    %ebx,-0x8(%ebp)
405101:	3b fa                	cmp    %edx,%edi