55b2ce:	83 c6 02             	add    $0x2,%esi
55b2d1:	83 c2 02             	add    $0x2,%edx
55b2d4:	83 e9 01             	sub    $0x1,%ecx
55b2d7:	75 ed                	jne    0x55b2c6
55b2d9:	33 c0                	xor    %eax,%eax
55b2db:	5e                   	pop    %esi
55b2dc:	85 c0                	test   %eax,%eax
55b2de:	75 1c                	jne    0x55b2fc
55b2e0:	3b fb                	cmp    %ebx,%edi
55b2e2:	76 14                	jbe    0x55b2f8
55b2e4:	5f                   	pop    %edi
55b2e5:	83 c8 ff             	or     $0xffffffff,%eax
55b2e8:	5b                   	pop    %ebx
55b2e9:	c3                   	ret
55b2ea:	0f b7 06             	movzwl (%esi),%eax
55b2ed:	66 3b 02             	cmp    (%edx),%ax
55b2f0:	1b c0                	sbb    %eax,%eax
55b2f2:	83 e0 fe             	and    $0xfffffffe,%eax
55b2f5:	40                   	inc    %eax
55b2f6:	eb e3                	jmp    0x55b2db
55b2f8:	1b c0                	sbb    %eax,%eax
55b2fa:	f7 d8                	neg    %eax
55b2fc:	5f                   	pop    %edi
55b2fd:	5b                   	pop    %ebx
55b2fe:	c3                   	ret
55b2ff:	cc                   	int3
55b300:	cc                   	int3
55b301:	cc                   	int3
55b302:	cc                   	int3
55b303:	cc                   	int3
55b304:	cc                   	int3
55b305:	cc                   	int3
55b306:	cc                   	int3
55b307:	cc                   	int3
55b308:	cc                   	int3
55b309:	cc                   	int3
55b30a:	cc                   	int3
55b30b:	cc                   	int3
55b30c:	cc                   	int3
55b30d:	cc                   	int3
55b30e:	cc                   	int3
55b30f:	cc                   	int3
55b310:	cc                   	int3
55b311:	cc                   	int3
55b312:	cc                   	int3
55b313:	cc                   	int3
55b314:	cc                   	int3
55b315:	cc                   	int3
55b316:	cc                   	int3
55b317:	cc                   	int3
55b318:	cc                   	int3
55b319:	cc                   	int3
55b31a:	cc                   	int3
55b31b:	cc                   	int3
55b31c:	cc                   	int3
55b31d:	cc                   	int3
55b31e:	cc                   	int3
55b31f:	cc                   	int3
55b320:	8b 41 08             	mov    0x8(%ecx),%eax
55b323:	2b 41 04             	sub    0x4(%ecx),%eax
55b326:	c1 f8 03             	sar    $0x3,%eax
55b329:	c3                   	ret
55b32a:	cc                   	int3
55b32b:	cc                   	int3
55b32c:	cc                   	int3
55b32d:	cc                   	int3
55b32e:	cc                   	int3
55b32f:	cc                   	int3
55b330:	68 58 20 bd 00       	push   $0xbd2058
55b335:	e8 dc e4 ec ff       	call   0x429816
55b33a:	cc                   	int3
55b33b:	cc                   	int3
55b33c:	cc                   	int3
55b33d:	2b 49 fc             	sub    -0x4(%ecx),%ecx
55b340:	e9 f6 c1 ea ff       	jmp    0x40753b
55b345:	cc                   	int3
55b346:	cc                   	int3
55b347:	cc                   	int3
55b348:	cc                   	int3
55b349:	cc                   	int3
55b34a:	cc                   	int3
55b34b:	cc                   	int3
55b34c:	cc                   	int3
55b34d:	cc                   	int3
55b34e:	cc                   	int3
55b34f:	cc                   	int3
55b350:	8b 41 e4             	mov    -0x1c(%ecx),%eax
55b353:	83 c1 f0             	add    $0xfffffff0,%ecx
55b356:	8b 40 0c             	mov    0xc(%eax),%eax
55b359:	03 c8                	add    %eax,%ecx
55b35b:	e9 e1 18 ed ff       	jmp    0x42cc41
55b360:	cc                   	int3
55b361:	cc                   	int3
55b362:	cc                   	int3
55b363:	cc                   	int3
55b364:	2b 49 fc             	sub    -0x4(%ecx),%ecx
55b367:	8b 41 f8             	mov    -0x8(%ecx),%eax
55b36a:	03 48 0c             	add    0xc(%eax),%ecx
55b36d:	83 c1 04             	add    $0x4,%ecx
55b370:	e9 cc 18 ed ff       	jmp    0x42cc41
55b375:	cc                   	int3
55b376:	cc                   	int3
55b377:	cc                   	int3
55b378:	cc                   	int3
55b379:	cc                   	int3
55b37a:	cc                   	int3
55b37b:	cc                   	int3
55b37c:	cc                   	int3
55b37d:	cc                   	int3
55b37e:	cc                   	int3
55b37f:	cc                   	int3
55b380:	e9 39 c0 eb ff       	jmp    0x4173be
55b385:	cc                   	int3
55b386:	cc                   	int3
55b387:	cc                   	int3
55b388:	cc                   	int3
55b389:	cc                   	int3
55b38a:	cc                   	int3
55b38b:	cc                   	int3
55b38c:	cc                   	int3
55b38d:	cc                   	int3
55b38e:	cc                   	int3
55b38f:	cc                   	int3
55b390:	e9 98 01 eb ff       	jmp    0x40b52d
55b395:	cc                   	int3
55b396:	cc                   	int3
55b397:	cc                   	int3
55b398:	cc                   	int3
55b399:	cc                   	int3
55b39a:	cc                   	int3
55b39b:	cc                   	int3
55b39c:	cc                   	int3
55b39d:	cc                   	int3
55b39e:	cc                   	int3
55b39f:	cc                   	int3
55b3a0:	8b 44 24 04          	mov    0x4(%esp),%eax
55b3a4:	85 c0                	test   %eax,%eax
55b3a6:	75 03                	jne    0x55b3ab
55b3a8:	c2 04 00             	ret    $0x4
55b3ab:	3d 55 55 55 05       	cmp    $0x5555555,%eax
55b3b0:	77 3e                	ja     0x55b3f0
55b3b2:	8d 04 40             	lea    (%eax,%eax,2),%eax
55b3b5:	c1 e0 04             	shl    $0x4,%eax
55b3b8:	3d 00 10 00 00       	cmp    $0x1000,%eax
55b3bd:	72 22                	jb     0x55b3e1
55b3bf:	8d 48 23             	lea    0x23(%eax),%ecx
55b3c2:	3b c8                	cmp    %eax,%ecx
55b3c4:	76 2f                	jbe    0x55b3f5
55b3c6:	51                   	push   %ecx
55b3c7:	e8 b1 f5 ec ff       	call   0x42a97d
55b3cc:	8b c8                	mov    %eax,%ecx
55b3ce:	83 c4 04             	add    $0x4,%esp
55b3d1:	85 c9                	test   %ecx,%ecx
55b3d3:	74 25                	je     0x55b3fa
55b3d5:	8d 41 23             	lea    0x23(%ecx),%eax
55b3d8:	83 e0 e0             	and    $0xffffffe0,%eax
55b3db:	89 48 fc             	mov    %ecx,-0x4(%eax)
55b3de:	c2 04 00             	ret    $0x4
55b3e1:	50                   	push   %eax
55b3e2:	e8 96 f5 ec ff       	call   0x42a97d
55b3e7:	83 c4 04             	add    $0x4,%esp
55b3ea:	85 c0                	test   %eax,%eax
55b3ec:	75 ba                	jne    0x55b3a8
55b3ee:	eb 0f                	jmp    0x55b3ff
55b3f0:	e8 29 6b ea ff       	call   0x401f1e
55b3f5:	e8 24 6b ea ff       	call   0x401f1e
55b3fa:	e8 8e 25 ee ff       	call   0x43d98d
55b3ff:	e8 89 25 ee ff       	call   0x43d98d
55b404:	cc                   	int3
55b405:	cc                   	int3
55b406:	cc                   	int3
55b407:	cc                   	int3
55b408:	cc                   	int3
55b409:	cc                   	int3
55b40a:	cc                   	int3
55b40b:	cc                   	int3
55b40c:	cc                   	int3
55b40d:	cc                   	int3
55b40e:	cc                   	int3
55b40f:	cc                   	int3
55b410:	cc                   	int3
55b411:	cc                   	int3
55b412:	cc                   	int3
55b413:	cc                   	int3
55b414:	cc                   	int3
55b415:	cc                   	int3
55b416:	cc                   	int3
55b417:	cc                   	int3
55b418:	cc                   	int3
55b419:	cc                   	int3
55b41a:	cc                   	int3
55b41b:	cc                   	int3
55b41c:	cc                   	int3
55b41d:	cc                   	int3
55b41e:	cc                   	int3
55b41f:	cc                   	int3
55b420:	8b 44 24 04          	mov    0x4(%esp),%eax
55b424:	85 c0                	test   %eax,%eax
55b426:	75 03                	jne    0x55b42b
55b428:	c2 04 00             	ret    $0x4
55b42b:	3d ff ff ff 1f       	cmp    $0x1fffffff,%eax
55b430:	77 3b                	ja     0x55b46d
55b432:	c1 e0 03             	shl    $0x3,%eax
55b435:	3d 00 10 00 00       	cmp    $0x1000,%eax
55b43a:	72 22                	jb     0x55b45e
55b43c:	8d 48 23             	lea    0x23(%eax),%ecx
55b43f:	3b c8                	cmp    %eax,%ecx
55b441:	76 2f                	jbe    0x55b472
55b443:	51                   	push   %ecx
55b444:	e8 34 f5 ec ff       	call   0x42a97d
55b449:	8b c8                	mov    %eax,%ecx
55b44b:	83 c4 04             	add    $0x4,%esp
55b44e:	85 c9                	test   %ecx,%ecx
55b450:	74 25                	je     0x55b477
55b452:	8d 41 23             	lea    0x23(%ecx),%eax
55b455:	83 e0 e0             	and    $0xffffffe0,%eax
55b458:	89 48 fc             	mov    %ecx,-0x4(%eax)
55b45b:	c2 04 00             	ret    $0x4
55b45e:	50                   	push   %eax
55b45f:	e8 19 f5 ec ff       	call   0x42a97d
55b464:	83 c4 04             	add    $0x4,%esp
55b467:	85 c0                	test   %eax,%eax
55b469:	75 bd                	jne    0x55b428
55b46b:	eb 0f                	jmp    0x55b47c
55b46d:	e8 ac 6a ea ff       	call   0x401f1e
55b472:	e8 a7 6a ea ff       	call   0x401f1e
55b477:	e8 11 25 ee ff       	call   0x43d98d
55b47c:	e8 0c 25 ee ff       	call   0x43d98d
55b481:	cc                   	int3
55b482:	cc                   	int3
55b483:	cc                   	int3
55b484:	cc                   	int3
55b485:	cc                   	int3
55b486:	cc                   	int3
55b487:	cc                   	int3
55b488:	cc                   	int3
55b489:	cc                   	int3
55b48a:	cc                   	int3
55b48b:	cc                   	int3
55b48c:	cc                   	int3
55b48d:	cc                   	int3
55b48e:	cc                   	int3
55b48f:	cc                   	int3
55b490:	cc                   	int3
55b491:	cc                   	int3
55b492:	cc                   	int3
55b493:	cc                   	int3
55b494:	cc                   	int3
55b495:	cc                   	int3
55b496:	cc                   	int3
55b497:	cc                   	int3
55b498:	cc                   	int3
55b499:	cc                   	int3
55b49a:	cc                   	int3
55b49b:	cc                   	int3
55b49c:	cc                   	int3
55b49d:	cc                   	int3
55b49e:	cc                   	int3
55b49f:	cc                   	int3
55b4a0:	8b 01                	mov    (%ecx),%eax
55b4a2:	8b 08                	mov    (%eax),%ecx
55b4a4:	8b 44 24 04          	mov    0x4(%esp),%eax
55b4a8:	89 08                	mov    %ecx,(%eax)
55b4aa:	c2 04 00             	ret    $0x4
55b4ad:	cc                   	int3
55b4ae:	cc                   	int3
55b4af:	cc                   	int3
55b4b0:	8b 44 24 04          	mov    0x4(%esp),%eax
55b4b4:	8b 09                	mov    (%ecx),%ecx
55b4b6:	89 08                	mov    %ecx,(%eax)
55b4b8:	c2 04 00             	ret    $0x4
55b4bb:	cc                   	int3
55b4bc:	cc                   	int3
55b4bd:	cc                   	int3
55b4be:	cc                   	int3
55b4bf:	cc                   	int3
55b4c0:	8b 41 14             	mov    0x14(%ecx),%eax
55b4c3:	c3                   	ret
55b4c4:	cc                   	int3
55b4c5:	cc                   	int3
55b4c6:	cc                   	int3
55b4c7:	cc                   	int3
55b4c8:	cc                   	int3
55b4c9:	cc                   	int3
55b4ca:	cc                   	int3
55b4cb:	cc                   	int3
55b4cc:	cc                   	int3
55b4cd:	cc                   	int3
55b4ce:	cc                   	int3
55b4cf:	cc                   	int3
55b4d0:	8b 41 08             	mov    0x8(%ecx),%eax
55b4d3:	2b 01                	sub    (%ecx),%eax
55b4d5:	c1 f8 03             	sar    $0x3,%eax
55b4d8:	c3                   	ret
55b4d9:	cc                   	int3
55b4da:	cc                   	int3
55b4db:	cc                   	int3
55b4dc:	cc                   	int3
55b4dd:	cc                   	int3
55b4de:	cc                   	int3
55b4df:	cc                   	int3
55b4e0:	8b 49 04             	mov    0x4(%ecx),%ecx
55b4e3:	85 c9                	test   %ecx,%ecx
55b4e5:	74 10                	je     0x55b4f7
55b4e7:	8b 41 04             	mov    0x4(%ecx),%eax
55b4ea:	83 c1 04             	add    $0x4,%ecx
55b4ed:	8b 40 04             	mov    0x4(%eax),%eax
55b4f0:	03 c8                	add    %eax,%ecx
55b4f2:	8b 01                	mov    (%ecx),%eax
55b4f4:	ff 60 14             	jmp    *0x14(%eax)
55b4f7:	33 c0                	xor    %eax,%eax
55b4f9:	c2 04 00             	ret    $0x4
55b4fc:	cc                   	int3
55b4fd:	cc                   	int3
55b4fe:	cc                   	int3
55b4ff:	cc                   	int3
55b500:	cc                   	int3
55b501:	cc                   	int3
55b502:	cc                   	int3
55b503:	cc                   	int3
55b504:	cc                   	int3
55b505:	cc                   	int3
55b506:	cc                   	int3
55b507:	cc                   	int3
55b508:	cc                   	int3
55b509:	cc                   	int3
55b50a:	cc                   	int3
55b50b:	cc                   	int3
55b50c:	cc                   	int3
55b50d:	cc                   	int3
55b50e:	cc                   	int3
55b50f:	cc                   	int3
55b510:	8b 49 04             	mov    0x4(%ecx),%ecx
55b513:	85 c9                	test   %ecx,%ecx
55b515:	74 10                	je     0x55b527
55b517:	8b 41 04             	mov    0x4(%ecx),%eax
55b51a:	83 c1 04             	add    $0x4,%ecx
55b51d:	8b 40 04             	mov    0x4(%eax),%eax
55b520:	03 c8                	add    %eax,%ecx
55b522:	8b 01                	mov    (%ecx),%eax
55b524:	ff 60 14             	jmp    *0x14(%eax)
55b527:	33 c0                	xor    %eax,%eax
55b529:	c2 04 00             	ret    $0x4
55b52c:	cc                   	int3
55b52d:	cc                   	int3
55b52e:	cc                   	int3
55b52f:	cc                   	int3
55b530:	cc                   	int3
55b531:	cc                   	int3
55b532:	cc                   	int3