5fad3c:	50                   	push   %eax
5fad3d:	8d 46 08             	lea    0x8(%esi),%eax
5fad40:	50                   	push   %eax
5fad41:	e8 20 00 00 00       	call   0x5fad66
5fad46:	83 c4 0c             	add    $0xc,%esp
5fad49:	85 c0                	test   %eax,%eax
5fad4b:	74 0a                	je     0x5fad57
5fad4d:	83 66 0c 00          	andl   $0x0,0xc(%esi)
5fad51:	c6 46 14 00          	movb   $0x0,0x14(%esi)
5fad55:	eb 09                	jmp    0x5fad60
5fad57:	c6 46 14 01          	movb   $0x1,0x14(%esi)
5fad5b:	33 c0                	xor    %eax,%eax
5fad5d:	89 7e 0c             	mov    %edi,0xc(%esi)
5fad60:	5f                   	pop    %edi
5fad61:	5e                   	pop    %esi
5fad62:	5d                   	pop    %ebp
5fad63:	c2 04 00             	ret    $0x4
5fad66:	8b ff                	mov    %edi,%edi
5fad68:	55                   	push   %ebp
5fad69:	8b ec                	mov    %esp,%ebp
5fad6b:	ff 75 0c             	push   0xc(%ebp)
5fad6e:	e8 3d 3a ff ff       	call   0x5ee7b0
5fad73:	59                   	pop    %ecx
5fad74:	8b 4d 08             	mov    0x8(%ebp),%ecx
5fad77:	89 01                	mov    %eax,(%ecx)
5fad79:	f7 d8                	neg    %eax
5fad7b:	1b c0                	sbb    %eax,%eax
5fad7d:	83 e0 f4             	and    $0xfffffff4,%eax
5fad80:	83 c0 0c             	add    $0xc,%eax
5fad83:	5d                   	pop    %ebp
5fad84:	c3                   	ret
5fad85:	8b ff                	mov    %edi,%edi
5fad87:	56                   	push   %esi
5fad88:	8b f1                	mov    %ecx,%esi
5fad8a:	57                   	push   %edi
5fad8b:	8b 7e 08             	mov    0x8(%esi),%edi
5fad8e:	85 ff                	test   %edi,%edi
5fad90:	74 40                	je     0x5fadd2
5fad92:	8b 46 10             	mov    0x10(%esi),%eax
5fad95:	85 c0                	test   %eax,%eax
5fad97:	74 39                	je     0x5fadd2
5fad99:	80 7e 14 00          	cmpb   $0x0,0x14(%esi)
5fad9d:	75 20                	jne    0x5fadbf
5fad9f:	85 c0                	test   %eax,%eax
5fada1:	74 1c                	je     0x5fadbf
5fada3:	03 c0                	add    %eax,%eax
5fada5:	50                   	push   %eax
5fada6:	e8 05 3a ff ff       	call   0x5ee7b0
5fadab:	ff 76 0c             	push   0xc(%esi)
5fadae:	8b f8                	mov    %eax,%edi
5fadb0:	ff 76 08             	push   0x8(%esi)
5fadb3:	ff 76 10             	push   0x10(%esi)
5fadb6:	57                   	push   %edi
5fadb7:	e8 d5 33 ff ff       	call   0x5ee191
5fadbc:	83 c4 14             	add    $0x14,%esp
5fadbf:	8b 06                	mov    (%esi),%eax
5fadc1:	83 66 10 00          	andl   $0x0,0x10(%esi)
5fadc5:	89 46 08             	mov    %eax,0x8(%esi)
5fadc8:	8b 46 04             	mov    0x4(%esi),%eax
5fadcb:	89 46 0c             	mov    %eax,0xc(%esi)
5fadce:	8b c7                	mov    %edi,%eax
5fadd0:	eb 02                	jmp    0x5fadd4
5fadd2:	33 c0                	xor    %eax,%eax
5fadd4:	5f                   	pop    %edi
5fadd5:	5e                   	pop    %esi
5fadd6:	c3                   	ret
5fadd7:	8b ff                	mov    %edi,%edi
5fadd9:	55                   	push   %ebp
5fadda:	8b ec                	mov    %esp,%ebp
5faddc:	6a 00                	push   $0x0
5fadde:	6a 00                	push   $0x0
5fade0:	6a 01                	push   $0x1
5fade2:	ff 75 10             	push   0x10(%ebp)
5fade5:	ff 75 0c             	push   0xc(%ebp)
5fade8:	ff 75 08             	push   0x8(%ebp)
5fadeb:	e8 85 fe ff ff       	call   0x5fac75
5fadf0:	83 c4 18             	add    $0x18,%esp
5fadf3:	5d                   	pop    %ebp
5fadf4:	c3                   	ret
5fadf5:	8b ff                	mov    %edi,%edi
5fadf7:	55                   	push   %ebp
5fadf8:	8b ec                	mov    %esp,%ebp
5fadfa:	6a 00                	push   $0x0
5fadfc:	ff 75 08             	push   0x8(%ebp)
5fadff:	ff 15 a8 21 68 00    	call   *0x6821a8
5fae05:	85 c0                	test   %eax,%eax
5fae07:	75 12                	jne    0x5fae1b
5fae09:	ff 15 e0 21 68 00    	call   *0x6821e0
5fae0f:	50                   	push   %eax
5fae10:	e8 ae 21 ff ff       	call   0x5ecfc3
5fae15:	59                   	pop    %ecx
5fae16:	83 c8 ff             	or     $0xffffffff,%eax
5fae19:	5d                   	pop    %ebp
5fae1a:	c3                   	ret
5fae1b:	33 c0                	xor    %eax,%eax
5fae1d:	5d                   	pop    %ebp
5fae1e:	c3                   	ret
5fae1f:	6a 08                	push   $0x8
5fae21:	68 d0 1b 70 00       	push   $0x701bd0
5fae26:	e8 e5 76 fe ff       	call   0x5e2510
5fae2b:	8b 45 08             	mov    0x8(%ebp),%eax
5fae2e:	ff 30                	push   (%eax)
5fae30:	e8 6d 13 00 00       	call   0x5fc1a2
5fae35:	59                   	pop    %ecx
5fae36:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
5fae3a:	8b 75 0c             	mov    0xc(%ebp),%esi
5fae3d:	ff 76 04             	push   0x4(%esi)
5fae40:	8b 06                	mov    (%esi),%eax
5fae42:	ff 30                	push   (%eax)
5fae44:	e8 bb 01 00 00       	call   0x5fb004
5fae49:	59                   	pop    %ecx
5fae4a:	59                   	pop    %ecx
5fae4b:	84 c0                	test   %al,%al
5fae4d:	74 32                	je     0x5fae81
5fae4f:	8b 46 08             	mov    0x8(%esi),%eax
5fae52:	80 38 00             	cmpb   $0x0,(%eax)
5fae55:	75 0e                	jne    0x5fae65
5fae57:	8b 06                	mov    (%esi),%eax
5fae59:	8b 00                	mov    (%eax),%eax
5fae5b:	8b 40 0c             	mov    0xc(%eax),%eax
5fae5e:	90                   	nop
5fae5f:	d1 e8                	shr    $1,%eax
5fae61:	a8 01                	test   $0x1,%al
5fae63:	74 1c                	je     0x5fae81
5fae65:	8b 06                	mov    (%esi),%eax
5fae67:	ff 30                	push   (%eax)
5fae69:	e8 53 02 00 00       	call   0x5fb0c1
5fae6e:	59                   	pop    %ecx
5fae6f:	83 f8 ff             	cmp    $0xffffffff,%eax
5fae72:	74 07                	je     0x5fae7b
5fae74:	8b 46 04             	mov    0x4(%esi),%eax
5fae77:	ff 00                	incl   (%eax)
5fae79:	eb 06                	jmp    0x5fae81
5fae7b:	8b 46 0c             	mov    0xc(%esi),%eax
5fae7e:	83 08 ff             	orl    $0xffffffff,(%eax)
5fae81:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
5fae88:	e8 12 00 00 00       	call   0x5fae9f
5fae8d:	8b 4d f0             	mov    -0x10(%ebp),%ecx
5fae90:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
5fae97:	59                   	pop    %ecx
5fae98:	5f                   	pop    %edi
5fae99:	5e                   	pop    %esi
5fae9a:	5b                   	pop    %ebx
5fae9b:	c9                   	leave
5fae9c:	c2 0c 00             	ret    $0xc
5fae9f:	8b 45 10             	mov    0x10(%ebp),%eax
5faea2:	ff 30                	push   (%eax)
5faea4:	e8 0d 13 00 00       	call   0x5fc1b6
5faea9:	59                   	pop    %ecx
5faeaa:	c3                   	ret
5faeab:	6a 2c                	push   $0x2c
5faead:	68 f0 1b 70 00       	push   $0x701bf0
5faeb2:	e8 59 76 fe ff       	call   0x5e2510
5faeb7:	8b 45 08             	mov    0x8(%ebp),%eax
5faeba:	ff 30                	push   (%eax)
5faebc:	e8 c0 57 00 00       	call   0x600681
5faec1:	59                   	pop    %ecx
5faec2:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
5faec6:	8b 35 cc 0c 73 00    	mov    0x730ccc,%esi
5faecc:	a1 c8 0c 73 00       	mov    0x730cc8,%eax
5faed1:	8d 1c 86             	lea    (%esi,%eax,4),%ebx
5faed4:	8b 7d 0c             	mov    0xc(%ebp),%edi
5faed7:	89 75 d4             	mov    %esi,-0x2c(%ebp)
5faeda:	3b f3                	cmp    %ebx,%esi
5faedc:	74 4f                	je     0x5faf2d
5faede:	8b 06                	mov    (%esi),%eax
5faee0:	89 45 e0             	mov    %eax,-0x20(%ebp)
5faee3:	ff 37                	push   (%edi)
5faee5:	50                   	push   %eax
5faee6:	e8 19 01 00 00       	call   0x5fb004
5faeeb:	59                   	pop    %ecx
5faeec:	59                   	pop    %ecx
5faeed:	84 c0                	test   %al,%al
5faeef:	74 37                	je     0x5faf28
5faef1:	8b 57 08             	mov    0x8(%edi),%edx
5faef4:	8b 4f 04             	mov    0x4(%edi),%ecx
5faef7:	8b 07                	mov    (%edi),%eax
5faef9:	8d 7d e0             	lea    -0x20(%ebp),%edi
5faefc:	89 7d c4             	mov    %edi,-0x3c(%ebp)
5faeff:	89 45 c8             	mov    %eax,-0x38(%ebp)
5faf02:	89 4d cc             	mov    %ecx,-0x34(%ebp)
5faf05:	89 55 d0             	mov    %edx,-0x30(%ebp)
5faf08:	8b 45 e0             	mov    -0x20(%ebp),%eax
5faf0b:	89 45 dc             	mov    %eax,-0x24(%ebp)
5faf0e:	89 45 d8             	mov    %eax,-0x28(%ebp)
5faf11:	8d 45 dc             	lea    -0x24(%ebp),%eax
5faf14:	50                   	push   %eax
5faf15:	8d 45 c4             	lea    -0x3c(%ebp),%eax
5faf18:	50                   	push   %eax
5faf19:	8d 45 d8             	lea    -0x28(%ebp),%eax
5faf1c:	50                   	push   %eax
5faf1d:	8d 4d e7             	lea    -0x19(%ebp),%ecx
5faf20:	e8 fa fe ff ff       	call   0x5fae1f
5faf25:	8b 7d 0c             	mov    0xc(%ebp),%edi
5faf28:	83 c6 04             	add    $0x4,%esi
5faf2b:	eb aa                	jmp    0x5faed7
5faf2d:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
5faf34:	e8 12 00 00 00       	call   0x5faf4b
5faf39:	8b 4d f0             	mov    -0x10(%ebp),%ecx
5faf3c:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
5faf43:	59                   	pop    %ecx
5faf44:	5f                   	pop    %edi
5faf45:	5e                   	pop    %esi
5faf46:	5b                   	pop    %ebx
5faf47:	c9                   	leave
5faf48:	c2 0c 00             	ret    $0xc
5faf4b:	8b 45 10             	mov    0x10(%ebp),%eax
5faf4e:	ff 30                	push   (%eax)
5faf50:	e8 7c 57 00 00       	call   0x6006d1
5faf55:	59                   	pop    %ecx
5faf56:	c3                   	ret
5faf57:	6a 0c                	push   $0xc
5faf59:	68 10 1c 70 00       	push   $0x701c10
5faf5e:	e8 ad 75 fe ff       	call   0x5e2510
5faf63:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
5faf67:	8b 45 08             	mov    0x8(%ebp),%eax
5faf6a:	ff 30                	push   (%eax)
5faf6c:	e8 31 12 00 00       	call   0x5fc1a2
5faf71:	59                   	pop    %ecx
5faf72:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
5faf76:	8b 45 0c             	mov    0xc(%ebp),%eax
5faf79:	8b 00                	mov    (%eax),%eax
5faf7b:	ff 30                	push   (%eax)
5faf7d:	e8 3f 01 00 00       	call   0x5fb0c1
5faf82:	59                   	pop    %ecx
5faf83:	8b f0                	mov    %eax,%esi
5faf85:	89 75 e4             	mov    %esi,-0x1c(%ebp)
5faf88:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
5faf8f:	e8 17 00 00 00       	call   0x5fafab
5faf94:	8b c6                	mov    %esi,%eax
5faf96:	8b 4d f0             	mov    -0x10(%ebp),%ecx
5faf99:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
5fafa0:	59                   	pop    %ecx
5fafa1:	5f                   	pop    %edi
5fafa2:	5e                   	pop    %esi
5fafa3:	5b                   	pop    %ebx
5fafa4:	c9                   	leave
5fafa5:	c2 0c 00             	ret    $0xc
5fafa8:	8b 75 e4             	mov    -0x1c(%ebp),%esi
5fafab:	8b 45 10             	mov    0x10(%ebp),%eax
5fafae:	ff 30                	push   (%eax)
5fafb0:	e8 01 12 00 00       	call   0x5fc1b6
5fafb5:	59                   	pop    %ecx
5fafb6:	c3                   	ret
5fafb7:	8b ff                	mov    %edi,%edi
5fafb9:	55                   	push   %ebp
5fafba:	8b ec                	mov    %esp,%ebp
5fafbc:	83 ec 20             	sub    $0x20,%esp
5fafbf:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
5fafc3:	8d 45 f8             	lea    -0x8(%ebp),%eax
5fafc6:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
5fafca:	8d 4d ff             	lea    -0x1(%ebp),%ecx
5fafcd:	89 45 e0             	mov    %eax,-0x20(%ebp)
5fafd0:	8d 45 08             	lea    0x8(%ebp),%eax
5fafd3:	89 45 e4             	mov    %eax,-0x1c(%ebp)
5fafd6:	8d 45 f4             	lea    -0xc(%ebp),%eax
5fafd9:	6a 08                	push   $0x8
5fafdb:	89 45 e8             	mov    %eax,-0x18(%ebp)
5fafde:	58                   	pop    %eax
5fafdf:	89 45 f0             	mov    %eax,-0x10(%ebp)
5fafe2:	89 45 ec             	mov    %eax,-0x14(%ebp)
5fafe5:	8d 45 f0             	lea    -0x10(%ebp),%eax
5fafe8:	50                   	push   %eax
5fafe9:	8d 45 e0             	lea    -0x20(%ebp),%eax
5fafec:	50                   	push   %eax
5fafed:	8d 45 ec             	lea    -0x14(%ebp),%eax
5faff0:	50                   	push   %eax
5faff1:	e8 b5 fe ff ff       	call   0x5faeab
5faff6:	80 7d 08 00          	cmpb   $0x0,0x8(%ebp)
5faffa:	8b 45 f8             	mov    -0x8(%ebp),%eax
5faffd:	75 03                	jne    0x5fb002
5fafff:	8b 45 f4             	mov    -0xc(%ebp),%eax
5fb002:	c9                   	leave
5fb003:	c3                   	ret
5fb004:	8b ff                	mov    %edi,%edi
5fb006:	55                   	push   %ebp
5fb007:	8b ec                	mov    %esp,%ebp
5fb009:	8b 45 08             	mov    0x8(%ebp),%eax
5fb00c:	85 c0                	test   %eax,%eax
5fb00e:	74 1f                	je     0x5fb02f
5fb010:	8b 48 0c             	mov    0xc(%eax),%ecx
5fb013:	90                   	nop
5fb014:	8b c1                	mov    %ecx,%eax
5fb016:	c1 e8 0d             	shr    $0xd,%eax
5fb019:	a8 01                	test   $0x1,%al
5fb01b:	74 12                	je     0x5fb02f
5fb01d:	51                   	push   %ecx
5fb01e:	e8 14 00 00 00       	call   0x5fb037
5fb023:	83 c4 04             	add    $0x4,%esp
5fb026:	84 c0                	test   %al,%al
5fb028:	75 09                	jne    0x5fb033
5fb02a:	8b 45 0c             	mov    0xc(%ebp),%eax
5fb02d:	ff 00                	incl   (%eax)
5fb02f:	32 c0                	xor    %al,%al
5fb031:	5d                   	pop    %ebp
5fb032:	c3                   	ret
5fb033:	b0 01                	mov    $0x1,%al
5fb035:	5d                   	pop    %ebp
5fb036:	c3                   	ret
5fb037:	8b ff                	mov    %edi,%edi
5fb039:	55                   	push   %ebp
5fb03a:	8b ec                	mov    %esp,%ebp
5fb03c:	8b 45 08             	mov    0x8(%ebp),%eax
5fb03f:	24 03                	and    $0x3,%al
5fb041:	3c 02                	cmp    $0x2,%al
5fb043:	75 06                	jne    0x5fb04b
5fb045:	f6 45 08 c0          	testb  $0xc0,0x8(%ebp)
5fb049:	75 09                	jne    0x5fb054
5fb04b:	f7 45 08 00 08 00 00 	testl  $0x800,0x8(%ebp)
5fb052:	74 04                	je     0x5fb058
5fb054:	b0 01                	mov    $0x1,%al
5fb056:	5d                   	pop    %ebp
5fb057:	c3                   	ret
5fb058:	32 c0                	xor    %al,%al
5fb05a:	5d                   	pop    %ebp
5fb05b:	c3                   	ret
5fb05c:	8b ff                	mov    %edi,%edi
5fb05e:	55                   	push   %ebp
5fb05f:	8b ec                	mov    %esp,%ebp
5fb061:	8b 4d 08             	mov    0x8(%ebp),%ecx
5fb064:	56                   	push   %esi
5fb065:	57                   	push   %edi
5fb066:	8d 71 0c             	lea    0xc(%ecx),%esi
5fb069:	8b 16                	mov    (%esi),%edx
5fb06b:	90                   	nop
5fb06c:	8b c2                	mov    %edx,%eax
5fb06e:	24 03                	and    $0x3,%al
5fb070:	3c 02                	cmp    $0x2,%al
5fb072:	75 47                	jne    0x5fb0bb
5fb074:	f6 c2 c0             	test   $0xc0,%dl
5fb077:	74 42                	je     0x5fb0bb
5fb079:	8b 39                	mov    (%ecx),%edi
5fb07b:	8b 41 04             	mov    0x4(%ecx),%eax
5fb07e:	2b f8                	sub    %eax,%edi
5fb080:	89 01                	mov    %eax,(%ecx)
5fb082:	83 61 08 00          	andl   $0x0,0x8(%ecx)
5fb086:	85 ff                	test   %edi,%edi
5fb088:	7e 31                	jle    0x5fb0bb
5fb08a:	57                   	push   %edi
5fb08b:	50                   	push   %eax
5fb08c:	51                   	push   %ecx
5fb08d:	e8 16 47 00 00       	call   0x5ff7a8
5fb092:	59                   	pop    %ecx
5fb093:	50                   	push   %eax
5fb094:	e8 53 fc 00 00       	call   0x60acec
5fb099:	83 c4 0c             	add    $0xc,%esp
5fb09c:	3b f8                	cmp    %eax,%edi
5fb09e:	74 0b                	je     0x5fb0ab
5fb0a0:	6a 10                	push   $0x10
5fb0a2:	58                   	pop    %eax