404ccf:	33 c5                	xor    %ebp,%eax
404cd1:	50                   	push   %eax
404cd2:	8d 45 f4             	lea    -0xc(%ebp),%eax
404cd5:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
404cdb:	8b 75 08             	mov    0x8(%ebp),%esi
404cde:	8d 4d e8             	lea    -0x18(%ebp),%ecx
404ce1:	6a 00                	push   $0x0
404ce3:	89 75 ec             	mov    %esi,-0x14(%ebp)
404ce6:	c7 45 f0 00 00 00 00 	movl   $0x0,-0x10(%ebp)
404ced:	e8 4f 07 00 00       	call   0x405441
404cf2:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
404cf9:	8b 3d 48 53 43 00    	mov    0x435348,%edi
404cff:	8b 1d e8 52 43 00    	mov    0x4352e8,%ebx
404d05:	85 ff                	test   %edi,%edi
404d07:	75 2f                	jne    0x404d38
404d09:	57                   	push   %edi
404d0a:	8d 4d f0             	lea    -0x10(%ebp),%ecx
404d0d:	e8 2f 07 00 00       	call   0x405441
404d12:	39 3d 48 53 43 00    	cmp    %edi,0x435348
404d18:	75 10                	jne    0x404d2a
404d1a:	a1 d0 40 43 00       	mov    0x4340d0,%eax
404d1f:	40                   	inc    %eax
404d20:	a3 d0 40 43 00       	mov    %eax,0x4340d0
404d25:	a3 48 53 43 00       	mov    %eax,0x435348
404d2a:	8d 4d f0             	lea    -0x10(%ebp),%ecx
404d2d:	e8 67 07 00 00       	call   0x405499
404d32:	8b 3d 48 53 43 00    	mov    0x435348,%edi
404d38:	8b 4e 04             	mov    0x4(%esi),%ecx
404d3b:	3b 79 0c             	cmp    0xc(%ecx),%edi
404d3e:	73 10                	jae    0x404d50
404d40:	8b 41 08             	mov    0x8(%ecx),%eax
404d43:	8b 34 b8             	mov    (%eax,%edi,4),%esi
404d46:	85 f6                	test   %esi,%esi
404d48:	0f 85 4f 01 00 00    	jne    0x404e9d
404d4e:	eb 02                	jmp    0x404d52
404d50:	33 f6                	xor    %esi,%esi
404d52:	80 79 14 00          	cmpb   $0x0,0x14(%ecx)
404d56:	74 10                	je     0x404d68
404d58:	e8 77 1d 00 00       	call   0x406ad4
404d5d:	3b 78 0c             	cmp    0xc(%eax),%edi
404d60:	73 0e                	jae    0x404d70
404d62:	8b 40 08             	mov    0x8(%eax),%eax
404d65:	8b 34 b8             	mov    (%eax,%edi,4),%esi
404d68:	85 f6                	test   %esi,%esi
404d6a:	0f 85 2d 01 00 00    	jne    0x404e9d
404d70:	85 db                	test   %ebx,%ebx
404d72:	74 07                	je     0x404d7b
404d74:	8b f3                	mov    %ebx,%esi
404d76:	e9 22 01 00 00       	jmp    0x404e9d
404d7b:	6a 18                	push   $0x18
404d7d:	e8 9a 28 00 00       	call   0x40761c
404d82:	8b f0                	mov    %eax,%esi
404d84:	83 c4 04             	add    $0x4,%esp
404d87:	89 75 e4             	mov    %esi,-0x1c(%ebp)
404d8a:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
404d8e:	8b 4d ec             	mov    -0x14(%ebp),%ecx
404d91:	8b 49 04             	mov    0x4(%ecx),%ecx
404d94:	85 c9                	test   %ecx,%ecx
404d96:	74 0c                	je     0x404da4
404d98:	8b 41 18             	mov    0x18(%ecx),%eax
404d9b:	85 c0                	test   %eax,%eax
404d9d:	75 0a                	jne    0x404da9
404d9f:	8d 41 1c             	lea    0x1c(%ecx),%eax
404da2:	eb 05                	jmp    0x404da9
404da4:	b8 db f6 42 00       	mov    $0x42f6db,%eax
404da9:	50                   	push   %eax
404daa:	8d 4d b0             	lea    -0x50(%ebp),%ecx
404dad:	e8 ee cb ff ff       	call   0x4019a0
404db2:	c7 45 f0 01 00 00 00 	movl   $0x1,-0x10(%ebp)
404db9:	c7 46 04 00 00 00 00 	movl   $0x0,0x4(%esi)
404dc0:	c7 45 fc 03 00 00 00 	movl   $0x3,-0x4(%ebp)
404dc7:	c7 06 04 50 42 00    	movl   $0x425004,(%esi)
404dcd:	e8 19 7e 00 00       	call   0x40cbeb
404dd2:	8d 45 84             	lea    -0x7c(%ebp),%eax
404dd5:	50                   	push   %eax
404dd6:	e8 a7 20 00 00       	call   0x406e82
404ddb:	c7 46 08 00 00 00 00 	movl   $0x0,0x8(%esi)
404de2:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
404de9:	c7 46 14 00 00 00 00 	movl   $0x0,0x14(%esi)
404df0:	89 75 ec             	mov    %esi,-0x14(%ebp)
404df3:	8d 85 58 ff ff ff    	lea    -0xa8(%ebp),%eax
404df9:	c6 45 fc 04          	movb   $0x4,-0x4(%ebp)
404dfd:	50                   	push   %eax
404dfe:	e8 7f 20 00 00       	call   0x406e82
404e03:	6a 01                	push   $0x1
404e05:	6a 01                	push   $0x1
404e07:	e8 05 68 00 00       	call   0x40b611
404e0c:	83 c4 10             	add    $0x10,%esp
404e0f:	85 c0                	test   %eax,%eax
404e11:	0f 84 a2 00 00 00    	je     0x404eb9
404e17:	6a 01                	push   $0x1
404e19:	6a 06                	push   $0x6
404e1b:	c6 00 00             	movb   $0x0,(%eax)
404e1e:	89 46 08             	mov    %eax,0x8(%esi)
404e21:	e8 eb 67 00 00       	call   0x40b611
404e26:	8b c8                	mov    %eax,%ecx
404e28:	83 c4 08             	add    $0x8,%esp
404e2b:	85 c9                	test   %ecx,%ecx
404e2d:	0f 84 8b 00 00 00    	je     0x404ebe
404e33:	a1 04 f7 42 00       	mov    0x42f704,%eax
404e38:	89 01                	mov    %eax,(%ecx)
404e3a:	66 a1 08 f7 42 00    	mov    0x42f708,%ax
404e40:	6a 01                	push   $0x1
404e42:	6a 05                	push   $0x5
404e44:	66 89 41 04          	mov    %ax,0x4(%ecx)
404e48:	89 4e 10             	mov    %ecx,0x10(%esi)
404e4b:	e8 c1 67 00 00       	call   0x40b611
404e50:	8b c8                	mov    %eax,%ecx
404e52:	83 c4 08             	add    $0x8,%esp
404e55:	85 c9                	test   %ecx,%ecx
404e57:	74 6a                	je     0x404ec3
404e59:	a1 0c f7 42 00       	mov    0x42f70c,%eax
404e5e:	89 01                	mov    %eax,(%ecx)
404e60:	a0 10 f7 42 00       	mov    0x42f710,%al
404e65:	88 41 04             	mov    %al,0x4(%ecx)
404e68:	89 4e 14             	mov    %ecx,0x14(%esi)
404e6b:	66 c7 46 0c 2e 2c    	movw   $0x2c2e,0xc(%esi)
404e71:	8d 4d b0             	lea    -0x50(%ebp),%ecx
404e74:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
404e7b:	e8 d0 cb ff ff       	call   0x401a50
404e80:	89 75 e4             	mov    %esi,-0x1c(%ebp)
404e83:	56                   	push   %esi
404e84:	c6 45 fc 06          	movb   $0x6,-0x4(%ebp)
404e88:	e8 1b 1c 00 00       	call   0x406aa8
404e8d:	8b 16                	mov    (%esi),%edx
404e8f:	83 c4 04             	add    $0x4,%esp
404e92:	8b ce                	mov    %esi,%ecx
404e94:	ff 52 04             	call   *0x4(%edx)
404e97:	89 35 e8 52 43 00    	mov    %esi,0x4352e8
404e9d:	8d 4d e8             	lea    -0x18(%ebp),%ecx
404ea0:	e8 f4 05 00 00       	call   0x405499
404ea5:	8b c6                	mov    %esi,%eax
404ea7:	8b 4d f4             	mov    -0xc(%ebp),%ecx
404eaa:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
404eb1:	59                   	pop    %ecx
404eb2:	5f                   	pop    %edi
404eb3:	5e                   	pop    %esi
404eb4:	5b                   	pop    %ebx
404eb5:	8b e5                	mov    %ebp,%esp
404eb7:	5d                   	pop    %ebp
404eb8:	c3                   	ret
404eb9:	e8 ed 06 00 00       	call   0x4055ab
404ebe:	e8 e8 06 00 00       	call   0x4055ab
404ec3:	e8 e3 06 00 00       	call   0x4055ab
404ec8:	cc                   	int3
404ec9:	cc                   	int3
404eca:	cc                   	int3
404ecb:	cc                   	int3
404ecc:	cc                   	int3
404ecd:	cc                   	int3
404ece:	cc                   	int3
404ecf:	cc                   	int3
404ed0:	55                   	push   %ebp
404ed1:	8b ec                	mov    %esp,%ebp
404ed3:	83 ec 08             	sub    $0x8,%esp
404ed6:	53                   	push   %ebx
404ed7:	8b d9                	mov    %ecx,%ebx
404ed9:	b9 ff ff ff 7f       	mov    $0x7fffffff,%ecx
404ede:	8b c1                	mov    %ecx,%eax
404ee0:	56                   	push   %esi
404ee1:	8b 75 08             	mov    0x8(%ebp),%esi
404ee4:	8b 53 10             	mov    0x10(%ebx),%edx
404ee7:	2b c2                	sub    %edx,%eax
404ee9:	89 55 fc             	mov    %edx,-0x4(%ebp)
404eec:	57                   	push   %edi
404eed:	3b c6                	cmp    %esi,%eax
404eef:	0f 82 1d 01 00 00    	jb     0x405012
404ef5:	8b 7b 14             	mov    0x14(%ebx),%edi
404ef8:	8d 04 32             	lea    (%edx,%esi,1),%eax
404efb:	8b f0                	mov    %eax,%esi
404efd:	89 45 f8             	mov    %eax,-0x8(%ebp)
404f00:	83 ce 0f             	or     $0xf,%esi
404f03:	89 7d 08             	mov    %edi,0x8(%ebp)
404f06:	3b f1                	cmp    %ecx,%esi
404f08:	76 26                	jbe    0x404f30
404f0a:	8b f1                	mov    %ecx,%esi
404f0c:	b8 23 00 00 80       	mov    $0x80000023,%eax
404f11:	50                   	push   %eax
404f12:	e8 05 27 00 00       	call   0x40761c
404f17:	83 c4 04             	add    $0x4,%esp
404f1a:	85 c0                	test   %eax,%eax
404f1c:	0f 84 fa 00 00 00    	je     0x40501c
404f22:	8b 55 fc             	mov    -0x4(%ebp),%edx
404f25:	8d 78 23             	lea    0x23(%eax),%edi
404f28:	83 e7 e0             	and    $0xffffffe0,%edi
404f2b:	89 47 fc             	mov    %eax,-0x4(%edi)
404f2e:	eb 46                	jmp    0x404f76
404f30:	8b c7                	mov    %edi,%eax
404f32:	d1 e8                	shr    $1,%eax
404f34:	2b c8                	sub    %eax,%ecx
404f36:	3b f9                	cmp    %ecx,%edi
404f38:	76 07                	jbe    0x404f41
404f3a:	be ff ff ff 7f       	mov    $0x7fffffff,%esi
404f3f:	eb cb                	jmp    0x404f0c
404f41:	03 c7                	add    %edi,%eax
404f43:	3b f0                	cmp    %eax,%esi
404f45:	0f 42 f0             	cmovb  %eax,%esi
404f48:	8d 4e 01             	lea    0x1(%esi),%ecx
404f4b:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
404f51:	72 0d                	jb     0x404f60
404f53:	8d 41 23             	lea    0x23(%ecx),%eax
404f56:	3b c1                	cmp    %ecx,%eax
404f58:	0f 86 b9 00 00 00    	jbe    0x405017
404f5e:	eb b1                	jmp    0x404f11
404f60:	85 c9                	test   %ecx,%ecx
404f62:	74 10                	je     0x404f74
404f64:	51                   	push   %ecx
404f65:	e8 b2 26 00 00       	call   0x40761c
404f6a:	8b 55 fc             	mov    -0x4(%ebp),%edx
404f6d:	83 c4 04             	add    $0x4,%esp
404f70:	8b f8                	mov    %eax,%edi
404f72:	eb 02                	jmp    0x404f76
404f74:	33 ff                	xor    %edi,%edi
404f76:	8b 45 f8             	mov    -0x8(%ebp),%eax
404f79:	89 43 10             	mov    %eax,0x10(%ebx)
404f7c:	8b 45 14             	mov    0x14(%ebp),%eax
404f7f:	89 73 14             	mov    %esi,0x14(%ebx)
404f82:	8d 34 17             	lea    (%edi,%edx,1),%esi
404f85:	03 c6                	add    %esi,%eax
404f87:	89 75 f8             	mov    %esi,-0x8(%ebp)
404f8a:	83 7d 08 10          	cmpl   $0x10,0x8(%ebp)
404f8e:	89 45 fc             	mov    %eax,-0x4(%ebp)
404f91:	52                   	push   %edx
404f92:	72 55                	jb     0x404fe9
404f94:	8b 33                	mov    (%ebx),%esi
404f96:	56                   	push   %esi
404f97:	57                   	push   %edi
404f98:	e8 d3 39 00 00       	call   0x408970
404f9d:	ff 75 14             	push   0x14(%ebp)
404fa0:	ff 75 10             	push   0x10(%ebp)
404fa3:	ff 75 f8             	push   -0x8(%ebp)
404fa6:	e8 c5 39 00 00       	call   0x408970
404fab:	8b 45 fc             	mov    -0x4(%ebp),%eax
404fae:	83 c4 18             	add    $0x18,%esp
404fb1:	8b 4d 08             	mov    0x8(%ebp),%ecx
404fb4:	41                   	inc    %ecx
404fb5:	c6 00 00             	movb   $0x0,(%eax)
404fb8:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
404fbe:	72 12                	jb     0x404fd2
404fc0:	8b 56 fc             	mov    -0x4(%esi),%edx
404fc3:	83 c1 23             	add    $0x23,%ecx
404fc6:	2b f2                	sub    %edx,%esi
404fc8:	8d 46 fc             	lea    -0x4(%esi),%eax
404fcb:	83 f8 1f             	cmp    $0x1f,%eax
404fce:	77 4c                	ja     0x40501c
404fd0:	8b f2                	mov    %edx,%esi
404fd2:	51                   	push   %ecx
404fd3:	56                   	push   %esi
404fd4:	e8 73 26 00 00       	call   0x40764c
404fd9:	83 c4 08             	add    $0x8,%esp
404fdc:	89 3b                	mov    %edi,(%ebx)
404fde:	8b c3                	mov    %ebx,%eax
404fe0:	5f                   	pop    %edi
404fe1:	5e                   	pop    %esi
404fe2:	5b                   	pop    %ebx
404fe3:	8b e5                	mov    %ebp,%esp
404fe5:	5d                   	pop    %ebp
404fe6:	c2 10 00             	ret    $0x10
404fe9:	53                   	push   %ebx
404fea:	57                   	push   %edi
404feb:	e8 80 39 00 00       	call   0x408970
404ff0:	ff 75 14             	push   0x14(%ebp)
404ff3:	ff 75 10             	push   0x10(%ebp)
404ff6:	56                   	push   %esi
404ff7:	e8 74 39 00 00       	call   0x408970
404ffc:	8b 45 fc             	mov    -0x4(%ebp),%eax
404fff:	83 c4 18             	add    $0x18,%esp
405002:	c6 00 00             	movb   $0x0,(%eax)
405005:	8b c3                	mov    %ebx,%eax
405007:	89 3b                	mov    %edi,(%ebx)
405009:	5f                   	pop    %edi
40500a:	5e                   	pop    %esi
40500b:	5b                   	pop    %ebx
40500c:	8b e5                	mov    %ebp,%esp
40500e:	5d                   	pop    %ebp
40500f:	c2 10 00             	ret    $0x10
405012:	e8 99 c3 ff ff       	call   0x4013b0
405017:	e8 c4 c2 ff ff       	call   0x4012e0
40501c:	e8 70 80 00 00       	call   0x40d091
405021:	cc                   	int3
405022:	cc                   	int3
405023:	cc                   	int3
405024:	cc                   	int3
405025:	cc                   	int3
405026:	cc                   	int3
405027:	cc                   	int3
405028:	cc                   	int3
405029:	cc                   	int3
40502a:	cc                   	int3
40502b:	cc                   	int3
40502c:	cc                   	int3
40502d:	cc                   	int3
40502e:	cc                   	int3
40502f:	cc                   	int3
405030:	55                   	push   %ebp
405031:	8b ec                	mov    %esp,%ebp
405033:	8b 4d 0c             	mov    0xc(%ebp),%ecx
405036:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40503c:	72 18                	jb     0x405056
40503e:	8b 45 08             	mov    0x8(%ebp),%eax
405041:	83 c1 23             	add    $0x23,%ecx
405044:	8b 50 fc             	mov    -0x4(%eax),%edx
405047:	2b c2                	sub    %edx,%eax
405049:	83 c0 fc             	add    $0xfffffffc,%eax
40504c:	83 f8 1f             	cmp    $0x1f,%eax
40504f:	76 08                	jbe    0x405059
405051:	e9 3b 80 00 00       	jmp    0x40d091
405056:	8b 55 08             	mov    0x8(%ebp),%edx
405059:	89 4d 0c             	mov    %ecx,0xc(%ebp)
40505c:	89 55 08             	mov    %edx,0x8(%ebp)
40505f:	5d                   	pop    %ebp
405060:	e9 e7 25 00 00       	jmp    0x40764c
405065:	cc                   	int3
405066:	cc                   	int3
405067:	cc                   	int3
405068:	cc                   	int3
405069:	cc                   	int3
40506a:	cc                   	int3
40506b:	cc                   	int3
40506c:	cc                   	int3
40506d:	cc                   	int3
40506e:	cc                   	int3
40506f:	cc                   	int3
405070:	55                   	push   %ebp
405071:	8b ec                	mov    %esp,%ebp
405073:	8b 45 08             	mov    0x8(%ebp),%eax
405076:	3d 00 10 00 00       	cmp    $0x1000,%eax
40507b:	72 2a                	jb     0x4050a7
40507d:	8d 48 23             	lea    0x23(%eax),%ecx
405080:	3b c8                	cmp    %eax,%ecx
405082:	0f 86 58 c2 ff ff    	jbe    0x4012e0
405088:	51                   	push   %ecx
405089:	e8 8e 25 00 00       	call   0x40761c
40508e:	8b c8                	mov    %eax,%ecx
405090:	83 c4 04             	add    $0x4,%esp
405093:	85 c9                	test   %ecx,%ecx
405095:	74 0b                	je     0x4050a2
405097:	8d 41 23             	lea    0x23(%ecx),%eax
40509a:	83 e0 e0             	and    $0xffffffe0,%eax
40509d:	89 48 fc             	mov    %ecx,-0x4(%eax)
4050a0:	5d                   	pop    %ebp
4050a1:	c3                   	ret
4050a2:	e9 ea 7f 00 00       	jmp    0x40d091
4050a7:	85 c0                	test   %eax,%eax
4050a9:	74 09                	je     0x4050b4
4050ab:	89 45 08             	mov    %eax,0x8(%ebp)
4050ae:	5d                   	pop    %ebp
4050af:	e9 68 25 00 00       	jmp    0x40761c
4050b4:	33 c0                	xor    %eax,%eax
4050b6:	5d                   	pop    %ebp