417da0:	89 75 f8             	mov    %esi,-0x8(%ebp)
417da3:	e8 bc 38 00 00       	call   0x41b664
417da8:	8b c7                	mov    %edi,%eax
417daa:	5f                   	pop    %edi
417dab:	5e                   	pop    %esi
417dac:	5b                   	pop    %ebx
417dad:	c9                   	leave
417dae:	c2 04 00             	ret    $0x4
417db1:	8b ff                	mov    %edi,%edi
417db3:	55                   	push   %ebp
417db4:	8b ec                	mov    %esp,%ebp
417db6:	83 e4 f8             	and    $0xfffffff8,%esp
417db9:	83 ec 54             	sub    $0x54,%esp
417dbc:	33 d2                	xor    %edx,%edx
417dbe:	56                   	push   %esi
417dbf:	8b f1                	mov    %ecx,%esi
417dc1:	39 56 0c             	cmp    %edx,0xc(%esi)
417dc4:	0f 85 73 af 00 00    	jne    0x422d3d
417dca:	39 15 f0 89 43 00    	cmp    %edx,0x4389f0
417dd0:	74 09                	je     0x417ddb
417dd2:	6a 01                	push   $0x1
417dd4:	e8 1d 00 00 00       	call   0x417df6
417dd9:	8b d0                	mov    %eax,%edx
417ddb:	89 16                	mov    %edx,(%esi)
417ddd:	85 d2                	test   %edx,%edx
417ddf:	74 10                	je     0x417df1
417de1:	8b 02                	mov    (%edx),%eax
417de3:	89 46 08             	mov    %eax,0x8(%esi)
417de6:	89 32                	mov    %esi,(%edx)
417de8:	ff 15 f8 a1 43 00    	call   *0x43a1f8
417dee:	89 46 0c             	mov    %eax,0xc(%esi)
417df1:	5e                   	pop    %esi
417df2:	8b e5                	mov    %ebp,%esp
417df4:	5d                   	pop    %ebp
417df5:	c3                   	ret
417df6:	8b ff                	mov    %edi,%edi
417df8:	55                   	push   %ebp
417df9:	8b ec                	mov    %esp,%ebp
417dfb:	51                   	push   %ecx
417dfc:	53                   	push   %ebx
417dfd:	56                   	push   %esi
417dfe:	8b 35 f0 89 43 00    	mov    0x4389f0,%esi
417e04:	57                   	push   %edi
417e05:	ff 15 f8 a1 43 00    	call   *0x43a1f8
417e0b:	6a 0a                	push   $0xa
417e0d:	8b f8                	mov    %eax,%edi
417e0f:	33 d2                	xor    %edx,%edx
417e11:	59                   	pop    %ecx
417e12:	f7 f1                	div    %ecx
417e14:	8d 1c 96             	lea    (%esi,%edx,4),%ebx
417e17:	8b 03                	mov    (%ebx),%eax
417e19:	eb 07                	jmp    0x417e22
417e1b:	39 38                	cmp    %edi,(%eax)
417e1d:	74 3c                	je     0x417e5b
417e1f:	8b 40 04             	mov    0x4(%eax),%eax
417e22:	85 c0                	test   %eax,%eax
417e24:	75 f5                	jne    0x417e1b
417e26:	38 45 08             	cmp    %al,0x8(%ebp)
417e29:	74 35                	je     0x417e60
417e2b:	6a 0c                	push   $0xc
417e2d:	5a                   	pop    %edx
417e2e:	33 c9                	xor    %ecx,%ecx
417e30:	e8 c5 3c 00 00       	call   0x41bafa
417e35:	8b f0                	mov    %eax,%esi
417e37:	85 f6                	test   %esi,%esi
417e39:	74 25                	je     0x417e60
417e3b:	83 66 04 00          	andl   $0x0,0x4(%esi)
417e3f:	83 66 08 00          	andl   $0x0,0x8(%esi)
417e43:	89 3e                	mov    %edi,(%esi)
417e45:	8b 13                	mov    (%ebx),%edx
417e47:	8b ce                	mov    %esi,%ecx
417e49:	89 56 04             	mov    %edx,0x4(%esi)
417e4c:	8b c2                	mov    %edx,%eax
417e4e:	f0 0f b1 0b          	lock cmpxchg %ecx,(%ebx)
417e52:	3b c2                	cmp    %edx,%eax
417e54:	75 ef                	jne    0x417e45
417e56:	8d 46 08             	lea    0x8(%esi),%eax
417e59:	eb 07                	jmp    0x417e62
417e5b:	83 c0 08             	add    $0x8,%eax
417e5e:	eb 02                	jmp    0x417e62
417e60:	33 c0                	xor    %eax,%eax
417e62:	5f                   	pop    %edi
417e63:	5e                   	pop    %esi
417e64:	5b                   	pop    %ebx
417e65:	c9                   	leave
417e66:	c2 04 00             	ret    $0x4
417e69:	8b ff                	mov    %edi,%edi
417e6b:	53                   	push   %ebx
417e6c:	33 db                	xor    %ebx,%ebx
417e6e:	56                   	push   %esi
417e6f:	8b f1                	mov    %ecx,%esi
417e71:	6a 50                	push   $0x50
417e73:	53                   	push   %ebx
417e74:	8d 46 40             	lea    0x40(%esi),%eax
417e77:	89 1e                	mov    %ebx,(%esi)
417e79:	88 5e 04             	mov    %bl,0x4(%esi)
417e7c:	88 5e 34             	mov    %bl,0x34(%esi)
417e7f:	89 5e 28             	mov    %ebx,0x28(%esi)
417e82:	c7 46 2c 70 42 40 00 	movl   $0x404270,0x2c(%esi)
417e89:	89 5e 30             	mov    %ebx,0x30(%esi)
417e8c:	c7 46 38 01 00 00 00 	movl   $0x1,0x38(%esi)
417e93:	89 5e 3c             	mov    %ebx,0x3c(%esi)
417e96:	50                   	push   %eax
417e97:	89 58 50             	mov    %ebx,0x50(%eax)
417e9a:	89 58 54             	mov    %ebx,0x54(%eax)
417e9d:	e8 bf 61 00 00       	call   0x41e061
417ea2:	83 c4 0c             	add    $0xc,%esp
417ea5:	89 9e 98 00 00 00    	mov    %ebx,0x98(%esi)
417eab:	8b c6                	mov    %esi,%eax
417ead:	5e                   	pop    %esi
417eae:	5b                   	pop    %ebx
417eaf:	c2 04 00             	ret    $0x4
417eb2:	33 c0                	xor    %eax,%eax
417eb4:	56                   	push   %esi
417eb5:	8b f1                	mov    %ecx,%esi
417eb7:	50                   	push   %eax
417eb8:	50                   	push   %eax
417eb9:	50                   	push   %eax
417eba:	50                   	push   %eax
417ebb:	89 46 04             	mov    %eax,0x4(%esi)
417ebe:	c7 06 60 12 40 00    	movl   $0x401260,(%esi)
417ec4:	89 46 08             	mov    %eax,0x8(%esi)
417ec7:	89 46 10             	mov    %eax,0x10(%esi)
417eca:	c7 46 14 01 00 00 00 	movl   $0x1,0x14(%esi)
417ed1:	89 46 18             	mov    %eax,0x18(%esi)
417ed4:	ff 15 ac a2 43 00    	call   *0x43a2ac
417eda:	89 46 0c             	mov    %eax,0xc(%esi)
417edd:	8b c6                	mov    %esi,%eax
417edf:	5e                   	pop    %esi
417ee0:	c3                   	ret
417ee1:	8b ff                	mov    %edi,%edi
417ee3:	56                   	push   %esi
417ee4:	8b f1                	mov    %ecx,%esi
417ee6:	33 c9                	xor    %ecx,%ecx
417ee8:	39 4e 08             	cmp    %ecx,0x8(%esi)
417eeb:	75 21                	jne    0x417f0e
417eed:	8d 46 1c             	lea    0x1c(%esi),%eax
417ef0:	89 4e 14             	mov    %ecx,0x14(%esi)
417ef3:	50                   	push   %eax
417ef4:	51                   	push   %ecx
417ef5:	56                   	push   %esi
417ef6:	68 70 fe 40 00       	push   $0x40fe70
417efb:	51                   	push   %ecx
417efc:	51                   	push   %ecx
417efd:	ff 15 e0 a1 43 00    	call   *0x43a1e0
417f03:	89 46 08             	mov    %eax,0x8(%esi)
417f06:	85 c0                	test   %eax,%eax
417f08:	0f 84 49 ae 00 00    	je     0x422d57
417f0e:	33 c0                	xor    %eax,%eax
417f10:	5e                   	pop    %esi
417f11:	c2 04 00             	ret    $0x4
417f14:	8b ff                	mov    %edi,%edi
417f16:	56                   	push   %esi
417f17:	57                   	push   %edi
417f18:	33 ff                	xor    %edi,%edi
417f1a:	8b f1                	mov    %ecx,%esi
417f1c:	39 3d 1c 85 43 00    	cmp    %edi,0x43851c
417f22:	74 37                	je     0x417f5b
417f24:	e8 39 00 00 00       	call   0x417f62
417f29:	a3 18 85 43 00       	mov    %eax,0x438518
417f2e:	89 3d 1c 85 43 00    	mov    %edi,0x43851c
417f34:	85 c0                	test   %eax,%eax
417f36:	74 1c                	je     0x417f54
417f38:	68 00 00 10 00       	push   $0x100000
417f3d:	ff 15 e8 a1 43 00    	call   *0x43a1e8
417f43:	50                   	push   %eax
417f44:	ff 15 f4 a1 43 00    	call   *0x43a1f4
417f4a:	33 ff                	xor    %edi,%edi
417f4c:	c7 46 04 00 00 20 00 	movl   $0x200000,0x4(%esi)
417f53:	47                   	inc    %edi
417f54:	89 3e                	mov    %edi,(%esi)
417f56:	8b c6                	mov    %esi,%eax
417f58:	5f                   	pop    %edi
417f59:	5e                   	pop    %esi
417f5a:	c3                   	ret
417f5b:	a1 18 85 43 00       	mov    0x438518,%eax
417f60:	eb d2                	jmp    0x417f34
417f62:	8b ff                	mov    %edi,%edi
417f64:	55                   	push   %ebp
417f65:	8b ec                	mov    %esp,%ebp
417f67:	51                   	push   %ecx
417f68:	51                   	push   %ecx
417f69:	56                   	push   %esi
417f6a:	8d 45 fc             	lea    -0x4(%ebp),%eax
417f6d:	c7 45 fc 04 00 00 00 	movl   $0x4,-0x4(%ebp)
417f74:	50                   	push   %eax
417f75:	8d 45 f8             	lea    -0x8(%ebp),%eax
417f78:	33 f6                	xor    %esi,%esi
417f7a:	50                   	push   %eax
417f7b:	51                   	push   %ecx
417f7c:	6a 10                	push   $0x10
417f7e:	68 d4 42 40 00       	push   $0x4042d4
417f83:	ba 90 42 40 00       	mov    $0x404290,%edx
417f88:	46                   	inc    %esi
417f89:	e8 12 00 00 00       	call   0x417fa0
417f8e:	85 c0                	test   %eax,%eax
417f90:	75 09                	jne    0x417f9b
417f92:	8b 45 f8             	mov    -0x8(%ebp),%eax
417f95:	f7 d8                	neg    %eax
417f97:	1b c0                	sbb    %eax,%eax
417f99:	23 f0                	and    %eax,%esi
417f9b:	8b c6                	mov    %esi,%eax
417f9d:	5e                   	pop    %esi
417f9e:	c9                   	leave
417f9f:	c3                   	ret
417fa0:	8b ff                	mov    %edi,%edi
417fa2:	55                   	push   %ebp
417fa3:	8b ec                	mov    %esp,%ebp
417fa5:	81 ec 18 02 00 00    	sub    $0x218,%esp
417fab:	a1 08 85 43 00       	mov    0x438508,%eax
417fb0:	33 c5                	xor    %ebp,%eax
417fb2:	89 45 f8             	mov    %eax,-0x8(%ebp)
417fb5:	8b 45 18             	mov    0x18(%ebp),%eax
417fb8:	53                   	push   %ebx
417fb9:	8b 5d 14             	mov    0x14(%ebp),%ebx
417fbc:	56                   	push   %esi
417fbd:	57                   	push   %edi
417fbe:	8b 7d 08             	mov    0x8(%ebp),%edi
417fc1:	8b f2                	mov    %edx,%esi
417fc3:	89 85 e8 fd ff ff    	mov    %eax,-0x218(%ebp)
417fc9:	ba 02 00 00 80       	mov    $0x80000002,%edx
417fce:	51                   	push   %ecx
417fcf:	8d 85 ec fd ff ff    	lea    -0x214(%ebp),%eax
417fd5:	50                   	push   %eax
417fd6:	56                   	push   %esi
417fd7:	e8 97 52 00 00       	call   0x41d273
417fdc:	84 c0                	test   %al,%al
417fde:	75 2a                	jne    0x41800a
417fe0:	ff b5 e8 fd ff ff    	push   -0x218(%ebp)
417fe6:	53                   	push   %ebx
417fe7:	6a 00                	push   $0x0
417fe9:	ff 75 0c             	push   0xc(%ebp)
417fec:	57                   	push   %edi
417fed:	56                   	push   %esi
417fee:	68 02 00 00 80       	push   $0x80000002
417ff3:	ff 15 30 a2 43 00    	call   *0x43a230
417ff9:	8b 4d f8             	mov    -0x8(%ebp),%ecx
417ffc:	5f                   	pop    %edi
417ffd:	5e                   	pop    %esi
417ffe:	33 cd                	xor    %ebp,%ecx
418000:	5b                   	pop    %ebx
418001:	e8 ba 27 00 00       	call   0x41a7c0
418006:	c9                   	leave
418007:	c2 14 00             	ret    $0x14
41800a:	8d b5 ec fd ff ff    	lea    -0x214(%ebp),%esi
418010:	eb ce                	jmp    0x417fe0
418012:	8b ff                	mov    %edi,%edi
418014:	56                   	push   %esi
418015:	8b f1                	mov    %ecx,%esi
418017:	33 c9                	xor    %ecx,%ecx
418019:	39 4e 08             	cmp    %ecx,0x8(%esi)
41801c:	75 21                	jne    0x41803f
41801e:	8d 46 1c             	lea    0x1c(%esi),%eax
418021:	89 4e 14             	mov    %ecx,0x14(%esi)
418024:	50                   	push   %eax
418025:	51                   	push   %ecx
418026:	56                   	push   %esi
418027:	68 70 c0 40 00       	push   $0x40c070
41802c:	51                   	push   %ecx
41802d:	51                   	push   %ecx
41802e:	ff 15 e0 a1 43 00    	call   *0x43a1e0
418034:	89 46 08             	mov    %eax,0x8(%esi)
418037:	85 c0                	test   %eax,%eax
418039:	0f 84 33 ad 00 00    	je     0x422d72
41803f:	33 c0                	xor    %eax,%eax
418041:	5e                   	pop    %esi
418042:	c2 04 00             	ret    $0x4
418045:	8b ff                	mov    %edi,%edi
418047:	55                   	push   %ebp
418048:	8b ec                	mov    %esp,%ebp
41804a:	83 ec 20             	sub    $0x20,%esp
41804d:	56                   	push   %esi
41804e:	57                   	push   %edi
41804f:	33 f6                	xor    %esi,%esi
418051:	c7 45 f8 01 00 00 00 	movl   $0x1,-0x8(%ebp)
418058:	56                   	push   %esi
418059:	6a 18                	push   $0x18
41805b:	8d 45 e0             	lea    -0x20(%ebp),%eax
41805e:	89 75 fc             	mov    %esi,-0x4(%ebp)
418061:	50                   	push   %eax
418062:	56                   	push   %esi
418063:	6a ff                	push   $0xffffffff
418065:	ff 15 04 a5 43 00    	call   *0x43a504
41806b:	50                   	push   %eax
41806c:	ff 15 08 a5 43 00    	call   *0x43a508
418072:	bf 00 00 07 80       	mov    $0x80070000,%edi
418077:	85 c0                	test   %eax,%eax
418079:	7f 57                	jg     0x4180d2
41807b:	75 5e                	jne    0x4180db
41807d:	56                   	push   %esi
41807e:	6a 04                	push   $0x4
418080:	8d 45 fc             	lea    -0x4(%ebp),%eax
418083:	50                   	push   %eax
418084:	8b 45 e4             	mov    -0x1c(%ebp),%eax
418087:	05 64 04 00 00       	add    $0x464,%eax
41808c:	50                   	push   %eax
41808d:	6a ff                	push   $0xffffffff
41808f:	ff 15 c4 a1 43 00    	call   *0x43a1c4
418095:	85 c0                	test   %eax,%eax
418097:	0f 84 f0 ac 00 00    	je     0x422d8d
41809d:	8b c6                	mov    %esi,%eax
41809f:	85 c0                	test   %eax,%eax
4180a1:	75 3e                	jne    0x4180e1
4180a3:	56                   	push   %esi
4180a4:	6a 04                	push   $0x4
4180a6:	8d 45 f8             	lea    -0x8(%ebp),%eax
4180a9:	50                   	push   %eax
4180aa:	8b 45 e4             	mov    -0x1c(%ebp),%eax
4180ad:	05 64 04 00 00       	add    $0x464,%eax
4180b2:	50                   	push   %eax
4180b3:	6a ff                	push   $0xffffffff
4180b5:	ff 15 b0 a1 43 00    	call   *0x43a1b0
4180bb:	85 c0                	test   %eax,%eax
4180bd:	0f 84 e2 ac 00 00    	je     0x422da5
4180c3:	8b c6                	mov    %esi,%eax
4180c5:	85 c0                	test   %eax,%eax
4180c7:	78 03                	js     0x4180cc
4180c9:	8b 75 fc             	mov    -0x4(%ebp),%esi
4180cc:	5f                   	pop    %edi
4180cd:	8b c6                	mov    %esi,%eax
4180cf:	5e                   	pop    %esi
4180d0:	c9                   	leave
4180d1:	c3                   	ret
4180d2:	0f b7 c0             	movzwl %ax,%eax
4180d5:	0b c7                	or     %edi,%eax
4180d7:	85 c0                	test   %eax,%eax
4180d9:	eb a0                	jmp    0x41807b
4180db:	85 c0                	test   %eax,%eax
4180dd:	78 ed                	js     0x4180cc
4180df:	eb 9c                	jmp    0x41807d
4180e1:	85 c0                	test   %eax,%eax
4180e3:	78 e7                	js     0x4180cc
4180e5:	eb bc                	jmp    0x4180a3
4180e7:	8b ff                	mov    %edi,%edi
4180e9:	55                   	push   %ebp
4180ea:	8b ec                	mov    %esp,%ebp
4180ec:	51                   	push   %ecx
4180ed:	56                   	push   %esi
4180ee:	57                   	push   %edi
4180ef:	8b f9                	mov    %ecx,%edi
4180f1:	8d 55 fc             	lea    -0x4(%ebp),%edx
4180f4:	8b 4d 08             	mov    0x8(%ebp),%ecx
4180f7:	e8 7e 01 00 00       	call   0x41827a
4180fc:	8b f0                	mov    %eax,%esi
4180fe:	85 f6                	test   %esi,%esi
418100:	78 17                	js     0x418119
418102:	51                   	push   %ecx
418103:	ff 75 fc             	push   -0x4(%ebp)
418106:	8b cf                	mov    %edi,%ecx
418108:	e8 14 00 00 00       	call   0x418121