5f5118:	8b 85 dc f6 ff ff    	mov    -0x924(%ebp),%eax
5f511e:	8b 8d e4 f6 ff ff    	mov    -0x91c(%ebp),%ecx
5f5124:	3b 85 bc f6 ff ff    	cmp    -0x944(%ebp),%eax
5f512a:	76 0b                	jbe    0x5f5137
5f512c:	8d 5a 01             	lea    0x1(%edx),%ebx
5f512f:	89 9d 5c fc ff ff    	mov    %ebx,-0x3a4(%ebp)
5f5135:	eb 3b                	jmp    0x5f5172
5f5137:	8b da                	mov    %edx,%ebx
5f5139:	eb f4                	jmp    0x5f512f
5f513b:	83 a5 d4 f4 ff ff 00 	andl   $0x0,-0xb2c(%ebp)
5f5142:	8d 85 d8 f4 ff ff    	lea    -0xb28(%ebp),%eax
5f5148:	83 a5 5c fc ff ff 00 	andl   $0x0,-0x3a4(%ebp)
5f514f:	6a 00                	push   $0x0
5f5151:	50                   	push   %eax
5f5152:	8d 85 60 fc ff ff    	lea    -0x3a0(%ebp),%eax
5f5158:	68 cc 01 00 00       	push   $0x1cc
5f515d:	50                   	push   %eax
5f515e:	e8 2e 90 ff ff       	call   0x5ee191
5f5163:	8b 9d 5c fc ff ff    	mov    -0x3a4(%ebp),%ebx
5f5169:	83 c4 10             	add    $0x10,%esp
5f516c:	8b 8d bc f8 ff ff    	mov    -0x744(%ebp),%ecx
5f5172:	8b 95 e0 f6 ff ff    	mov    -0x920(%ebp),%edx
5f5178:	8b 85 b4 f6 ff ff    	mov    -0x94c(%ebp),%eax
5f517e:	8b bd c4 f6 ff ff    	mov    -0x93c(%ebp),%edi
5f5184:	2b c7                	sub    %edi,%eax
5f5186:	89 85 b4 f6 ff ff    	mov    %eax,-0x94c(%ebp)
5f518c:	8b f0                	mov    %eax,%esi
5f518e:	85 ff                	test   %edi,%edi
5f5190:	74 35                	je     0x5f51c7
5f5192:	3b d0                	cmp    %eax,%edx
5f5194:	76 2d                	jbe    0x5f51c3
5f5196:	8b 85 a8 f6 ff ff    	mov    -0x958(%ebp),%eax
5f519c:	3b 85 ac f6 ff ff    	cmp    -0x954(%ebp),%eax
5f51a2:	ff b5 b0 f6 ff ff    	push   -0x950(%ebp)
5f51a8:	0f 95 c0             	setne  %al
5f51ab:	0f b6 c0             	movzbl %al,%eax
5f51ae:	50                   	push   %eax
5f51af:	8b 85 b8 f6 ff ff    	mov    -0x948(%ebp),%eax
5f51b5:	0f b6 80 08 03 00 00 	movzbl 0x308(%eax),%eax
5f51bc:	50                   	push   %eax
5f51bd:	57                   	push   %edi
5f51be:	e9 08 03 00 00       	jmp    0x5f54cb
5f51c3:	8b f0                	mov    %eax,%esi
5f51c5:	2b f2                	sub    %edx,%esi
5f51c7:	3b d9                	cmp    %ecx,%ebx
5f51c9:	77 3c                	ja     0x5f5207
5f51cb:	72 33                	jb     0x5f5200
5f51cd:	8d 4b ff             	lea    -0x1(%ebx),%ecx
5f51d0:	83 f9 ff             	cmp    $0xffffffff,%ecx
5f51d3:	74 32                	je     0x5f5207
5f51d5:	8b 84 8d 60 fc ff ff 	mov    -0x3a0(%ebp,%ecx,4),%eax
5f51dc:	3b 84 8d c0 f8 ff ff 	cmp    -0x740(%ebp,%ecx,4),%eax
5f51e3:	75 06                	jne    0x5f51eb
5f51e5:	49                   	dec    %ecx
5f51e6:	83 f9 ff             	cmp    $0xffffffff,%ecx
5f51e9:	75 ea                	jne    0x5f51d5
5f51eb:	83 f9 ff             	cmp    $0xffffffff,%ecx
5f51ee:	74 17                	je     0x5f5207
5f51f0:	8b 84 8d 60 fc ff ff 	mov    -0x3a0(%ebp,%ecx,4),%eax
5f51f7:	3b 84 8d c0 f8 ff ff 	cmp    -0x740(%ebp,%ecx,4),%eax
5f51fe:	77 07                	ja     0x5f5207
5f5200:	42                   	inc    %edx
5f5201:	89 95 e0 f6 ff ff    	mov    %edx,-0x920(%ebp)
5f5207:	6a 20                	push   $0x20
5f5209:	8b fe                	mov    %esi,%edi
5f520b:	33 c0                	xor    %eax,%eax
5f520d:	83 e6 1f             	and    $0x1f,%esi
5f5210:	c1 ef 05             	shr    $0x5,%edi
5f5213:	59                   	pop    %ecx
5f5214:	2b ce                	sub    %esi,%ecx
5f5216:	89 bd d4 f6 ff ff    	mov    %edi,-0x92c(%ebp)
5f521c:	40                   	inc    %eax
5f521d:	89 b5 d0 f6 ff ff    	mov    %esi,-0x930(%ebp)
5f5223:	33 d2                	xor    %edx,%edx
5f5225:	89 8d a4 f6 ff ff    	mov    %ecx,-0x95c(%ebp)
5f522b:	e8 60 d0 fe ff       	call   0x5e2290
5f5230:	8b 8c 9d 5c fc ff ff 	mov    -0x3a4(%ebp,%ebx,4),%ecx
5f5237:	48                   	dec    %eax
5f5238:	83 a5 cc f6 ff ff 00 	andl   $0x0,-0x934(%ebp)
5f523f:	89 85 c0 f6 ff ff    	mov    %eax,-0x940(%ebp)
5f5245:	f7 d0                	not    %eax
5f5247:	89 85 bc f6 ff ff    	mov    %eax,-0x944(%ebp)
5f524d:	0f bd c1             	bsr    %ecx,%eax
5f5250:	74 03                	je     0x5f5255
5f5252:	40                   	inc    %eax
5f5253:	eb 02                	jmp    0x5f5257
5f5255:	33 c0                	xor    %eax,%eax
5f5257:	6a 20                	push   $0x20
5f5259:	59                   	pop    %ecx
5f525a:	8d 14 1f             	lea    (%edi,%ebx,1),%edx
5f525d:	2b c8                	sub    %eax,%ecx
5f525f:	89 8d d8 f6 ff ff    	mov    %ecx,-0x928(%ebp)
5f5265:	89 95 c8 f6 ff ff    	mov    %edx,-0x938(%ebp)
5f526b:	83 fa 73             	cmp    $0x73,%edx
5f526e:	75 08                	jne    0x5f5278
5f5270:	3b f1                	cmp    %ecx,%esi
5f5272:	76 04                	jbe    0x5f5278
5f5274:	b0 01                	mov    $0x1,%al
5f5276:	eb 02                	jmp    0x5f527a
5f5278:	32 c0                	xor    %al,%al
5f527a:	83 fa 73             	cmp    $0x73,%edx
5f527d:	0f 87 ee 00 00 00    	ja     0x5f5371
5f5283:	84 c0                	test   %al,%al
5f5285:	0f 85 e6 00 00 00    	jne    0x5f5371
5f528b:	83 fa 72             	cmp    $0x72,%edx
5f528e:	72 09                	jb     0x5f5299
5f5290:	6a 72                	push   $0x72
5f5292:	5a                   	pop    %edx
5f5293:	89 95 c8 f6 ff ff    	mov    %edx,-0x938(%ebp)
5f5299:	8b ca                	mov    %edx,%ecx
5f529b:	89 8d cc f6 ff ff    	mov    %ecx,-0x934(%ebp)
5f52a1:	83 fa ff             	cmp    $0xffffffff,%edx
5f52a4:	0f 84 9c 00 00 00    	je     0x5f5346
5f52aa:	8b f2                	mov    %edx,%esi
5f52ac:	8d 85 60 fc ff ff    	lea    -0x3a0(%ebp),%eax
5f52b2:	8b 95 d4 f6 ff ff    	mov    -0x92c(%ebp),%edx
5f52b8:	2b f2                	sub    %edx,%esi
5f52ba:	8d 04 b0             	lea    (%eax,%esi,4),%eax
5f52bd:	89 85 dc f6 ff ff    	mov    %eax,-0x924(%ebp)
5f52c3:	3b ca                	cmp    %edx,%ecx
5f52c5:	72 6d                	jb     0x5f5334
5f52c7:	3b f3                	cmp    %ebx,%esi
5f52c9:	73 04                	jae    0x5f52cf
5f52cb:	8b 38                	mov    (%eax),%edi
5f52cd:	eb 02                	jmp    0x5f52d1
5f52cf:	33 ff                	xor    %edi,%edi
5f52d1:	8d 46 ff             	lea    -0x1(%esi),%eax
5f52d4:	3b c3                	cmp    %ebx,%eax
5f52d6:	73 0b                	jae    0x5f52e3
5f52d8:	8b 85 dc f6 ff ff    	mov    -0x924(%ebp),%eax
5f52de:	8b 40 fc             	mov    -0x4(%eax),%eax
5f52e1:	eb 02                	jmp    0x5f52e5
5f52e3:	33 c0                	xor    %eax,%eax
5f52e5:	23 85 bc f6 ff ff    	and    -0x944(%ebp),%eax
5f52eb:	23 bd c0 f6 ff ff    	and    -0x940(%ebp),%edi
5f52f1:	8b 8d a4 f6 ff ff    	mov    -0x95c(%ebp),%ecx
5f52f7:	d3 e8                	shr    %cl,%eax
5f52f9:	8b 8d d0 f6 ff ff    	mov    -0x930(%ebp),%ecx
5f52ff:	d3 e7                	shl    %cl,%edi
5f5301:	8b 8d cc f6 ff ff    	mov    -0x934(%ebp),%ecx
5f5307:	0b c7                	or     %edi,%eax
5f5309:	89 84 8d 60 fc ff ff 	mov    %eax,-0x3a0(%ebp,%ecx,4)
5f5310:	49                   	dec    %ecx
5f5311:	8b 85 dc f6 ff ff    	mov    -0x924(%ebp),%eax
5f5317:	4e                   	dec    %esi
5f5318:	83 e8 04             	sub    $0x4,%eax
5f531b:	89 8d cc f6 ff ff    	mov    %ecx,-0x934(%ebp)
5f5321:	89 85 dc f6 ff ff    	mov    %eax,-0x924(%ebp)
5f5327:	83 f9 ff             	cmp    $0xffffffff,%ecx
5f532a:	74 08                	je     0x5f5334
5f532c:	8b 9d 5c fc ff ff    	mov    -0x3a4(%ebp),%ebx
5f5332:	eb 8f                	jmp    0x5f52c3
5f5334:	8b 95 c8 f6 ff ff    	mov    -0x938(%ebp),%edx
5f533a:	8b b5 d0 f6 ff ff    	mov    -0x930(%ebp),%esi
5f5340:	8b bd d4 f6 ff ff    	mov    -0x92c(%ebp),%edi
5f5346:	85 ff                	test   %edi,%edi
5f5348:	74 0c                	je     0x5f5356
5f534a:	8b cf                	mov    %edi,%ecx
5f534c:	33 c0                	xor    %eax,%eax
5f534e:	8d bd 60 fc ff ff    	lea    -0x3a0(%ebp),%edi
5f5354:	f3 ab                	rep stos %eax,%es:(%edi)
5f5356:	3b b5 d8 f6 ff ff    	cmp    -0x928(%ebp),%esi
5f535c:	76 0b                	jbe    0x5f5369
5f535e:	8d 42 01             	lea    0x1(%edx),%eax
5f5361:	89 85 5c fc ff ff    	mov    %eax,-0x3a4(%ebp)
5f5367:	eb 33                	jmp    0x5f539c
5f5369:	89 95 5c fc ff ff    	mov    %edx,-0x3a4(%ebp)
5f536f:	eb 2b                	jmp    0x5f539c
5f5371:	83 a5 d4 f4 ff ff 00 	andl   $0x0,-0xb2c(%ebp)
5f5378:	8d 85 d8 f4 ff ff    	lea    -0xb28(%ebp),%eax
5f537e:	83 a5 5c fc ff ff 00 	andl   $0x0,-0x3a4(%ebp)
5f5385:	6a 00                	push   $0x0
5f5387:	50                   	push   %eax
5f5388:	8d 85 60 fc ff ff    	lea    -0x3a0(%ebp),%eax
5f538e:	68 cc 01 00 00       	push   $0x1cc
5f5393:	50                   	push   %eax
5f5394:	e8 f8 8d ff ff       	call   0x5ee191
5f5399:	83 c4 10             	add    $0x10,%esp
5f539c:	8d 85 bc f8 ff ff    	lea    -0x744(%ebp),%eax
5f53a2:	50                   	push   %eax
5f53a3:	8d 85 5c fc ff ff    	lea    -0x3a4(%ebp),%eax
5f53a9:	50                   	push   %eax
5f53aa:	e8 01 02 00 00       	call   0x5f55b0
5f53af:	83 bd 5c fc ff ff 00 	cmpl   $0x0,-0x3a4(%ebp)
5f53b6:	8b f8                	mov    %eax,%edi
5f53b8:	8b da                	mov    %edx,%ebx
5f53ba:	0f 94 c0             	sete   %al
5f53bd:	88 85 dc f6 ff ff    	mov    %al,-0x924(%ebp)
5f53c3:	59                   	pop    %ecx
5f53c4:	59                   	pop    %ecx
5f53c5:	85 db                	test   %ebx,%ebx
5f53c7:	75 11                	jne    0x5f53da
5f53c9:	83 ff ff             	cmp    $0xffffffff,%edi
5f53cc:	77 0c                	ja     0x5f53da
5f53ce:	0f bd f7             	bsr    %edi,%esi
5f53d1:	74 03                	je     0x5f53d6
5f53d3:	46                   	inc    %esi
5f53d4:	eb 11                	jmp    0x5f53e7
5f53d6:	33 f6                	xor    %esi,%esi
5f53d8:	eb 0d                	jmp    0x5f53e7
5f53da:	0f bd f3             	bsr    %ebx,%esi
5f53dd:	74 03                	je     0x5f53e2
5f53df:	46                   	inc    %esi
5f53e0:	eb 02                	jmp    0x5f53e4
5f53e2:	33 f6                	xor    %esi,%esi
5f53e4:	83 c6 20             	add    $0x20,%esi
5f53e7:	8b 8d b4 f6 ff ff    	mov    -0x94c(%ebp),%ecx
5f53ed:	3b f1                	cmp    %ecx,%esi
5f53ef:	76 3d                	jbe    0x5f542e
5f53f1:	2b f1                	sub    %ecx,%esi
5f53f3:	84 c0                	test   %al,%al
5f53f5:	74 21                	je     0x5f5418
5f53f7:	33 c0                	xor    %eax,%eax
5f53f9:	33 d2                	xor    %edx,%edx
5f53fb:	40                   	inc    %eax
5f53fc:	8b ce                	mov    %esi,%ecx
5f53fe:	e8 8d ce fe ff       	call   0x5e2290
5f5403:	83 c0 ff             	add    $0xffffffff,%eax
5f5406:	c6 85 dc f6 ff ff 01 	movb   $0x1,-0x924(%ebp)
5f540d:	83 d2 ff             	adc    $0xffffffff,%edx
5f5410:	23 c7                	and    %edi,%eax
5f5412:	23 d3                	and    %ebx,%edx
5f5414:	0b c2                	or     %edx,%eax
5f5416:	74 07                	je     0x5f541f
5f5418:	c6 85 dc f6 ff ff 00 	movb   $0x0,-0x924(%ebp)
5f541f:	8b c7                	mov    %edi,%eax
5f5421:	8b d3                	mov    %ebx,%edx
5f5423:	8b ce                	mov    %esi,%ecx
5f5425:	e8 36 cc fe ff       	call   0x5e2060
5f542a:	8b f8                	mov    %eax,%edi
5f542c:	8b da                	mov    %edx,%ebx
5f542e:	8b 8d b4 f6 ff ff    	mov    -0x94c(%ebp),%ecx
5f5434:	33 c0                	xor    %eax,%eax
5f5436:	3b 85 e8 f6 ff ff    	cmp    -0x918(%ebp),%eax
5f543c:	1b f6                	sbb    %esi,%esi
5f543e:	40                   	inc    %eax
5f543f:	23 b5 30 fe ff ff    	and    -0x1d0(%ebp),%esi
5f5445:	3b 85 e8 f6 ff ff    	cmp    -0x918(%ebp),%eax
5f544b:	1b d2                	sbb    %edx,%edx
5f544d:	33 c0                	xor    %eax,%eax
5f544f:	23 95 34 fe ff ff    	and    -0x1cc(%ebp),%edx
5f5455:	03 c6                	add    %esi,%eax
5f5457:	83 d2 00             	adc    $0x0,%edx
5f545a:	e8 31 ce fe ff       	call   0x5e2290
5f545f:	8b b5 c4 f6 ff ff    	mov    -0x93c(%ebp),%esi
5f5465:	8b c8                	mov    %eax,%ecx
5f5467:	03 cf                	add    %edi,%ecx
5f5469:	13 d3                	adc    %ebx,%edx
5f546b:	85 f6                	test   %esi,%esi
5f546d:	74 05                	je     0x5f5474
5f546f:	83 c6 fe             	add    $0xfffffffe,%esi
5f5472:	eb 08                	jmp    0x5f547c
5f5474:	8b b5 e0 f6 ff ff    	mov    -0x920(%ebp),%esi
5f547a:	f7 d6                	not    %esi
5f547c:	ff b5 b0 f6 ff ff    	push   -0x950(%ebp)
5f5482:	8b 85 b8 f6 ff ff    	mov    -0x948(%ebp),%eax
5f5488:	ff b5 dc f6 ff ff    	push   -0x924(%ebp)
5f548e:	0f b6 80 08 03 00 00 	movzbl 0x308(%eax),%eax
5f5495:	50                   	push   %eax
5f5496:	56                   	push   %esi
5f5497:	52                   	push   %edx
5f5498:	51                   	push   %ecx
5f5499:	e8 fa dd ff ff       	call   0x5f3298
5f549e:	83 c4 18             	add    $0x18,%esp
5f54a1:	eb 37                	jmp    0x5f54da
5f54a3:	8b 85 a8 f6 ff ff    	mov    -0x958(%ebp),%eax
5f54a9:	3b 85 ac f6 ff ff    	cmp    -0x954(%ebp),%eax
5f54af:	ff b5 b0 f6 ff ff    	push   -0x950(%ebp)
5f54b5:	0f 95 c0             	setne  %al
5f54b8:	0f b6 c0             	movzbl %al,%eax
5f54bb:	50                   	push   %eax
5f54bc:	8b 85 b8 f6 ff ff    	mov    -0x948(%ebp),%eax
5f54c2:	0f b6 80 08 03 00 00 	movzbl 0x308(%eax),%eax
5f54c9:	50                   	push   %eax
5f54ca:	51                   	push   %ecx
5f54cb:	8d 85 2c fe ff ff    	lea    -0x1d4(%ebp),%eax
5f54d1:	50                   	push   %eax
5f54d2:	e8 0a e1 ff ff       	call   0x5f35e1
5f54d7:	83 c4 14             	add    $0x14,%esp
5f54da:	8b 4d fc             	mov    -0x4(%ebp),%ecx
5f54dd:	5f                   	pop    %edi
5f54de:	5e                   	pop    %esi
5f54df:	33 cd                	xor    %ebp,%ecx
5f54e1:	5b                   	pop    %ebx
5f54e2:	e8 f3 bf fe ff       	call   0x5e14da
5f54e7:	c9                   	leave
5f54e8:	c3                   	ret
5f54e9:	8b ff                	mov    %edi,%edi
5f54eb:	55                   	push   %ebp
5f54ec:	8b ec                	mov    %esp,%ebp
5f54ee:	51                   	push   %ecx
5f54ef:	51                   	push   %ecx
5f54f0:	8b 45 0c             	mov    0xc(%ebp),%eax
5f54f3:	8b 4d 08             	mov    0x8(%ebp),%ecx
5f54f6:	53                   	push   %ebx
5f54f7:	56                   	push   %esi
5f54f8:	33 db                	xor    %ebx,%ebx
5f54fa:	57                   	push   %edi
5f54fb:	33 ff                	xor    %edi,%edi
5f54fd:	8d 71 08             	lea    0x8(%ecx),%esi
5f5500:	8b d7                	mov    %edi,%edx
5f5502:	38 50 04             	cmp    %dl,0x4(%eax)
5f5505:	8b 41 04             	mov    0x4(%ecx),%eax
5f5508:	0f 94 c3             	sete   %bl
5f550b:	89 55 fc             	mov    %edx,-0x4(%ebp)
5f550e:	4b                   	dec    %ebx
5f550f:	83 c0 08             	add    $0x8,%eax
5f5512:	83 e3 1d             	and    $0x1d,%ebx
5f5515:	03 c1                	add    %ecx,%eax
5f5517:	83 c3 17             	add    $0x17,%ebx
5f551a:	89 45 f8             	mov    %eax,-0x8(%ebp)
5f551d:	03 19                	add    (%ecx),%ebx
5f551f:	3b f0                	cmp    %eax,%esi
5f5521:	74 36                	je     0x5f5559
5f5523:	8b 4d 0c             	mov    0xc(%ebp),%ecx
5f5526:	e8 19 06 00 00       	call   0x5f5b44
5f552b:	8b 4d fc             	mov    -0x4(%ebp),%ecx
5f552e:	3b ca                	cmp    %edx,%ecx
5f5530:	77 21                	ja     0x5f5553
5f5532:	72 04                	jb     0x5f5538
5f5534:	3b f8                	cmp    %eax,%edi
5f5536:	77 1b                	ja     0x5f5553
5f5538:	0f b6 06             	movzbl (%esi),%eax
5f553b:	0f a4 f9 04          	shld   $0x4,%edi,%ecx
5f553f:	99                   	cltd
5f5540:	c1 e7 04             	shl    $0x4,%edi
5f5543:	03 f8                	add    %eax,%edi
5f5545:	13 ca                	adc    %edx,%ecx
5f5547:	46                   	inc    %esi
5f5548:	83 eb 04             	sub    $0x4,%ebx
5f554b:	89 4d fc             	mov    %ecx,-0x4(%ebp)
5f554e:	3b 75 f8             	cmp    -0x8(%ebp),%esi
5f5551:	75 d0                	jne    0x5f5523
5f5553:	8b 4d 08             	mov    0x8(%ebp),%ecx
5f5556:	8b 55 fc             	mov    -0x4(%ebp),%edx
5f5559:	b0 01                	mov    $0x1,%al
5f555b:	eb 0c                	jmp    0x5f5569
5f555d:	84 c0                	test   %al,%al
5f555f:	74 10                	je     0x5f5571
5f5561:	8a 06                	mov    (%esi),%al
5f5563:	46                   	inc    %esi
5f5564:	84 c0                	test   %al,%al
5f5566:	0f 94 c0             	sete   %al
5f5569:	88 45 fc             	mov    %al,-0x4(%ebp)
5f556c:	3b 75 f8             	cmp    -0x8(%ebp),%esi
5f556f:	75 ec                	jne    0x5f555d
5f5571:	ff 75 0c             	push   0xc(%ebp)
5f5574:	0f b6 81 08 03 00 00 	movzbl 0x308(%ecx),%eax
5f557b:	ff 75 fc             	push   -0x4(%ebp)
5f557e:	50                   	push   %eax