411d60:	0f 85 91 00 00 00    	jne    0x411df7
411d66:	6a 78                	push   $0x78
411d68:	8d 45 84             	lea    -0x7c(%ebp),%eax
411d6b:	50                   	push   %eax
411d6c:	8b 46 10             	mov    0x10(%esi),%eax
411d6f:	f7 d8                	neg    %eax
411d71:	1b c0                	sbb    %eax,%eax
411d73:	25 02 f0 ff ff       	and    $0xfffff002,%eax
411d78:	05 01 10 00 00       	add    $0x1001,%eax
411d7d:	50                   	push   %eax
411d7e:	57                   	push   %edi
411d7f:	ff d3                	call   *%ebx
411d81:	85 c0                	test   %eax,%eax
411d83:	74 bf                	je     0x411d44
411d85:	8d 45 84             	lea    -0x7c(%ebp),%eax
411d88:	50                   	push   %eax
411d89:	ff 36                	push   (%esi)
411d8b:	e8 61 35 00 00       	call   0x4152f1
411d90:	85 c0                	test   %eax,%eax
411d92:	59                   	pop    %ecx
411d93:	59                   	pop    %ecx
411d94:	75 0c                	jne    0x411da2
411d96:	81 4e 08 04 03 00 00 	orl    $0x304,0x8(%esi)
411d9d:	89 7e 18             	mov    %edi,0x18(%esi)
411da0:	eb 52                	jmp    0x411df4
411da2:	f6 46 08 02          	testb  $0x2,0x8(%esi)
411da6:	75 4f                	jne    0x411df7
411da8:	8b 46 0c             	mov    0xc(%esi),%eax
411dab:	85 c0                	test   %eax,%eax
411dad:	74 2c                	je     0x411ddb
411daf:	50                   	push   %eax
411db0:	8d 45 84             	lea    -0x7c(%ebp),%eax
411db3:	50                   	push   %eax
411db4:	ff 36                	push   (%esi)
411db6:	e8 76 36 00 00       	call   0x415431
411dbb:	83 c4 0c             	add    $0xc,%esp
411dbe:	85 c0                	test   %eax,%eax
411dc0:	75 19                	jne    0x411ddb
411dc2:	ff 36                	push   (%esi)
411dc4:	83 4e 08 02          	orl    $0x2,0x8(%esi)
411dc8:	89 7e 1c             	mov    %edi,0x1c(%esi)
411dcb:	e8 90 49 ff ff       	call   0x406760
411dd0:	3b 46 0c             	cmp    0xc(%esi),%eax
411dd3:	59                   	pop    %ecx
411dd4:	75 21                	jne    0x411df7
411dd6:	89 7e 18             	mov    %edi,0x18(%esi)
411dd9:	eb 1c                	jmp    0x411df7
411ddb:	8b 56 08             	mov    0x8(%esi),%edx
411dde:	f6 c2 01             	test   $0x1,%dl
411de1:	75 14                	jne    0x411df7
411de3:	57                   	push   %edi
411de4:	e8 97 fd ff ff       	call   0x411b80
411de9:	85 c0                	test   %eax,%eax
411deb:	59                   	pop    %ecx
411dec:	74 09                	je     0x411df7
411dee:	83 ca 01             	or     $0x1,%edx
411df1:	89 56 08             	mov    %edx,0x8(%esi)
411df4:	89 7e 1c             	mov    %edi,0x1c(%esi)
411df7:	8b 4e 08             	mov    0x8(%esi),%ecx
411dfa:	b8 00 03 00 00       	mov    $0x300,%eax
411dff:	23 c8                	and    %eax,%ecx
411e01:	3b c8                	cmp    %eax,%ecx
411e03:	0f 84 9e 00 00 00    	je     0x411ea7
411e09:	6a 78                	push   $0x78
411e0b:	8d 45 84             	lea    -0x7c(%ebp),%eax
411e0e:	50                   	push   %eax
411e0f:	8b 46 10             	mov    0x10(%esi),%eax
411e12:	f7 d8                	neg    %eax
411e14:	1b c0                	sbb    %eax,%eax
411e16:	25 02 f0 ff ff       	and    $0xfffff002,%eax
411e1b:	05 01 10 00 00       	add    $0x1001,%eax
411e20:	50                   	push   %eax
411e21:	57                   	push   %edi
411e22:	ff d3                	call   *%ebx
411e24:	85 c0                	test   %eax,%eax
411e26:	0f 84 18 ff ff ff    	je     0x411d44
411e2c:	8d 45 84             	lea    -0x7c(%ebp),%eax
411e2f:	50                   	push   %eax
411e30:	ff 36                	push   (%esi)
411e32:	e8 ba 34 00 00       	call   0x4152f1
411e37:	59                   	pop    %ecx
411e38:	33 db                	xor    %ebx,%ebx
411e3a:	85 c0                	test   %eax,%eax
411e3c:	59                   	pop    %ecx
411e3d:	75 2f                	jne    0x411e6e
411e3f:	81 4e 08 00 02 00 00 	orl    $0x200,0x8(%esi)
411e46:	39 5e 10             	cmp    %ebx,0x10(%esi)
411e49:	8b 46 08             	mov    0x8(%esi),%eax
411e4c:	74 0a                	je     0x411e58
411e4e:	0d 00 01 00 00       	or     $0x100,%eax
411e53:	89 46 08             	mov    %eax,0x8(%esi)
411e56:	eb 47                	jmp    0x411e9f
411e58:	39 5e 0c             	cmp    %ebx,0xc(%esi)
411e5b:	74 3b                	je     0x411e98
411e5d:	ff 36                	push   (%esi)
411e5f:	e8 fc 48 ff ff       	call   0x406760
411e64:	3b 46 0c             	cmp    0xc(%esi),%eax
411e67:	59                   	pop    %ecx
411e68:	75 2e                	jne    0x411e98
411e6a:	6a 01                	push   $0x1
411e6c:	eb 1c                	jmp    0x411e8a
411e6e:	39 5e 10             	cmp    %ebx,0x10(%esi)
411e71:	75 34                	jne    0x411ea7
411e73:	39 5e 0c             	cmp    %ebx,0xc(%esi)
411e76:	74 2f                	je     0x411ea7
411e78:	8d 45 84             	lea    -0x7c(%ebp),%eax
411e7b:	50                   	push   %eax
411e7c:	ff 36                	push   (%esi)
411e7e:	e8 6e 34 00 00       	call   0x4152f1
411e83:	85 c0                	test   %eax,%eax
411e85:	59                   	pop    %ecx
411e86:	59                   	pop    %ecx
411e87:	75 1e                	jne    0x411ea7
411e89:	53                   	push   %ebx
411e8a:	57                   	push   %edi
411e8b:	8b ce                	mov    %esi,%ecx
411e8d:	e8 ef fd ff ff       	call   0x411c81
411e92:	85 c0                	test   %eax,%eax
411e94:	59                   	pop    %ecx
411e95:	59                   	pop    %ecx
411e96:	74 0f                	je     0x411ea7
411e98:	81 4e 08 00 01 00 00 	orl    $0x100,0x8(%esi)
411e9f:	39 5e 18             	cmp    %ebx,0x18(%esi)
411ea2:	75 03                	jne    0x411ea7
411ea4:	89 7e 18             	mov    %edi,0x18(%esi)
411ea7:	8b 46 08             	mov    0x8(%esi),%eax
411eaa:	c1 e8 02             	shr    $0x2,%eax
411ead:	f7 d0                	not    %eax
411eaf:	83 e0 01             	and    $0x1,%eax
411eb2:	8b 4d fc             	mov    -0x4(%ebp),%ecx
411eb5:	5f                   	pop    %edi
411eb6:	5e                   	pop    %esi
411eb7:	33 cd                	xor    %ebp,%ecx
411eb9:	5b                   	pop    %ebx
411eba:	e8 76 40 ff ff       	call   0x405f35
411ebf:	c9                   	leave
411ec0:	c2 04 00             	ret    $0x4
411ec3:	55                   	push   %ebp
411ec4:	8b ec                	mov    %esp,%ebp
411ec6:	83 ec 7c             	sub    $0x7c,%esp
411ec9:	a1 20 c5 41 00       	mov    0x41c520,%eax
411ece:	33 c5                	xor    %ebp,%eax
411ed0:	89 45 fc             	mov    %eax,-0x4(%ebp)
411ed3:	56                   	push   %esi
411ed4:	57                   	push   %edi
411ed5:	8b 7d 08             	mov    0x8(%ebp),%edi
411ed8:	e8 6f a6 ff ff       	call   0x40c54c
411edd:	8b f0                	mov    %eax,%esi
411edf:	8b d7                	mov    %edi,%edx
411ee1:	81 c6 9c 00 00 00    	add    $0x9c,%esi
411ee7:	e8 b2 fc ff ff       	call   0x411b9e
411eec:	8b f8                	mov    %eax,%edi
411eee:	6a 78                	push   $0x78
411ef0:	8d 45 84             	lea    -0x7c(%ebp),%eax
411ef3:	50                   	push   %eax
411ef4:	8b 46 10             	mov    0x10(%esi),%eax
411ef7:	f7 d8                	neg    %eax
411ef9:	1b c0                	sbb    %eax,%eax
411efb:	25 02 f0 ff ff       	and    $0xfffff002,%eax
411f00:	05 01 10 00 00       	add    $0x1001,%eax
411f05:	50                   	push   %eax
411f06:	57                   	push   %edi
411f07:	ff 15 68 71 41 00    	call   *0x417168
411f0d:	85 c0                	test   %eax,%eax
411f0f:	75 06                	jne    0x411f17
411f11:	21 46 08             	and    %eax,0x8(%esi)
411f14:	40                   	inc    %eax
411f15:	eb 5b                	jmp    0x411f72
411f17:	8d 45 84             	lea    -0x7c(%ebp),%eax
411f1a:	50                   	push   %eax
411f1b:	ff 36                	push   (%esi)
411f1d:	e8 cf 33 00 00       	call   0x4152f1
411f22:	85 c0                	test   %eax,%eax
411f24:	59                   	pop    %ecx
411f25:	59                   	pop    %ecx
411f26:	75 09                	jne    0x411f31
411f28:	39 46 10             	cmp    %eax,0x10(%esi)
411f2b:	75 30                	jne    0x411f5d
411f2d:	6a 01                	push   $0x1
411f2f:	eb 1e                	jmp    0x411f4f
411f31:	83 7e 10 00          	cmpl   $0x0,0x10(%esi)
411f35:	75 30                	jne    0x411f67
411f37:	83 7e 0c 00          	cmpl   $0x0,0xc(%esi)
411f3b:	74 2a                	je     0x411f67
411f3d:	8d 45 84             	lea    -0x7c(%ebp),%eax
411f40:	50                   	push   %eax
411f41:	ff 36                	push   (%esi)
411f43:	e8 a9 33 00 00       	call   0x4152f1
411f48:	85 c0                	test   %eax,%eax
411f4a:	59                   	pop    %ecx
411f4b:	59                   	pop    %ecx
411f4c:	75 19                	jne    0x411f67
411f4e:	50                   	push   %eax
411f4f:	57                   	push   %edi
411f50:	8b ce                	mov    %esi,%ecx
411f52:	e8 2a fd ff ff       	call   0x411c81
411f57:	85 c0                	test   %eax,%eax
411f59:	59                   	pop    %ecx
411f5a:	59                   	pop    %ecx
411f5b:	74 0a                	je     0x411f67
411f5d:	83 4e 08 04          	orl    $0x4,0x8(%esi)
411f61:	89 7e 18             	mov    %edi,0x18(%esi)
411f64:	89 7e 1c             	mov    %edi,0x1c(%esi)
411f67:	8b 46 08             	mov    0x8(%esi),%eax
411f6a:	c1 e8 02             	shr    $0x2,%eax
411f6d:	f7 d0                	not    %eax
411f6f:	83 e0 01             	and    $0x1,%eax
411f72:	8b 4d fc             	mov    -0x4(%ebp),%ecx
411f75:	5f                   	pop    %edi
411f76:	33 cd                	xor    %ebp,%ecx
411f78:	5e                   	pop    %esi
411f79:	e8 b7 3f ff ff       	call   0x405f35
411f7e:	c9                   	leave
411f7f:	c2 04 00             	ret    $0x4
411f82:	ff 36                	push   (%esi)
411f84:	e8 d7 47 ff ff       	call   0x406760
411f89:	ff 76 04             	push   0x4(%esi)
411f8c:	83 e8 03             	sub    $0x3,%eax
411f8f:	f7 d8                	neg    %eax
411f91:	1b c0                	sbb    %eax,%eax
411f93:	40                   	inc    %eax
411f94:	89 46 10             	mov    %eax,0x10(%esi)
411f97:	e8 c4 47 ff ff       	call   0x406760
411f9c:	83 e8 03             	sub    $0x3,%eax
411f9f:	f7 d8                	neg    %eax
411fa1:	1b c0                	sbb    %eax,%eax
411fa3:	83 66 18 00          	andl   $0x0,0x18(%esi)
411fa7:	40                   	inc    %eax
411fa8:	83 7e 10 00          	cmpl   $0x0,0x10(%esi)
411fac:	59                   	pop    %ecx
411fad:	59                   	pop    %ecx
411fae:	89 46 14             	mov    %eax,0x14(%esi)
411fb1:	74 05                	je     0x411fb8
411fb3:	6a 02                	push   $0x2
411fb5:	58                   	pop    %eax
411fb6:	eb 07                	jmp    0x411fbf
411fb8:	8b 16                	mov    (%esi),%edx
411fba:	e8 11 fc ff ff       	call   0x411bd0
411fbf:	6a 01                	push   $0x1
411fc1:	68 f3 1c 41 00       	push   $0x411cf3
411fc6:	89 46 0c             	mov    %eax,0xc(%esi)
411fc9:	ff 15 68 70 41 00    	call   *0x417068
411fcf:	8b 46 08             	mov    0x8(%esi),%eax
411fd2:	66 a9 00 01          	test   $0x100,%ax
411fd6:	74 0a                	je     0x411fe2
411fd8:	66 a9 00 02          	test   $0x200,%ax
411fdc:	74 04                	je     0x411fe2
411fde:	a8 07                	test   $0x7,%al
411fe0:	75 04                	jne    0x411fe6
411fe2:	83 66 08 00          	andl   $0x0,0x8(%esi)
411fe6:	c3                   	ret
411fe7:	ff 36                	push   (%esi)
411fe9:	e8 72 47 ff ff       	call   0x406760
411fee:	83 e8 03             	sub    $0x3,%eax
411ff1:	f7 d8                	neg    %eax
411ff3:	1b c0                	sbb    %eax,%eax
411ff5:	40                   	inc    %eax
411ff6:	59                   	pop    %ecx
411ff7:	89 46 10             	mov    %eax,0x10(%esi)
411ffa:	74 05                	je     0x412001
411ffc:	6a 02                	push   $0x2
411ffe:	58                   	pop    %eax
411fff:	eb 07                	jmp    0x412008
412001:	8b 16                	mov    (%esi),%edx
412003:	e8 c8 fb ff ff       	call   0x411bd0
412008:	6a 01                	push   $0x1
41200a:	68 c3 1e 41 00       	push   $0x411ec3
41200f:	89 46 0c             	mov    %eax,0xc(%esi)
412012:	ff 15 68 70 41 00    	call   *0x417068
412018:	f6 46 08 04          	testb  $0x4,0x8(%esi)
41201c:	75 04                	jne    0x412022
41201e:	83 66 08 00          	andl   $0x0,0x8(%esi)
412022:	c3                   	ret
412023:	53                   	push   %ebx
412024:	55                   	push   %ebp
412025:	56                   	push   %esi
412026:	57                   	push   %edi
412027:	e8 20 a5 ff ff       	call   0x40c54c
41202c:	8b 6c 24 14          	mov    0x14(%esp),%ebp
412030:	8b f0                	mov    %eax,%esi
412032:	33 db                	xor    %ebx,%ebx
412034:	81 c6 9c 00 00 00    	add    $0x9c,%esi
41203a:	3b eb                	cmp    %ebx,%ebp
41203c:	75 0c                	jne    0x41204a
41203e:	81 4e 08 04 01 00 00 	orl    $0x104,0x8(%esi)
412045:	e9 b1 00 00 00       	jmp    0x4120fb
41204a:	8d 45 40             	lea    0x40(%ebp),%eax
41204d:	3b c3                	cmp    %ebx,%eax
41204f:	8d 7e 04             	lea    0x4(%esi),%edi
412052:	89 2e                	mov    %ebp,(%esi)
412054:	89 07                	mov    %eax,(%edi)
412056:	74 14                	je     0x41206c
412058:	38 18                	cmp    %bl,(%eax)
41205a:	74 10                	je     0x41206c
41205c:	57                   	push   %edi
41205d:	6a 16                	push   $0x16
41205f:	68 a0 8e 41 00       	push   $0x418ea0
412064:	e8 40 fa ff ff       	call   0x411aa9
412069:	83 c4 0c             	add    $0xc,%esp
41206c:	8b 06                	mov    (%esi),%eax
41206e:	3b c3                	cmp    %ebx,%eax
412070:	89 5e 08             	mov    %ebx,0x8(%esi)
412073:	74 4b                	je     0x4120c0
412075:	38 18                	cmp    %bl,(%eax)
412077:	74 47                	je     0x4120c0
412079:	8b 07                	mov    (%edi),%eax
41207b:	3b c3                	cmp    %ebx,%eax
41207d:	74 0b                	je     0x41208a
41207f:	38 18                	cmp    %bl,(%eax)
412081:	74 07                	je     0x41208a
412083:	e8 fa fe ff ff       	call   0x411f82
412088:	eb 05                	jmp    0x41208f
41208a:	e8 58 ff ff ff       	call   0x411fe7
41208f:	39 5e 08             	cmp    %ebx,0x8(%esi)
412092:	75 7c                	jne    0x412110
412094:	56                   	push   %esi
412095:	6a 40                	push   $0x40
412097:	68 98 8c 41 00       	push   $0x418c98
41209c:	e8 08 fa ff ff       	call   0x411aa9
4120a1:	83 c4 0c             	add    $0xc,%esp
4120a4:	85 c0                	test   %eax,%eax
4120a6:	74 5f                	je     0x412107
4120a8:	8b 3f                	mov    (%edi),%edi
4120aa:	3b fb                	cmp    %ebx,%edi
4120ac:	74 0b                	je     0x4120b9
4120ae:	38 1f                	cmp    %bl,(%edi)
4120b0:	74 07                	je     0x4120b9
4120b2:	e8 cb fe ff ff       	call   0x411f82
4120b7:	eb 4e                	jmp    0x412107
4120b9:	e8 29 ff ff ff       	call   0x411fe7
4120be:	eb 47                	jmp    0x412107
4120c0:	8b 3f                	mov    (%edi),%edi
4120c2:	3b fb                	cmp    %ebx,%edi
4120c4:	74 2e                	je     0x4120f4
4120c6:	38 1f                	cmp    %bl,(%edi)
4120c8:	74 2a                	je     0x4120f4
4120ca:	57                   	push   %edi
4120cb:	e8 90 46 ff ff       	call   0x406760
4120d0:	83 e8 03             	sub    $0x3,%eax
4120d3:	f7 d8                	neg    %eax
4120d5:	59                   	pop    %ecx
4120d6:	1b c0                	sbb    %eax,%eax
4120d8:	6a 01                	push   $0x1
4120da:	40                   	inc    %eax
4120db:	68 eb 1b 41 00       	push   $0x411beb
4120e0:	89 46 14             	mov    %eax,0x14(%esi)
4120e3:	ff 15 68 70 41 00    	call   *0x417068
4120e9:	f6 46 08 04          	testb  $0x4,0x8(%esi)
4120ed:	75 18                	jne    0x412107
4120ef:	89 5e 08             	mov    %ebx,0x8(%esi)