40438c:	31 c9                	xor    %ecx,%ecx
40438e:	85 d2                	test   %edx,%edx
404390:	74 2d                	je     0x4043bf
404392:	52                   	push   %edx
404393:	66 3b 0a             	cmp    (%edx),%cx
404396:	74 20                	je     0x4043b8
404398:	66 3b 4a 02          	cmp    0x2(%edx),%cx
40439c:	74 17                	je     0x4043b5
40439e:	66 3b 4a 04          	cmp    0x4(%edx),%cx
4043a2:	74 0e                	je     0x4043b2
4043a4:	66 3b 4a 06          	cmp    0x6(%edx),%cx
4043a8:	74 05                	je     0x4043af
4043aa:	83 c2 08             	add    $0x8,%edx
4043ad:	eb e4                	jmp    0x404393
4043af:	83 c2 02             	add    $0x2,%edx
4043b2:	83 c2 02             	add    $0x2,%edx
4043b5:	83 c2 02             	add    $0x2,%edx
4043b8:	89 d1                	mov    %edx,%ecx
4043ba:	5a                   	pop    %edx
4043bb:	29 d1                	sub    %edx,%ecx
4043bd:	d1 e9                	shr    $1,%ecx
4043bf:	e9 fc fe ff ff       	jmp    0x4042c0
4043c4:	c3                   	ret
4043c5:	8d 40 00             	lea    0x0(%eax),%eax
4043c8:	31 c9                	xor    %ecx,%ecx
4043ca:	8a 0a                	mov    (%edx),%cl
4043cc:	42                   	inc    %edx
4043cd:	e9 82 fe ff ff       	jmp    0x404254
4043d2:	c3                   	ret
4043d3:	90                   	nop
4043d4:	57                   	push   %edi
4043d5:	50                   	push   %eax
4043d6:	51                   	push   %ecx
4043d7:	89 d7                	mov    %edx,%edi
4043d9:	31 c0                	xor    %eax,%eax
4043db:	f2 ae                	repnz scas %es:(%edi),%al
4043dd:	75 02                	jne    0x4043e1
4043df:	f7 d1                	not    %ecx
4043e1:	58                   	pop    %eax
4043e2:	01 c1                	add    %eax,%ecx
4043e4:	58                   	pop    %eax
4043e5:	5f                   	pop    %edi
4043e6:	e9 69 fe ff ff       	jmp    0x404254
4043eb:	c3                   	ret
4043ec:	31 c9                	xor    %ecx,%ecx
4043ee:	85 d2                	test   %edx,%edx
4043f0:	74 05                	je     0x4043f7
4043f2:	8b 4a fc             	mov    -0x4(%edx),%ecx
4043f5:	d1 e9                	shr    $1,%ecx
4043f7:	e9 c4 fe ff ff       	jmp    0x4042c0
4043fc:	c3                   	ret
4043fd:	8d 40 00             	lea    0x0(%eax),%eax
404400:	53                   	push   %ebx
404401:	85 d2                	test   %edx,%edx
404403:	74 18                	je     0x40441d
404405:	8b 5a fc             	mov    -0x4(%edx),%ebx
404408:	85 db                	test   %ebx,%ebx
40440a:	74 11                	je     0x40441d
40440c:	39 d9                	cmp    %ebx,%ecx
40440e:	7c 02                	jl     0x404412
404410:	89 d9                	mov    %ebx,%ecx
404412:	88 08                	mov    %cl,(%eax)
404414:	40                   	inc    %eax
404415:	92                   	xchg   %eax,%edx
404416:	e8 59 e5 ff ff       	call   0x402974
40441b:	5b                   	pop    %ebx
40441c:	c3                   	ret
40441d:	c6 00 00             	movb   $0x0,(%eax)
404420:	5b                   	pop    %ebx
404421:	c3                   	ret
404422:	8b c0                	mov    %eax,%eax
404424:	85 c0                	test   %eax,%eax
404426:	74 03                	je     0x40442b
404428:	8b 40 fc             	mov    -0x4(%eax),%eax
40442b:	c3                   	ret
40442c:	85 d2                	test   %edx,%edx
40442e:	74 3f                	je     0x40446f
404430:	8b 08                	mov    (%eax),%ecx
404432:	85 c9                	test   %ecx,%ecx
404434:	0f 84 7e fd ff ff    	je     0x4041b8
40443a:	53                   	push   %ebx
40443b:	56                   	push   %esi
40443c:	57                   	push   %edi
40443d:	89 c3                	mov    %eax,%ebx
40443f:	89 d6                	mov    %edx,%esi
404441:	8b 79 fc             	mov    -0x4(%ecx),%edi
404444:	8b 56 fc             	mov    -0x4(%esi),%edx
404447:	01 fa                	add    %edi,%edx
404449:	39 ce                	cmp    %ecx,%esi
40444b:	74 17                	je     0x404464
40444d:	e8 5e 03 00 00       	call   0x4047b0
404452:	89 f0                	mov    %esi,%eax
404454:	8b 4e fc             	mov    -0x4(%esi),%ecx
404457:	8b 13                	mov    (%ebx),%edx
404459:	01 fa                	add    %edi,%edx
40445b:	e8 14 e5 ff ff       	call   0x402974
404460:	5f                   	pop    %edi
404461:	5e                   	pop    %esi
404462:	5b                   	pop    %ebx
404463:	c3                   	ret
404464:	e8 47 03 00 00       	call   0x4047b0
404469:	8b 03                	mov    (%ebx),%eax
40446b:	89 f9                	mov    %edi,%ecx
40446d:	eb e8                	jmp    0x404457
40446f:	c3                   	ret
404470:	85 d2                	test   %edx,%edx
404472:	74 61                	je     0x4044d5
404474:	85 c9                	test   %ecx,%ecx
404476:	0f 84 3c fd ff ff    	je     0x4041b8
40447c:	3b 10                	cmp    (%eax),%edx
40447e:	74 5c                	je     0x4044dc
404480:	3b 08                	cmp    (%eax),%ecx
404482:	74 0e                	je     0x404492
404484:	50                   	push   %eax
404485:	51                   	push   %ecx
404486:	e8 2d fd ff ff       	call   0x4041b8
40448b:	5a                   	pop    %edx
40448c:	58                   	pop    %eax
40448d:	e9 9a ff ff ff       	jmp    0x40442c
404492:	53                   	push   %ebx
404493:	56                   	push   %esi
404494:	57                   	push   %edi
404495:	89 d3                	mov    %edx,%ebx
404497:	89 ce                	mov    %ecx,%esi
404499:	50                   	push   %eax
40449a:	8b 43 fc             	mov    -0x4(%ebx),%eax
40449d:	03 46 fc             	add    -0x4(%esi),%eax
4044a0:	e8 83 fd ff ff       	call   0x404228
4044a5:	89 c7                	mov    %eax,%edi
4044a7:	89 c2                	mov    %eax,%edx
4044a9:	89 d8                	mov    %ebx,%eax
4044ab:	8b 4b fc             	mov    -0x4(%ebx),%ecx
4044ae:	e8 c1 e4 ff ff       	call   0x402974
4044b3:	89 fa                	mov    %edi,%edx
4044b5:	89 f0                	mov    %esi,%eax
4044b7:	8b 4e fc             	mov    -0x4(%esi),%ecx
4044ba:	03 53 fc             	add    -0x4(%ebx),%edx
4044bd:	e8 b2 e4 ff ff       	call   0x402974
4044c2:	58                   	pop    %eax
4044c3:	89 fa                	mov    %edi,%edx
4044c5:	85 ff                	test   %edi,%edi
4044c7:	74 03                	je     0x4044cc
4044c9:	ff 4f f8             	decl   -0x8(%edi)
4044cc:	e8 e7 fc ff ff       	call   0x4041b8
4044d1:	5f                   	pop    %edi
4044d2:	5e                   	pop    %esi
4044d3:	5b                   	pop    %ebx
4044d4:	c3                   	ret
4044d5:	89 ca                	mov    %ecx,%edx
4044d7:	e9 dc fc ff ff       	jmp    0x4041b8
4044dc:	89 ca                	mov    %ecx,%edx
4044de:	e9 49 ff ff ff       	jmp    0x40442c
4044e3:	c3                   	ret
4044e4:	53                   	push   %ebx
4044e5:	56                   	push   %esi
4044e6:	57                   	push   %edi
4044e7:	52                   	push   %edx
4044e8:	50                   	push   %eax
4044e9:	89 d3                	mov    %edx,%ebx
4044eb:	31 ff                	xor    %edi,%edi
4044ed:	8b 4c 94 14          	mov    0x14(%esp,%edx,4),%ecx
4044f1:	85 c9                	test   %ecx,%ecx
4044f3:	74 0c                	je     0x404501
4044f5:	39 08                	cmp    %ecx,(%eax)
4044f7:	75 08                	jne    0x404501
4044f9:	89 cf                	mov    %ecx,%edi
4044fb:	8b 41 fc             	mov    -0x4(%ecx),%eax
4044fe:	4a                   	dec    %edx
4044ff:	eb 02                	jmp    0x404503
404501:	31 c0                	xor    %eax,%eax
404503:	8b 4c 94 14          	mov    0x14(%esp,%edx,4),%ecx
404507:	85 c9                	test   %ecx,%ecx
404509:	74 09                	je     0x404514
40450b:	03 41 fc             	add    -0x4(%ecx),%eax
40450e:	39 cf                	cmp    %ecx,%edi
404510:	75 02                	jne    0x404514
404512:	31 ff                	xor    %edi,%edi
404514:	4a                   	dec    %edx
404515:	75 ec                	jne    0x404503
404517:	85 ff                	test   %edi,%edi
404519:	74 17                	je     0x404532
40451b:	89 c2                	mov    %eax,%edx
40451d:	8b 04 24             	mov    (%esp),%eax
404520:	8b 77 fc             	mov    -0x4(%edi),%esi
404523:	e8 88 02 00 00       	call   0x4047b0
404528:	8b 3c 24             	mov    (%esp),%edi
40452b:	ff 37                	push   (%edi)
40452d:	03 37                	add    (%edi),%esi
40452f:	4b                   	dec    %ebx
404530:	eb 08                	jmp    0x40453a
404532:	e8 f1 fc ff ff       	call   0x404228
404537:	50                   	push   %eax
404538:	89 c6                	mov    %eax,%esi
40453a:	8b 44 9c 18          	mov    0x18(%esp,%ebx,4),%eax
40453e:	89 f2                	mov    %esi,%edx
404540:	85 c0                	test   %eax,%eax
404542:	74 0a                	je     0x40454e
404544:	8b 48 fc             	mov    -0x4(%eax),%ecx
404547:	01 ce                	add    %ecx,%esi
404549:	e8 26 e4 ff ff       	call   0x402974
40454e:	4b                   	dec    %ebx
40454f:	75 e9                	jne    0x40453a
404551:	5a                   	pop    %edx
404552:	58                   	pop    %eax
404553:	85 ff                	test   %edi,%edi
404555:	75 0c                	jne    0x404563
404557:	85 d2                	test   %edx,%edx
404559:	74 03                	je     0x40455e
40455b:	ff 4a f8             	decl   -0x8(%edx)
40455e:	e8 55 fc ff ff       	call   0x4041b8
404563:	5a                   	pop    %edx
404564:	5f                   	pop    %edi
404565:	5e                   	pop    %esi
404566:	5b                   	pop    %ebx
404567:	58                   	pop    %eax
404568:	8d 24 94             	lea    (%esp,%edx,4),%esp
40456b:	ff e0                	jmp    *%eax
40456d:	c3                   	ret
40456e:	8b c0                	mov    %eax,%eax
404570:	53                   	push   %ebx
404571:	56                   	push   %esi
404572:	57                   	push   %edi
404573:	89 c6                	mov    %eax,%esi
404575:	89 d7                	mov    %edx,%edi
404577:	39 d0                	cmp    %edx,%eax
404579:	0f 84 8f 00 00 00    	je     0x40460e
40457f:	85 f6                	test   %esi,%esi
404581:	74 68                	je     0x4045eb
404583:	85 ff                	test   %edi,%edi
404585:	74 6b                	je     0x4045f2
404587:	8b 46 fc             	mov    -0x4(%esi),%eax
40458a:	8b 57 fc             	mov    -0x4(%edi),%edx
40458d:	29 d0                	sub    %edx,%eax
40458f:	77 02                	ja     0x404593
404591:	01 c2                	add    %eax,%edx
404593:	52                   	push   %edx
404594:	c1 ea 02             	shr    $0x2,%edx
404597:	74 26                	je     0x4045bf
404599:	8b 0e                	mov    (%esi),%ecx
40459b:	8b 1f                	mov    (%edi),%ebx
40459d:	39 d9                	cmp    %ebx,%ecx
40459f:	75 58                	jne    0x4045f9
4045a1:	4a                   	dec    %edx
4045a2:	74 15                	je     0x4045b9
4045a4:	8b 4e 04             	mov    0x4(%esi),%ecx
4045a7:	8b 5f 04             	mov    0x4(%edi),%ebx
4045aa:	39 d9                	cmp    %ebx,%ecx
4045ac:	75 4b                	jne    0x4045f9
4045ae:	83 c6 08             	add    $0x8,%esi
4045b1:	83 c7 08             	add    $0x8,%edi
4045b4:	4a                   	dec    %edx
4045b5:	75 e2                	jne    0x404599
4045b7:	eb 06                	jmp    0x4045bf
4045b9:	83 c6 04             	add    $0x4,%esi
4045bc:	83 c7 04             	add    $0x4,%edi
4045bf:	5a                   	pop    %edx
4045c0:	83 e2 03             	and    $0x3,%edx
4045c3:	74 22                	je     0x4045e7
4045c5:	8b 0e                	mov    (%esi),%ecx
4045c7:	8b 1f                	mov    (%edi),%ebx
4045c9:	38 d9                	cmp    %bl,%cl
4045cb:	75 41                	jne    0x40460e
4045cd:	4a                   	dec    %edx
4045ce:	74 17                	je     0x4045e7
4045d0:	38 fd                	cmp    %bh,%ch
4045d2:	75 3a                	jne    0x40460e
4045d4:	4a                   	dec    %edx
4045d5:	74 10                	je     0x4045e7
4045d7:	81 e3 00 00 ff 00    	and    $0xff0000,%ebx
4045dd:	81 e1 00 00 ff 00    	and    $0xff0000,%ecx
4045e3:	39 d9                	cmp    %ebx,%ecx
4045e5:	75 27                	jne    0x40460e
4045e7:	01 c0                	add    %eax,%eax
4045e9:	eb 23                	jmp    0x40460e
4045eb:	8b 57 fc             	mov    -0x4(%edi),%edx
4045ee:	29 d0                	sub    %edx,%eax
4045f0:	eb 1c                	jmp    0x40460e
4045f2:	8b 46 fc             	mov    -0x4(%esi),%eax
4045f5:	29 d0                	sub    %edx,%eax
4045f7:	eb 15                	jmp    0x40460e
4045f9:	5a                   	pop    %edx
4045fa:	38 d9                	cmp    %bl,%cl
4045fc:	75 10                	jne    0x40460e
4045fe:	38 fd                	cmp    %bh,%ch
404600:	75 0c                	jne    0x40460e
404602:	c1 e9 10             	shr    $0x10,%ecx
404605:	c1 eb 10             	shr    $0x10,%ebx
404608:	38 d9                	cmp    %bl,%cl
40460a:	75 02                	jne    0x40460e
40460c:	38 fd                	cmp    %bh,%ch
40460e:	5f                   	pop    %edi
40460f:	5e                   	pop    %esi
404610:	5b                   	pop    %ebx
404611:	c3                   	ret
404612:	8b c0                	mov    %eax,%eax
404614:	85 c0                	test   %eax,%eax
404616:	74 0a                	je     0x404622
404618:	8b 50 f8             	mov    -0x8(%eax),%edx
40461b:	42                   	inc    %edx
40461c:	7e 04                	jle    0x404622
40461e:	f0 ff 40 f8          	lock incl -0x8(%eax)
404622:	c3                   	ret
404623:	90                   	nop
404624:	85 c0                	test   %eax,%eax
404626:	74 02                	je     0x40462a
404628:	c3                   	ret
404629:	00 b8 29 46 40 00    	add    %bh,0x404629(%eax)
40462f:	c3                   	ret
404630:	8b 10                	mov    (%eax),%edx
404632:	85 d2                	test   %edx,%edx
404634:	74 38                	je     0x40466e
404636:	8b 4a f8             	mov    -0x8(%edx),%ecx
404639:	49                   	dec    %ecx
40463a:	74 32                	je     0x40466e
40463c:	53                   	push   %ebx
40463d:	89 c3                	mov    %eax,%ebx
40463f:	8b 42 fc             	mov    -0x4(%edx),%eax
404642:	e8 e1 fb ff ff       	call   0x404228
404647:	89 c2                	mov    %eax,%edx
404649:	8b 03                	mov    (%ebx),%eax
40464b:	89 13                	mov    %edx,(%ebx)
40464d:	50                   	push   %eax
40464e:	8b 48 fc             	mov    -0x4(%eax),%ecx
404651:	e8 1e e3 ff ff       	call   0x402974
404656:	58                   	pop    %eax
404657:	8b 48 f8             	mov    -0x8(%eax),%ecx
40465a:	49                   	dec    %ecx
40465b:	7c 0e                	jl     0x40466b
40465d:	f0 ff 48 f8          	lock decl -0x8(%eax)
404661:	75 08                	jne    0x40466b
404663:	8d 40 f8             	lea    -0x8(%eax),%eax
404666:	e8 2d e1 ff ff       	call   0x402798
40466b:	8b 13                	mov    (%ebx),%edx
40466d:	5b                   	pop    %ebx
40466e:	89 d0                	mov    %edx,%eax
404670:	c3                   	ret
404671:	8d 40 00             	lea    0x0(%eax),%eax
404674:	e9 b7 ff ff ff       	jmp    0x404630
404679:	c3                   	ret
40467a:	8b c0                	mov    %eax,%eax
40467c:	e9 af ff ff ff       	jmp    0x404630
404681:	c3                   	ret
404682:	8b c0                	mov    %eax,%eax
404684:	53                   	push   %ebx
404685:	85 c0                	test   %eax,%eax
404687:	74 2d                	je     0x4046b6
404689:	8b 58 fc             	mov    -0x4(%eax),%ebx
40468c:	85 db                	test   %ebx,%ebx
40468e:	74 26                	je     0x4046b6
404690:	4a                   	dec    %edx