5efdfc:	83 fa fe             	cmp    $0xfffffffe,%edx
5efdff:	74 16                	je     0x5efe17
5efe01:	8b c2                	mov    %edx,%eax
5efe03:	8b ca                	mov    %edx,%ecx
5efe05:	83 e0 3f             	and    $0x3f,%eax
5efe08:	c1 f9 06             	sar    $0x6,%ecx
5efe0b:	6b c0 38             	imul   $0x38,%eax,%eax
5efe0e:	03 04 8d a8 70 71 00 	add    0x7170a8(,%ecx,4),%eax
5efe15:	eb 05                	jmp    0x5efe1c
5efe17:	b8 e0 19 69 00       	mov    $0x6919e0,%eax
5efe1c:	f6 40 28 20          	testb  $0x20,0x28(%eax)
5efe20:	74 c3                	je     0x5efde5
5efe22:	6a 02                	push   $0x2
5efe24:	57                   	push   %edi
5efe25:	57                   	push   %edi
5efe26:	52                   	push   %edx
5efe27:	e8 36 f5 ff ff       	call   0x5ef362
5efe2c:	23 c2                	and    %edx,%eax
5efe2e:	83 c4 10             	add    $0x10,%esp
5efe31:	83 f8 ff             	cmp    $0xffffffff,%eax
5efe34:	75 af                	jne    0x5efde5
5efe36:	8b 45 0c             	mov    0xc(%ebp),%eax
5efe39:	6a 10                	push   $0x10
5efe3b:	59                   	pop    %ecx
5efe3c:	83 c0 0c             	add    $0xc,%eax
5efe3f:	f0 09 08             	lock or %ecx,(%eax)
5efe42:	b0 01                	mov    $0x1,%al
5efe44:	eb 19                	jmp    0x5efe5f
5efe46:	ff 75 10             	push   0x10(%ebp)
5efe49:	8d 45 08             	lea    0x8(%ebp),%eax
5efe4c:	6a 01                	push   $0x1
5efe4e:	50                   	push   %eax
5efe4f:	52                   	push   %edx
5efe50:	e8 6d 47 ff ff       	call   0x5e45c2
5efe55:	83 c4 10             	add    $0x10,%esp
5efe58:	48                   	dec    %eax
5efe59:	f7 d8                	neg    %eax
5efe5b:	1a c0                	sbb    %al,%al
5efe5d:	fe c0                	inc    %al
5efe5f:	5f                   	pop    %edi
5efe60:	5e                   	pop    %esi
5efe61:	5d                   	pop    %ebp
5efe62:	c3                   	ret
5efe63:	8b ff                	mov    %edi,%edi
5efe65:	55                   	push   %ebp
5efe66:	8b ec                	mov    %esp,%ebp
5efe68:	8b 45 08             	mov    0x8(%ebp),%eax
5efe6b:	83 ec 10             	sub    $0x10,%esp
5efe6e:	8b 40 0c             	mov    0xc(%eax),%eax
5efe71:	90                   	nop
5efe72:	c1 e8 03             	shr    $0x3,%eax
5efe75:	a8 01                	test   $0x1,%al
5efe77:	74 04                	je     0x5efe7d
5efe79:	b0 01                	mov    $0x1,%al
5efe7b:	c9                   	leave
5efe7c:	c3                   	ret
5efe7d:	8b 45 08             	mov    0x8(%ebp),%eax
5efe80:	53                   	push   %ebx
5efe81:	56                   	push   %esi
5efe82:	8b 40 0c             	mov    0xc(%eax),%eax
5efe85:	90                   	nop
5efe86:	a8 c0                	test   $0xc0,%al
5efe88:	8b 45 08             	mov    0x8(%ebp),%eax
5efe8b:	74 07                	je     0x5efe94
5efe8d:	8b 08                	mov    (%eax),%ecx
5efe8f:	3b 48 04             	cmp    0x4(%eax),%ecx
5efe92:	74 4e                	je     0x5efee2
5efe94:	8b 40 10             	mov    0x10(%eax),%eax
5efe97:	90                   	nop
5efe98:	50                   	push   %eax
5efe99:	e8 97 f0 ff ff       	call   0x5eef35
5efe9e:	8b f0                	mov    %eax,%esi
5efea0:	59                   	pop    %ecx
5efea1:	83 fe ff             	cmp    $0xffffffff,%esi
5efea4:	74 3c                	je     0x5efee2
5efea6:	33 db                	xor    %ebx,%ebx
5efea8:	8d 45 f8             	lea    -0x8(%ebp),%eax
5efeab:	43                   	inc    %ebx
5efeac:	53                   	push   %ebx
5efead:	50                   	push   %eax
5efeae:	6a 00                	push   $0x0
5efeb0:	6a 00                	push   $0x0
5efeb2:	56                   	push   %esi
5efeb3:	ff 15 c4 20 60 00    	call   *0x6020c4
5efeb9:	85 c0                	test   %eax,%eax
5efebb:	74 25                	je     0x5efee2
5efebd:	8d 45 f0             	lea    -0x10(%ebp),%eax
5efec0:	50                   	push   %eax
5efec1:	56                   	push   %esi
5efec2:	ff 15 90 22 60 00    	call   *0x602290
5efec8:	85 c0                	test   %eax,%eax
5efeca:	74 16                	je     0x5efee2
5efecc:	8b 45 f8             	mov    -0x8(%ebp),%eax
5efecf:	3b 45 f0             	cmp    -0x10(%ebp),%eax
5efed2:	75 08                	jne    0x5efedc
5efed4:	8b 45 fc             	mov    -0x4(%ebp),%eax
5efed7:	3b 45 f4             	cmp    -0xc(%ebp),%eax
5efeda:	74 02                	je     0x5efede
5efedc:	32 db                	xor    %bl,%bl
5efede:	8a c3                	mov    %bl,%al
5efee0:	eb 02                	jmp    0x5efee4
5efee2:	32 c0                	xor    %al,%al
5efee4:	5e                   	pop    %esi
5efee5:	5b                   	pop    %ebx
5efee6:	c9                   	leave
5efee7:	c3                   	ret
5efee8:	8b ff                	mov    %edi,%edi
5efeea:	55                   	push   %ebp
5efeeb:	8b ec                	mov    %esp,%ebp
5efeed:	5d                   	pop    %ebp
5efeee:	e9 a8 fd ff ff       	jmp    0x5efc9b
5efef3:	8b ff                	mov    %edi,%edi
5efef5:	55                   	push   %ebp
5efef6:	8b ec                	mov    %esp,%ebp
5efef8:	51                   	push   %ecx
5efef9:	51                   	push   %ecx
5efefa:	a1 c0 14 69 00       	mov    0x6914c0,%eax
5efeff:	33 c5                	xor    %ebp,%eax
5eff01:	89 45 fc             	mov    %eax,-0x4(%ebp)
5eff04:	53                   	push   %ebx
5eff05:	56                   	push   %esi
5eff06:	57                   	push   %edi
5eff07:	8b 7d 18             	mov    0x18(%ebp),%edi
5eff0a:	85 ff                	test   %edi,%edi
5eff0c:	7e 14                	jle    0x5eff22
5eff0e:	57                   	push   %edi
5eff0f:	ff 75 14             	push   0x14(%ebp)
5eff12:	e8 53 87 ff ff       	call   0x5e866a
5eff17:	59                   	pop    %ecx
5eff18:	3b c7                	cmp    %edi,%eax
5eff1a:	59                   	pop    %ecx
5eff1b:	8d 78 01             	lea    0x1(%eax),%edi
5eff1e:	7c 02                	jl     0x5eff22
5eff20:	8b f8                	mov    %eax,%edi
5eff22:	8b 5d 24             	mov    0x24(%ebp),%ebx
5eff25:	85 db                	test   %ebx,%ebx
5eff27:	75 0b                	jne    0x5eff34
5eff29:	8b 45 08             	mov    0x8(%ebp),%eax
5eff2c:	8b 00                	mov    (%eax),%eax
5eff2e:	8b 58 08             	mov    0x8(%eax),%ebx
5eff31:	89 5d 24             	mov    %ebx,0x24(%ebp)
5eff34:	33 c0                	xor    %eax,%eax
5eff36:	39 45 28             	cmp    %eax,0x28(%ebp)
5eff39:	6a 00                	push   $0x0
5eff3b:	6a 00                	push   $0x0
5eff3d:	0f 95 c0             	setne  %al
5eff40:	57                   	push   %edi
5eff41:	ff 75 14             	push   0x14(%ebp)
5eff44:	8d 04 c5 01 00 00 00 	lea    0x1(,%eax,8),%eax
5eff4b:	50                   	push   %eax
5eff4c:	53                   	push   %ebx
5eff4d:	e8 ef eb ff ff       	call   0x5eeb41
5eff52:	83 c4 18             	add    $0x18,%esp
5eff55:	89 45 f8             	mov    %eax,-0x8(%ebp)
5eff58:	85 c0                	test   %eax,%eax
5eff5a:	0f 84 70 01 00 00    	je     0x5f00d0
5eff60:	03 c0                	add    %eax,%eax
5eff62:	8d 48 08             	lea    0x8(%eax),%ecx
5eff65:	3b c1                	cmp    %ecx,%eax
5eff67:	1b c0                	sbb    %eax,%eax
5eff69:	23 c1                	and    %ecx,%eax
5eff6b:	0f 84 52 01 00 00    	je     0x5f00c3
5eff71:	3d 00 04 00 00       	cmp    $0x400,%eax
5eff76:	77 17                	ja     0x5eff8f
5eff78:	e8 f3 12 fe ff       	call   0x5d1270
5eff7d:	8b f4                	mov    %esp,%esi
5eff7f:	85 f6                	test   %esi,%esi
5eff81:	0f 84 3e 01 00 00    	je     0x5f00c5
5eff87:	c7 06 cc cc 00 00    	movl   $0xcccc,(%esi)
5eff8d:	eb 17                	jmp    0x5effa6
5eff8f:	50                   	push   %eax
5eff90:	e8 c7 b2 ff ff       	call   0x5eb25c
5eff95:	8b f0                	mov    %eax,%esi
5eff97:	59                   	pop    %ecx
5eff98:	85 f6                	test   %esi,%esi
5eff9a:	0f 84 25 01 00 00    	je     0x5f00c5
5effa0:	c7 06 dd dd 00 00    	movl   $0xdddd,(%esi)
5effa6:	83 c6 08             	add    $0x8,%esi
5effa9:	85 f6                	test   %esi,%esi
5effab:	0f 84 14 01 00 00    	je     0x5f00c5
5effb1:	ff 75 f8             	push   -0x8(%ebp)
5effb4:	56                   	push   %esi
5effb5:	57                   	push   %edi
5effb6:	ff 75 14             	push   0x14(%ebp)
5effb9:	6a 01                	push   $0x1
5effbb:	53                   	push   %ebx
5effbc:	e8 80 eb ff ff       	call   0x5eeb41
5effc1:	83 c4 18             	add    $0x18,%esp
5effc4:	85 c0                	test   %eax,%eax
5effc6:	0f 84 f9 00 00 00    	je     0x5f00c5
5effcc:	8b 7d f8             	mov    -0x8(%ebp),%edi
5effcf:	33 c0                	xor    %eax,%eax
5effd1:	50                   	push   %eax
5effd2:	50                   	push   %eax
5effd3:	50                   	push   %eax
5effd4:	50                   	push   %eax
5effd5:	50                   	push   %eax
5effd6:	57                   	push   %edi
5effd7:	56                   	push   %esi
5effd8:	ff 75 10             	push   0x10(%ebp)
5effdb:	ff 75 0c             	push   0xc(%ebp)
5effde:	e8 a9 b0 ff ff       	call   0x5eb08c
5effe3:	8b d8                	mov    %eax,%ebx
5effe5:	85 db                	test   %ebx,%ebx
5effe7:	0f 84 d8 00 00 00    	je     0x5f00c5
5effed:	ba 00 04 00 00       	mov    $0x400,%edx
5efff2:	85 55 10             	test   %edx,0x10(%ebp)
5efff5:	74 38                	je     0x5f002f
5efff7:	8b 45 20             	mov    0x20(%ebp),%eax
5efffa:	85 c0                	test   %eax,%eax
5efffc:	0f 84 c5 00 00 00    	je     0x5f00c7
5f0002:	3b d8                	cmp    %eax,%ebx
5f0004:	0f 8f bb 00 00 00    	jg     0x5f00c5
5f000a:	33 c9                	xor    %ecx,%ecx
5f000c:	51                   	push   %ecx
5f000d:	51                   	push   %ecx
5f000e:	51                   	push   %ecx
5f000f:	50                   	push   %eax
5f0010:	ff 75 1c             	push   0x1c(%ebp)
5f0013:	57                   	push   %edi
5f0014:	56                   	push   %esi
5f0015:	ff 75 10             	push   0x10(%ebp)
5f0018:	ff 75 0c             	push   0xc(%ebp)
5f001b:	e8 6c b0 ff ff       	call   0x5eb08c
5f0020:	8b d8                	mov    %eax,%ebx
5f0022:	85 db                	test   %ebx,%ebx
5f0024:	0f 85 9d 00 00 00    	jne    0x5f00c7
5f002a:	e9 96 00 00 00       	jmp    0x5f00c5
5f002f:	8d 04 1b             	lea    (%ebx,%ebx,1),%eax
5f0032:	8d 48 08             	lea    0x8(%eax),%ecx
5f0035:	3b c1                	cmp    %ecx,%eax
5f0037:	1b c0                	sbb    %eax,%eax
5f0039:	23 c1                	and    %ecx,%eax
5f003b:	74 7b                	je     0x5f00b8
5f003d:	3b c2                	cmp    %edx,%eax
5f003f:	77 13                	ja     0x5f0054
5f0041:	e8 2a 12 fe ff       	call   0x5d1270
5f0046:	8b fc                	mov    %esp,%edi
5f0048:	85 ff                	test   %edi,%edi
5f004a:	74 6e                	je     0x5f00ba
5f004c:	c7 07 cc cc 00 00    	movl   $0xcccc,(%edi)
5f0052:	eb 13                	jmp    0x5f0067
5f0054:	50                   	push   %eax
5f0055:	e8 02 b2 ff ff       	call   0x5eb25c
5f005a:	8b f8                	mov    %eax,%edi
5f005c:	59                   	pop    %ecx
5f005d:	85 ff                	test   %edi,%edi
5f005f:	74 59                	je     0x5f00ba
5f0061:	c7 07 dd dd 00 00    	movl   $0xdddd,(%edi)
5f0067:	83 c7 08             	add    $0x8,%edi
5f006a:	85 ff                	test   %edi,%edi
5f006c:	74 4c                	je     0x5f00ba
5f006e:	33 c0                	xor    %eax,%eax
5f0070:	50                   	push   %eax
5f0071:	50                   	push   %eax
5f0072:	50                   	push   %eax
5f0073:	53                   	push   %ebx
5f0074:	57                   	push   %edi
5f0075:	ff 75 f8             	push   -0x8(%ebp)
5f0078:	56                   	push   %esi
5f0079:	ff 75 10             	push   0x10(%ebp)
5f007c:	ff 75 0c             	push   0xc(%ebp)
5f007f:	e8 08 b0 ff ff       	call   0x5eb08c
5f0084:	85 c0                	test   %eax,%eax
5f0086:	74 32                	je     0x5f00ba
5f0088:	33 c0                	xor    %eax,%eax
5f008a:	50                   	push   %eax
5f008b:	50                   	push   %eax
5f008c:	39 45 20             	cmp    %eax,0x20(%ebp)
5f008f:	75 1f                	jne    0x5f00b0
5f0091:	50                   	push   %eax
5f0092:	50                   	push   %eax
5f0093:	53                   	push   %ebx
5f0094:	57                   	push   %edi
5f0095:	50                   	push   %eax
5f0096:	ff 75 24             	push   0x24(%ebp)
5f0099:	e8 9f e9 ff ff       	call   0x5eea3d
5f009e:	8b d8                	mov    %eax,%ebx
5f00a0:	83 c4 20             	add    $0x20,%esp
5f00a3:	85 db                	test   %ebx,%ebx
5f00a5:	74 13                	je     0x5f00ba
5f00a7:	57                   	push   %edi
5f00a8:	e8 4e 10 fe ff       	call   0x5d10fb
5f00ad:	59                   	pop    %ecx
5f00ae:	eb 17                	jmp    0x5f00c7
5f00b0:	ff 75 20             	push   0x20(%ebp)
5f00b3:	ff 75 1c             	push   0x1c(%ebp)
5f00b6:	eb db                	jmp    0x5f0093
5f00b8:	33 ff                	xor    %edi,%edi
5f00ba:	57                   	push   %edi
5f00bb:	e8 3b 10 fe ff       	call   0x5d10fb
5f00c0:	59                   	pop    %ecx
5f00c1:	eb 02                	jmp    0x5f00c5
5f00c3:	33 f6                	xor    %esi,%esi
5f00c5:	33 db                	xor    %ebx,%ebx
5f00c7:	56                   	push   %esi
5f00c8:	e8 2e 10 fe ff       	call   0x5d10fb
5f00cd:	59                   	pop    %ecx
5f00ce:	8b c3                	mov    %ebx,%eax
5f00d0:	8d 65 ec             	lea    -0x14(%ebp),%esp
5f00d3:	5f                   	pop    %edi
5f00d4:	5e                   	pop    %esi
5f00d5:	5b                   	pop    %ebx
5f00d6:	8b 4d fc             	mov    -0x4(%ebp),%ecx
5f00d9:	33 cd                	xor    %ebp,%ecx
5f00db:	e8 46 19 fe ff       	call   0x5d1a26
5f00e0:	c9                   	leave
5f00e1:	c3                   	ret
5f00e2:	8b ff                	mov    %edi,%edi
5f00e4:	55                   	push   %ebp
5f00e5:	8b ec                	mov    %esp,%ebp
5f00e7:	83 ec 10             	sub    $0x10,%esp
5f00ea:	ff 75 08             	push   0x8(%ebp)
5f00ed:	8d 4d f0             	lea    -0x10(%ebp),%ecx
5f00f0:	e8 e0 ab fe ff       	call   0x5dacd5
5f00f5:	ff 75 28             	push   0x28(%ebp)
5f00f8:	8d 45 f4             	lea    -0xc(%ebp),%eax
5f00fb:	ff 75 24             	push   0x24(%ebp)
5f00fe:	ff 75 20             	push   0x20(%ebp)
5f0101:	ff 75 1c             	push   0x1c(%ebp)
5f0104:	ff 75 18             	push   0x18(%ebp)
5f0107:	ff 75 14             	push   0x14(%ebp)
5f010a:	ff 75 10             	push   0x10(%ebp)
5f010d:	ff 75 0c             	push   0xc(%ebp)
5f0110:	50                   	push   %eax
5f0111:	e8 dd fd ff ff       	call   0x5efef3
5f0116:	83 c4 24             	add    $0x24,%esp
5f0119:	80 7d fc 00          	cmpb   $0x0,-0x4(%ebp)
5f011d:	74 0a                	je     0x5f0129
5f011f:	8b 4d f0             	mov    -0x10(%ebp),%ecx
5f0122:	83 a1 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%ecx)
5f0129:	c9                   	leave
5f012a:	c3                   	ret
5f012b:	8b ff                	mov    %edi,%edi
5f012d:	55                   	push   %ebp
5f012e:	8b ec                	mov    %esp,%ebp
5f0130:	83 ec 1c             	sub    $0x1c,%esp
5f0133:	53                   	push   %ebx
5f0134:	56                   	push   %esi
5f0135:	8d 45 fc             	lea    -0x4(%ebp),%eax
5f0138:	33 f6                	xor    %esi,%esi
5f013a:	50                   	push   %eax
5f013b:	89 75 fc             	mov    %esi,-0x4(%ebp)
5f013e:	e8 86 74 ff ff       	call   0x5e75c9
5f0143:	59                   	pop    %ecx
5f0144:	85 c0                	test   %eax,%eax
5f0146:	0f 85 ee 01 00 00    	jne    0x5f033a
5f014c:	39 75 fc             	cmp    %esi,-0x4(%ebp)
5f014f:	0f 84 e1 01 00 00    	je     0x5f0336
5f0155:	8b 5d 08             	mov    0x8(%ebp),%ebx