5e5ffa:	8b d9                	mov    %ecx,%ebx
5e5ffc:	eb 02                	jmp    0x5e6000
5e5ffe:	8b d8                	mov    %eax,%ebx
5e6000:	39 45 14             	cmp    %eax,0x14(%ebp)
5e6003:	7f 0b                	jg     0x5e6010
5e6005:	7c 05                	jl     0x5e600c
5e6007:	39 45 10             	cmp    %eax,0x10(%ebp)
5e600a:	73 04                	jae    0x5e6010
5e600c:	8b f1                	mov    %ecx,%esi
5e600e:	eb 02                	jmp    0x5e6012
5e6010:	8b f0                	mov    %eax,%esi
5e6012:	3b de                	cmp    %esi,%ebx
5e6014:	74 2c                	je     0x5e6042
5e6016:	39 45 0c             	cmp    %eax,0xc(%ebp)
5e6019:	7f 0b                	jg     0x5e6026
5e601b:	7c 05                	jl     0x5e6022
5e601d:	39 45 08             	cmp    %eax,0x8(%ebp)
5e6020:	73 04                	jae    0x5e6026
5e6022:	8b f1                	mov    %ecx,%esi
5e6024:	eb 02                	jmp    0x5e6028
5e6026:	8b f0                	mov    %eax,%esi
5e6028:	3b f8                	cmp    %eax,%edi
5e602a:	7f 06                	jg     0x5e6032
5e602c:	7c 06                	jl     0x5e6034
5e602e:	3b d0                	cmp    %eax,%edx
5e6030:	72 02                	jb     0x5e6034
5e6032:	8b c8                	mov    %eax,%ecx
5e6034:	3b f1                	cmp    %ecx,%esi
5e6036:	74 0a                	je     0x5e6042
5e6038:	83 ca ff             	or     $0xffffffff,%edx
5e603b:	b8 16 02 07 80       	mov    $0x80070216,%eax
5e6040:	8b fa                	mov    %edx,%edi
5e6042:	8b 4d 18             	mov    0x18(%ebp),%ecx
5e6045:	89 11                	mov    %edx,(%ecx)
5e6047:	89 79 04             	mov    %edi,0x4(%ecx)
5e604a:	5f                   	pop    %edi
5e604b:	5e                   	pop    %esi
5e604c:	5b                   	pop    %ebx
5e604d:	5d                   	pop    %ebp
5e604e:	c3                   	ret
5e604f:	6a 0c                	push   $0xc
5e6051:	68 90 a8 68 00       	push   $0x68a890
5e6056:	e8 a5 c8 fe ff       	call   0x5d2900
5e605b:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
5e605f:	75 23                	jne    0x5e6084
5e6061:	33 f6                	xor    %esi,%esi
5e6063:	8b 45 18             	mov    0x18(%ebp),%eax
5e6066:	50                   	push   %eax
5e6067:	c7 40 18 16 00 00 00 	movl   $0x16,0x18(%eax)
5e606e:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
5e6072:	56                   	push   %esi
5e6073:	56                   	push   %esi
5e6074:	56                   	push   %esi
5e6075:	56                   	push   %esi
5e6076:	56                   	push   %esi
5e6077:	e8 e7 00 ff ff       	call   0x5d6163
5e607c:	83 c4 18             	add    $0x18,%esp
5e607f:	83 c8 ff             	or     $0xffffffff,%eax
5e6082:	eb 58                	jmp    0x5e60dc
5e6084:	8b 7d 14             	mov    0x14(%ebp),%edi
5e6087:	85 ff                	test   %edi,%edi
5e6089:	74 10                	je     0x5e609b
5e608b:	83 ff 01             	cmp    $0x1,%edi
5e608e:	74 0b                	je     0x5e609b
5e6090:	83 ff 02             	cmp    $0x2,%edi
5e6093:	74 06                	je     0x5e609b
5e6095:	33 f6                	xor    %esi,%esi
5e6097:	8b c6                	mov    %esi,%eax
5e6099:	eb 05                	jmp    0x5e60a0
5e609b:	33 c0                	xor    %eax,%eax
5e609d:	40                   	inc    %eax
5e609e:	33 f6                	xor    %esi,%esi
5e60a0:	85 c0                	test   %eax,%eax
5e60a2:	74 bf                	je     0x5e6063
5e60a4:	83 4d e4 ff          	orl    $0xffffffff,-0x1c(%ebp)
5e60a8:	ff 75 08             	push   0x8(%ebp)
5e60ab:	e8 bc 9f ff ff       	call   0x5e006c
5e60b0:	59                   	pop    %ecx
5e60b1:	89 75 fc             	mov    %esi,-0x4(%ebp)
5e60b4:	ff 75 18             	push   0x18(%ebp)
5e60b7:	57                   	push   %edi
5e60b8:	ff 75 10             	push   0x10(%ebp)
5e60bb:	ff 75 0c             	push   0xc(%ebp)
5e60be:	ff 75 08             	push   0x8(%ebp)
5e60c1:	e8 0c 01 00 00       	call   0x5e61d2
5e60c6:	83 c4 14             	add    $0x14,%esp
5e60c9:	8b f0                	mov    %eax,%esi
5e60cb:	89 75 e4             	mov    %esi,-0x1c(%ebp)
5e60ce:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
5e60d5:	e8 15 00 00 00       	call   0x5e60ef
5e60da:	8b c6                	mov    %esi,%eax
5e60dc:	8b 4d f0             	mov    -0x10(%ebp),%ecx
5e60df:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
5e60e6:	59                   	pop    %ecx
5e60e7:	5f                   	pop    %edi
5e60e8:	5e                   	pop    %esi
5e60e9:	5b                   	pop    %ebx
5e60ea:	c9                   	leave
5e60eb:	c3                   	ret
5e60ec:	8b 75 e4             	mov    -0x1c(%ebp),%esi
5e60ef:	ff 75 08             	push   0x8(%ebp)
5e60f2:	e8 89 9f ff ff       	call   0x5e0080
5e60f7:	59                   	pop    %ecx
5e60f8:	c3                   	ret
5e60f9:	8b ff                	mov    %edi,%edi
5e60fb:	55                   	push   %ebp
5e60fc:	8b ec                	mov    %esp,%ebp
5e60fe:	83 7d 14 02          	cmpl   $0x2,0x14(%ebp)
5e6102:	56                   	push   %esi
5e6103:	57                   	push   %edi
5e6104:	0f 84 8c 00 00 00    	je     0x5e6196
5e610a:	8b 45 08             	mov    0x8(%ebp),%eax
5e610d:	8b 40 0c             	mov    0xc(%eax),%eax
5e6110:	90                   	nop
5e6111:	a9 c0 04 00 00       	test   $0x4c0,%eax
5e6116:	74 7e                	je     0x5e6196
5e6118:	8b 45 08             	mov    0x8(%ebp),%eax
5e611b:	8b 40 0c             	mov    0xc(%eax),%eax
5e611e:	90                   	nop
5e611f:	a8 06                	test   $0x6,%al
5e6121:	75 73                	jne    0x5e6196
5e6123:	8b 45 08             	mov    0x8(%ebp),%eax
5e6126:	33 f6                	xor    %esi,%esi
5e6128:	39 70 08             	cmp    %esi,0x8(%eax)
5e612b:	7e 69                	jle    0x5e6196
5e612d:	8b 50 10             	mov    0x10(%eax),%edx
5e6130:	90                   	nop
5e6131:	8b c2                	mov    %edx,%eax
5e6133:	8b ca                	mov    %edx,%ecx
5e6135:	83 e0 3f             	and    $0x3f,%eax
5e6138:	c1 f9 06             	sar    $0x6,%ecx
5e613b:	6b c0 38             	imul   $0x38,%eax,%eax
5e613e:	8b 0c 8d a8 70 71 00 	mov    0x7170a8(,%ecx,4),%ecx
5e6145:	80 7c 01 28 00       	cmpb   $0x0,0x28(%ecx,%eax,1)
5e614a:	7c 4a                	jl     0x5e6196
5e614c:	80 7c 01 29 00       	cmpb   $0x0,0x29(%ecx,%eax,1)
5e6151:	75 43                	jne    0x5e6196
5e6153:	39 75 14             	cmp    %esi,0x14(%ebp)
5e6156:	75 44                	jne    0x5e619c
5e6158:	6a 01                	push   $0x1
5e615a:	56                   	push   %esi
5e615b:	56                   	push   %esi
5e615c:	52                   	push   %edx
5e615d:	e8 5e 92 00 00       	call   0x5ef3c0
5e6162:	8b fa                	mov    %edx,%edi
5e6164:	83 c4 10             	add    $0x10,%esp
5e6167:	8b c8                	mov    %eax,%ecx
5e6169:	3b fe                	cmp    %esi,%edi
5e616b:	7c 29                	jl     0x5e6196
5e616d:	7f 04                	jg     0x5e6173
5e616f:	3b ce                	cmp    %esi,%ecx
5e6171:	72 23                	jb     0x5e6196
5e6173:	8b 75 08             	mov    0x8(%ebp),%esi
5e6176:	8d 45 0c             	lea    0xc(%ebp),%eax
5e6179:	50                   	push   %eax
5e617a:	8b 46 08             	mov    0x8(%esi),%eax
5e617d:	99                   	cltd
5e617e:	2b c8                	sub    %eax,%ecx
5e6180:	1b fa                	sbb    %edx,%edi
5e6182:	57                   	push   %edi
5e6183:	51                   	push   %ecx
5e6184:	ff 75 10             	push   0x10(%ebp)
5e6187:	ff 75 0c             	push   0xc(%ebp)
5e618a:	e8 46 fe ff ff       	call   0x5e5fd5
5e618f:	83 c4 14             	add    $0x14,%esp
5e6192:	85 c0                	test   %eax,%eax
5e6194:	79 09                	jns    0x5e619f
5e6196:	32 c0                	xor    %al,%al
5e6198:	5f                   	pop    %edi
5e6199:	5e                   	pop    %esi
5e619a:	5d                   	pop    %ebp
5e619b:	c3                   	ret
5e619c:	8b 75 08             	mov    0x8(%ebp),%esi
5e619f:	8b 46 04             	mov    0x4(%esi),%eax
5e61a2:	8b 0e                	mov    (%esi),%ecx
5e61a4:	2b c1                	sub    %ecx,%eax
5e61a6:	99                   	cltd
5e61a7:	3b 55 10             	cmp    0x10(%ebp),%edx
5e61aa:	7f ea                	jg     0x5e6196
5e61ac:	8b 7d 0c             	mov    0xc(%ebp),%edi
5e61af:	7c 04                	jl     0x5e61b5
5e61b1:	3b c7                	cmp    %edi,%eax
5e61b3:	77 e1                	ja     0x5e6196
5e61b5:	8b 46 08             	mov    0x8(%esi),%eax
5e61b8:	99                   	cltd
5e61b9:	39 55 10             	cmp    %edx,0x10(%ebp)
5e61bc:	7f d8                	jg     0x5e6196
5e61be:	7c 04                	jl     0x5e61c4
5e61c0:	3b f8                	cmp    %eax,%edi
5e61c2:	77 d2                	ja     0x5e6196
5e61c4:	03 cf                	add    %edi,%ecx
5e61c6:	b0 01                	mov    $0x1,%al
5e61c8:	89 0e                	mov    %ecx,(%esi)
5e61ca:	8b 4d 08             	mov    0x8(%ebp),%ecx
5e61cd:	29 79 08             	sub    %edi,0x8(%ecx)
5e61d0:	eb c6                	jmp    0x5e6198
5e61d2:	8b ff                	mov    %edi,%edi
5e61d4:	55                   	push   %ebp
5e61d5:	8b ec                	mov    %esp,%ebp
5e61d7:	8b 45 08             	mov    0x8(%ebp),%eax
5e61da:	8b 40 0c             	mov    0xc(%eax),%eax
5e61dd:	90                   	nop
5e61de:	c1 e8 0d             	shr    $0xd,%eax
5e61e1:	a8 01                	test   $0x1,%al
5e61e3:	75 13                	jne    0x5e61f8
5e61e5:	8b 45 18             	mov    0x18(%ebp),%eax
5e61e8:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
5e61ec:	c7 40 18 16 00 00 00 	movl   $0x16,0x18(%eax)
5e61f3:	83 c8 ff             	or     $0xffffffff,%eax
5e61f6:	5d                   	pop    %ebp
5e61f7:	c3                   	ret
5e61f8:	8b 45 08             	mov    0x8(%ebp),%eax
5e61fb:	53                   	push   %ebx
5e61fc:	56                   	push   %esi
5e61fd:	57                   	push   %edi
5e61fe:	6a f7                	push   $0xfffffff7
5e6200:	59                   	pop    %ecx
5e6201:	83 c0 0c             	add    $0xc,%eax
5e6204:	f0 21 08             	lock and %ecx,(%eax)
5e6207:	8b 75 14             	mov    0x14(%ebp),%esi
5e620a:	8b 7d 10             	mov    0x10(%ebp),%edi
5e620d:	8b 5d 0c             	mov    0xc(%ebp),%ebx
5e6210:	56                   	push   %esi
5e6211:	57                   	push   %edi
5e6212:	53                   	push   %ebx
5e6213:	ff 75 08             	push   0x8(%ebp)
5e6216:	e8 de fe ff ff       	call   0x5e60f9
5e621b:	83 c4 10             	add    $0x10,%esp
5e621e:	84 c0                	test   %al,%al
5e6220:	0f 85 91 00 00 00    	jne    0x5e62b7
5e6226:	83 fe 01             	cmp    $0x1,%esi
5e6229:	75 13                	jne    0x5e623e
5e622b:	ff 75 18             	push   0x18(%ebp)
5e622e:	ff 75 08             	push   0x8(%ebp)
5e6231:	e8 dc 06 00 00       	call   0x5e6912
5e6236:	03 d8                	add    %eax,%ebx
5e6238:	59                   	pop    %ecx
5e6239:	13 fa                	adc    %edx,%edi
5e623b:	33 f6                	xor    %esi,%esi
5e623d:	59                   	pop    %ecx
5e623e:	ff 75 18             	push   0x18(%ebp)
5e6241:	ff 75 08             	push   0x8(%ebp)
5e6244:	e8 84 a0 ff ff       	call   0x5e02cd
5e6249:	8b 45 08             	mov    0x8(%ebp),%eax
5e624c:	59                   	pop    %ecx
5e624d:	59                   	pop    %ecx
5e624e:	8b 48 04             	mov    0x4(%eax),%ecx
5e6251:	83 60 08 00          	andl   $0x0,0x8(%eax)
5e6255:	89 08                	mov    %ecx,(%eax)
5e6257:	8b 45 08             	mov    0x8(%ebp),%eax
5e625a:	8b 40 0c             	mov    0xc(%eax),%eax
5e625d:	90                   	nop
5e625e:	c1 e8 02             	shr    $0x2,%eax
5e6261:	a8 01                	test   $0x1,%al
5e6263:	8b 45 08             	mov    0x8(%ebp),%eax
5e6266:	74 0b                	je     0x5e6273
5e6268:	6a fc                	push   $0xfffffffc
5e626a:	59                   	pop    %ecx
5e626b:	83 c0 0c             	add    $0xc,%eax
5e626e:	f0 21 08             	lock and %ecx,(%eax)
5e6271:	eb 23                	jmp    0x5e6296
5e6273:	8b 40 0c             	mov    0xc(%eax),%eax
5e6276:	90                   	nop
5e6277:	83 e0 41             	and    $0x41,%eax
5e627a:	3c 41                	cmp    $0x41,%al
5e627c:	75 18                	jne    0x5e6296
5e627e:	8b 45 08             	mov    0x8(%ebp),%eax
5e6281:	8b 40 0c             	mov    0xc(%eax),%eax
5e6284:	90                   	nop
5e6285:	c1 e8 08             	shr    $0x8,%eax
5e6288:	a8 01                	test   $0x1,%al
5e628a:	75 0a                	jne    0x5e6296
5e628c:	8b 45 08             	mov    0x8(%ebp),%eax
5e628f:	c7 40 18 00 02 00 00 	movl   $0x200,0x18(%eax)
5e6296:	8b 45 08             	mov    0x8(%ebp),%eax
5e6299:	8b 40 10             	mov    0x10(%eax),%eax
5e629c:	90                   	nop
5e629d:	ff 75 18             	push   0x18(%ebp)
5e62a0:	56                   	push   %esi
5e62a1:	57                   	push   %edi
5e62a2:	53                   	push   %ebx
5e62a3:	50                   	push   %eax
5e62a4:	e8 57 91 00 00       	call   0x5ef400
5e62a9:	23 c2                	and    %edx,%eax
5e62ab:	83 c4 14             	add    $0x14,%esp
5e62ae:	83 f8 ff             	cmp    $0xffffffff,%eax
5e62b1:	75 04                	jne    0x5e62b7
5e62b3:	0b c0                	or     %eax,%eax
5e62b5:	eb 02                	jmp    0x5e62b9
5e62b7:	33 c0                	xor    %eax,%eax
5e62b9:	5f                   	pop    %edi
5e62ba:	5e                   	pop    %esi
5e62bb:	5b                   	pop    %ebx
5e62bc:	5d                   	pop    %ebp
5e62bd:	c3                   	ret
5e62be:	8b ff                	mov    %edi,%edi
5e62c0:	55                   	push   %ebp
5e62c1:	8b ec                	mov    %esp,%ebp
5e62c3:	83 ec 28             	sub    $0x28,%esp
5e62c6:	8d 4d d8             	lea    -0x28(%ebp),%ecx
5e62c9:	56                   	push   %esi
5e62ca:	6a 00                	push   $0x0
5e62cc:	e8 03 fc fe ff       	call   0x5d5ed4
5e62d1:	8d 45 d8             	lea    -0x28(%ebp),%eax
5e62d4:	50                   	push   %eax
5e62d5:	ff 75 10             	push   0x10(%ebp)
5e62d8:	8b 45 0c             	mov    0xc(%ebp),%eax
5e62db:	99                   	cltd
5e62dc:	52                   	push   %edx
5e62dd:	50                   	push   %eax
5e62de:	ff 75 08             	push   0x8(%ebp)
5e62e1:	e8 69 fd ff ff       	call   0x5e604f
5e62e6:	83 c4 14             	add    $0x14,%esp
5e62e9:	8d 4d d8             	lea    -0x28(%ebp),%ecx
5e62ec:	8b f0                	mov    %eax,%esi
5e62ee:	e8 29 fc fe ff       	call   0x5d5f1c
5e62f3:	8b c6                	mov    %esi,%eax
5e62f5:	5e                   	pop    %esi
5e62f6:	c9                   	leave
5e62f7:	c3                   	ret
5e62f8:	6a 0c                	push   $0xc
5e62fa:	68 b0 a8 68 00       	push   $0x68a8b0
5e62ff:	e8 fc c5 fe ff       	call   0x5d2900
5e6304:	33 f6                	xor    %esi,%esi
5e6306:	39 75 08             	cmp    %esi,0x8(%ebp)
5e6309:	75 21                	jne    0x5e632c
5e630b:	8b 45 0c             	mov    0xc(%ebp),%eax
5e630e:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
5e6312:	c7 40 18 16 00 00 00 	movl   $0x16,0x18(%eax)
5e6319:	50                   	push   %eax
5e631a:	56                   	push   %esi
5e631b:	56                   	push   %esi
5e631c:	56                   	push   %esi
5e631d:	56                   	push   %esi
5e631e:	56                   	push   %esi
5e631f:	e8 3f fe fe ff       	call   0x5d6163
5e6324:	83 c4 18             	add    $0x18,%esp
5e6327:	83 c8 ff             	or     $0xffffffff,%eax
5e632a:	eb 2f                	jmp    0x5e635b
5e632c:	89 75 e4             	mov    %esi,-0x1c(%ebp)
5e632f:	ff 75 08             	push   0x8(%ebp)
5e6332:	e8 35 9d ff ff       	call   0x5e006c
5e6337:	59                   	pop    %ecx
5e6338:	89 75 fc             	mov    %esi,-0x4(%ebp)
5e633b:	ff 75 0c             	push   0xc(%ebp)
5e633e:	ff 75 08             	push   0x8(%ebp)
5e6341:	e8 32 00 00 00       	call   0x5e6378
5e6346:	59                   	pop    %ecx
5e6347:	59                   	pop    %ecx
5e6348:	8b f0                	mov    %eax,%esi