404e10:	8b ff                	mov    %edi,%edi
404e12:	55                   	push   %ebp
404e13:	8b ec                	mov    %esp,%ebp
404e15:	51                   	push   %ecx
404e16:	51                   	push   %ecx
404e17:	56                   	push   %esi
404e18:	57                   	push   %edi
404e19:	ff 75 0c             	push   0xc(%ebp)
404e1c:	8b f9                	mov    %ecx,%edi
404e1e:	8d 4d f8             	lea    -0x8(%ebp),%ecx
404e21:	ff 75 08             	push   0x8(%ebp)
404e24:	51                   	push   %ecx
404e25:	8b 07                	mov    (%edi),%eax
404e27:	8b 70 0c             	mov    0xc(%eax),%esi
404e2a:	8b ce                	mov    %esi,%ecx
404e2c:	ff 15 10 22 41 00    	call   *0x412210
404e32:	8b cf                	mov    %edi,%ecx
404e34:	ff d6                	call   *%esi
404e36:	8b c8                	mov    %eax,%ecx
404e38:	e8 86 ff ff ff       	call   0x404dc3
404e3d:	5f                   	pop    %edi
404e3e:	5e                   	pop    %esi
404e3f:	c9                   	leave
404e40:	c2 08 00             	ret    $0x8
404e43:	cc                   	int3
404e44:	cc                   	int3
404e45:	cc                   	int3
404e46:	cc                   	int3
404e47:	cc                   	int3
404e48:	cc                   	int3
404e49:	cc                   	int3
404e4a:	cc                   	int3
404e4b:	cc                   	int3
404e4c:	cc                   	int3
404e4d:	cc                   	int3
404e4e:	cc                   	int3
404e4f:	cc                   	int3
404e50:	8b ff                	mov    %edi,%edi
404e52:	55                   	push   %ebp
404e53:	8b ec                	mov    %esp,%ebp
404e55:	8b 45 08             	mov    0x8(%ebp),%eax
404e58:	3b 48 04             	cmp    0x4(%eax),%ecx
404e5b:	75 0b                	jne    0x404e68
404e5d:	8b 00                	mov    (%eax),%eax
404e5f:	3b 45 0c             	cmp    0xc(%ebp),%eax
404e62:	75 04                	jne    0x404e68
404e64:	b0 01                	mov    $0x1,%al
404e66:	eb 02                	jmp    0x404e6a
404e68:	32 c0                	xor    %al,%al
404e6a:	5d                   	pop    %ebp
404e6b:	c2 08 00             	ret    $0x8
404e6e:	cc                   	int3
404e6f:	cc                   	int3
404e70:	b8 2c 21 40 00       	mov    $0x40212c,%eax
404e75:	c3                   	ret
404e76:	cc                   	int3
404e77:	cc                   	int3
404e78:	cc                   	int3
404e79:	cc                   	int3
404e7a:	cc                   	int3
404e7b:	cc                   	int3
404e7c:	cc                   	int3
404e7d:	cc                   	int3
404e7e:	cc                   	int3
404e7f:	cc                   	int3
404e80:	8b ff                	mov    %edi,%edi
404e82:	55                   	push   %ebp
404e83:	8b ec                	mov    %esp,%ebp
404e85:	ff 75 0c             	push   0xc(%ebp)
404e88:	e8 e7 91 00 00       	call   0x40e074
404e8d:	59                   	pop    %ecx
404e8e:	85 c0                	test   %eax,%eax
404e90:	75 05                	jne    0x404e97
404e92:	b8 34 21 40 00       	mov    $0x402134,%eax
404e97:	8b 4d 08             	mov    0x8(%ebp),%ecx
404e9a:	50                   	push   %eax
404e9b:	e8 c0 00 00 00       	call   0x404f60
404ea0:	8b 45 08             	mov    0x8(%ebp),%eax
404ea3:	5d                   	pop    %ebp
404ea4:	c2 08 00             	ret    $0x8
404ea7:	cc                   	int3
404ea8:	cc                   	int3
404ea9:	cc                   	int3
404eaa:	cc                   	int3
404eab:	cc                   	int3
404eac:	cc                   	int3
404ead:	cc                   	int3
404eae:	cc                   	int3
404eaf:	cc                   	int3
404eb0:	b8 44 21 40 00       	mov    $0x402144,%eax
404eb5:	c3                   	ret
404eb6:	cc                   	int3
404eb7:	cc                   	int3
404eb8:	cc                   	int3
404eb9:	cc                   	int3
404eba:	cc                   	int3
404ebb:	cc                   	int3
404ebc:	cc                   	int3
404ebd:	cc                   	int3
404ebe:	cc                   	int3
404ebf:	cc                   	int3
404ec0:	8b ff                	mov    %edi,%edi
404ec2:	55                   	push   %ebp
404ec3:	8b ec                	mov    %esp,%ebp
404ec5:	83 7d 0c 01          	cmpl   $0x1,0xc(%ebp)
404ec9:	75 0f                	jne    0x404eda
404ecb:	8b 4d 08             	mov    0x8(%ebp),%ecx
404ece:	68 50 21 40 00       	push   $0x402150
404ed3:	e8 88 00 00 00       	call   0x404f60
404ed8:	eb 0b                	jmp    0x404ee5
404eda:	ff 75 0c             	push   0xc(%ebp)
404edd:	ff 75 08             	push   0x8(%ebp)
404ee0:	e8 9b ff ff ff       	call   0x404e80
404ee5:	8b 45 08             	mov    0x8(%ebp),%eax
404ee8:	5d                   	pop    %ebp
404ee9:	c2 08 00             	ret    $0x8
404eec:	cc                   	int3
404eed:	cc                   	int3
404eee:	cc                   	int3
404eef:	cc                   	int3
404ef0:	b8 68 21 40 00       	mov    $0x402168,%eax
404ef5:	c3                   	ret
404ef6:	cc                   	int3
404ef7:	cc                   	int3
404ef8:	cc                   	int3
404ef9:	cc                   	int3
404efa:	cc                   	int3
404efb:	cc                   	int3
404efc:	cc                   	int3
404efd:	cc                   	int3
404efe:	cc                   	int3
404eff:	cc                   	int3
404f00:	8b ff                	mov    %edi,%edi
404f02:	55                   	push   %ebp
404f03:	8b ec                	mov    %esp,%ebp
404f05:	ff 75 0c             	push   0xc(%ebp)
404f08:	e8 93 91 00 00       	call   0x40e0a0
404f0d:	59                   	pop    %ecx
404f0e:	85 c0                	test   %eax,%eax
404f10:	75 05                	jne    0x404f17
404f12:	b8 34 21 40 00       	mov    $0x402134,%eax
404f17:	8b 4d 08             	mov    0x8(%ebp),%ecx
404f1a:	50                   	push   %eax
404f1b:	e8 40 00 00 00       	call   0x404f60
404f20:	8b 45 08             	mov    0x8(%ebp),%eax
404f23:	5d                   	pop    %ebp
404f24:	c2 08 00             	ret    $0x8
404f27:	cc                   	int3
404f28:	cc                   	int3
404f29:	cc                   	int3
404f2a:	cc                   	int3
404f2b:	cc                   	int3
404f2c:	cc                   	int3
404f2d:	cc                   	int3
404f2e:	cc                   	int3
404f2f:	cc                   	int3
404f30:	8b ff                	mov    %edi,%edi
404f32:	55                   	push   %ebp
404f33:	8b ec                	mov    %esp,%ebp
404f35:	56                   	push   %esi
404f36:	8b 75 0c             	mov    0xc(%ebp),%esi
404f39:	56                   	push   %esi
404f3a:	e8 35 91 00 00       	call   0x40e074
404f3f:	59                   	pop    %ecx
404f40:	8b 4d 08             	mov    0x8(%ebp),%ecx
404f43:	85 c0                	test   %eax,%eax
404f45:	8b c1                	mov    %ecx,%eax
404f47:	89 31                	mov    %esi,(%ecx)
404f49:	5e                   	pop    %esi
404f4a:	74 09                	je     0x404f55
404f4c:	c7 41 04 34 12 41 00 	movl   $0x411234,0x4(%ecx)
404f53:	eb 07                	jmp    0x404f5c
404f55:	c7 41 04 30 12 41 00 	movl   $0x411230,0x4(%ecx)
404f5c:	5d                   	pop    %ebp
404f5d:	c2 08 00             	ret    $0x8
404f60:	8b ff                	mov    %edi,%edi
404f62:	55                   	push   %ebp
404f63:	8b ec                	mov    %esp,%ebp
404f65:	56                   	push   %esi
404f66:	ff 75 08             	push   0x8(%ebp)
404f69:	8b f1                	mov    %ecx,%esi
404f6b:	83 66 10 00          	andl   $0x0,0x10(%esi)
404f6f:	c7 46 14 0f 00 00 00 	movl   $0xf,0x14(%esi)
404f76:	c6 06 00             	movb   $0x0,(%esi)
404f79:	e8 02 fe ff ff       	call   0x404d80
404f7e:	59                   	pop    %ecx
404f7f:	50                   	push   %eax
404f80:	ff 75 08             	push   0x8(%ebp)
404f83:	8b ce                	mov    %esi,%ecx
404f85:	e8 59 00 00 00       	call   0x404fe3
404f8a:	8b c6                	mov    %esi,%eax
404f8c:	5e                   	pop    %esi
404f8d:	5d                   	pop    %ebp
404f8e:	c2 04 00             	ret    $0x4
404f91:	8b ff                	mov    %edi,%edi
404f93:	55                   	push   %ebp
404f94:	8b ec                	mov    %esp,%ebp
404f96:	80 7d 08 00          	cmpb   $0x0,0x8(%ebp)
404f9a:	56                   	push   %esi
404f9b:	57                   	push   %edi
404f9c:	8b 7d 0c             	mov    0xc(%ebp),%edi
404f9f:	8b f1                	mov    %ecx,%esi
404fa1:	74 21                	je     0x404fc4
404fa3:	83 7e 14 10          	cmpl   $0x10,0x14(%esi)
404fa7:	72 1b                	jb     0x404fc4
404fa9:	53                   	push   %ebx
404faa:	8b 1e                	mov    (%esi),%ebx
404fac:	85 ff                	test   %edi,%edi
404fae:	74 0b                	je     0x404fbb
404fb0:	57                   	push   %edi
404fb1:	53                   	push   %ebx
404fb2:	56                   	push   %esi
404fb3:	e8 6e 97 00 00       	call   0x40e726
404fb8:	83 c4 0c             	add    $0xc,%esp
404fbb:	53                   	push   %ebx
404fbc:	ff 15 e4 21 41 00    	call   *0x4121e4
404fc2:	59                   	pop    %ecx
404fc3:	5b                   	pop    %ebx
404fc4:	89 7e 10             	mov    %edi,0x10(%esi)
404fc7:	c7 46 14 0f 00 00 00 	movl   $0xf,0x14(%esi)
404fce:	c6 04 37 00          	movb   $0x0,(%edi,%esi,1)
404fd2:	5f                   	pop    %edi
404fd3:	5e                   	pop    %esi
404fd4:	5d                   	pop    %ebp
404fd5:	c2 08 00             	ret    $0x8
404fd8:	68 70 21 40 00       	push   $0x402170
404fdd:	e8 70 90 00 00       	call   0x40e052
404fe2:	cc                   	int3
404fe3:	8b ff                	mov    %edi,%edi
404fe5:	55                   	push   %ebp
404fe6:	8b ec                	mov    %esp,%ebp
404fe8:	53                   	push   %ebx
404fe9:	8b 5d 08             	mov    0x8(%ebp),%ebx
404fec:	56                   	push   %esi
404fed:	53                   	push   %ebx
404fee:	8b f1                	mov    %ecx,%esi
404ff0:	e8 78 00 00 00       	call   0x40506d
404ff5:	84 c0                	test   %al,%al
404ff7:	74 1c                	je     0x405015
404ff9:	83 7e 14 10          	cmpl   $0x10,0x14(%esi)
404ffd:	72 04                	jb     0x405003
404fff:	8b 06                	mov    (%esi),%eax
405001:	eb 02                	jmp    0x405005
405003:	8b c6                	mov    %esi,%eax
405005:	ff 75 0c             	push   0xc(%ebp)
405008:	2b d8                	sub    %eax,%ebx
40500a:	8b ce                	mov    %esi,%ecx
40500c:	53                   	push   %ebx
40500d:	56                   	push   %esi
40500e:	e8 f5 00 00 00       	call   0x405108
405013:	eb 47                	jmp    0x40505c
405015:	57                   	push   %edi
405016:	8b 7d 0c             	mov    0xc(%ebp),%edi
405019:	8b ce                	mov    %esi,%ecx
40501b:	6a 00                	push   $0x0
40501d:	57                   	push   %edi
40501e:	e8 87 00 00 00       	call   0x4050aa
405023:	84 c0                	test   %al,%al
405025:	74 32                	je     0x405059
405027:	8b 46 14             	mov    0x14(%esi),%eax
40502a:	83 f8 10             	cmp    $0x10,%eax
40502d:	72 04                	jb     0x405033
40502f:	8b 0e                	mov    (%esi),%ecx
405031:	eb 02                	jmp    0x405035
405033:	8b ce                	mov    %esi,%ecx
405035:	85 ff                	test   %edi,%edi
405037:	74 0e                	je     0x405047
405039:	57                   	push   %edi
40503a:	53                   	push   %ebx
40503b:	51                   	push   %ecx
40503c:	e8 e5 96 00 00       	call   0x40e726
405041:	8b 46 14             	mov    0x14(%esi),%eax
405044:	83 c4 0c             	add    $0xc,%esp
405047:	89 7e 10             	mov    %edi,0x10(%esi)
40504a:	83 f8 10             	cmp    $0x10,%eax
40504d:	72 04                	jb     0x405053
40504f:	8b 06                	mov    (%esi),%eax
405051:	eb 02                	jmp    0x405055
405053:	8b c6                	mov    %esi,%eax
405055:	c6 04 38 00          	movb   $0x0,(%eax,%edi,1)
405059:	8b c6                	mov    %esi,%eax
40505b:	5f                   	pop    %edi
40505c:	5e                   	pop    %esi
40505d:	5b                   	pop    %ebx
40505e:	5d                   	pop    %ebp
40505f:	c2 08 00             	ret    $0x8
405062:	68 88 21 40 00       	push   $0x402188
405067:	e8 c4 8f 00 00       	call   0x40e030
40506c:	cc                   	int3
40506d:	8b ff                	mov    %edi,%edi
40506f:	55                   	push   %ebp
405070:	8b ec                	mov    %esp,%ebp
405072:	8b 55 08             	mov    0x8(%ebp),%edx
405075:	85 d2                	test   %edx,%edx
405077:	74 2b                	je     0x4050a4
405079:	83 79 14 10          	cmpl   $0x10,0x14(%ecx)
40507d:	72 04                	jb     0x405083
40507f:	8b 01                	mov    (%ecx),%eax
405081:	eb 02                	jmp    0x405085
405083:	8b c1                	mov    %ecx,%eax
405085:	3b d0                	cmp    %eax,%edx
405087:	72 1b                	jb     0x4050a4
405089:	83 79 14 10          	cmpl   $0x10,0x14(%ecx)
40508d:	56                   	push   %esi
40508e:	72 04                	jb     0x405094
405090:	8b 31                	mov    (%ecx),%esi
405092:	eb 02                	jmp    0x405096
405094:	8b f1                	mov    %ecx,%esi
405096:	8b 41 10             	mov    0x10(%ecx),%eax
405099:	03 c6                	add    %esi,%eax
40509b:	5e                   	pop    %esi
40509c:	3b c2                	cmp    %edx,%eax
40509e:	76 04                	jbe    0x4050a4
4050a0:	b0 01                	mov    $0x1,%al
4050a2:	eb 02                	jmp    0x4050a6
4050a4:	32 c0                	xor    %al,%al
4050a6:	5d                   	pop    %ebp
4050a7:	c2 04 00             	ret    $0x4
4050aa:	8b ff                	mov    %edi,%edi
4050ac:	55                   	push   %ebp
4050ad:	8b ec                	mov    %esp,%ebp
4050af:	56                   	push   %esi
4050b0:	8b 75 08             	mov    0x8(%ebp),%esi
4050b3:	83 fe fe             	cmp    $0xfffffffe,%esi
4050b6:	77 4a                	ja     0x405102
4050b8:	39 71 14             	cmp    %esi,0x14(%ecx)
4050bb:	73 0b                	jae    0x4050c8
4050bd:	ff 71 10             	push   0x10(%ecx)
4050c0:	56                   	push   %esi
4050c1:	e8 d8 00 00 00       	call   0x40519e
4050c6:	eb 30                	jmp    0x4050f8
4050c8:	80 7d 0c 00          	cmpb   $0x0,0xc(%ebp)
4050cc:	74 18                	je     0x4050e6
4050ce:	83 fe 10             	cmp    $0x10,%esi
4050d1:	73 13                	jae    0x4050e6
4050d3:	8b 41 10             	mov    0x10(%ecx),%eax
4050d6:	3b f0                	cmp    %eax,%esi
4050d8:	73 02                	jae    0x4050dc
4050da:	8b c6                	mov    %esi,%eax
4050dc:	50                   	push   %eax
4050dd:	6a 01                	push   $0x1
4050df:	e8 ad fe ff ff       	call   0x404f91
4050e4:	eb 12                	jmp    0x4050f8
4050e6:	85 f6                	test   %esi,%esi
4050e8:	75 10                	jne    0x4050fa
4050ea:	21 71 10             	and    %esi,0x10(%ecx)
4050ed:	83 79 14 10          	cmpl   $0x10,0x14(%ecx)
4050f1:	72 02                	jb     0x4050f5
4050f3:	8b 09                	mov    (%ecx),%ecx
4050f5:	c6 01 00             	movb   $0x0,(%ecx)