509322:	8b 44 24 04          	mov    0x4(%esp),%eax
509326:	81 c1 00 00 00 80    	add    $0x80000000,%ecx
50932c:	83 d0 00             	adc    $0x0,%eax
50932f:	85 c0                	test   %eax,%eax
509331:	77 0d                	ja     0x509340
509333:	72 05                	jb     0x50933a
509335:	83 f9 ff             	cmp    $0xffffffff,%ecx
509338:	77 06                	ja     0x509340
50933a:	8b c2                	mov    %edx,%eax
50933c:	83 c4 08             	add    $0x8,%esp
50933f:	c3                   	ret
509340:	83 c8 ff             	or     $0xffffffff,%eax
509343:	83 c4 08             	add    $0x8,%esp
509346:	c3                   	ret
509347:	cc                   	int3
509348:	cc                   	int3
509349:	cc                   	int3
50934a:	cc                   	int3
50934b:	cc                   	int3
50934c:	cc                   	int3
50934d:	cc                   	int3
50934e:	cc                   	int3
50934f:	cc                   	int3
509350:	6a 0a                	push   $0xa
509352:	ff 74 24 0c          	push   0xc(%esp)
509356:	ff 74 24 0c          	push   0xc(%esp)
50935a:	e8 41 04 00 00       	call   0x5097a0
50935f:	83 c4 0c             	add    $0xc,%esp
509362:	c3                   	ret
509363:	cc                   	int3
509364:	cc                   	int3
509365:	cc                   	int3
509366:	cc                   	int3
509367:	cc                   	int3
509368:	cc                   	int3
509369:	cc                   	int3
50936a:	cc                   	int3
50936b:	cc                   	int3
50936c:	cc                   	int3
50936d:	cc                   	int3
50936e:	cc                   	int3
50936f:	cc                   	int3
509370:	8b 4c 24 04          	mov    0x4(%esp),%ecx
509374:	8b 54 24 08          	mov    0x8(%esp),%edx
509378:	56                   	push   %esi
509379:	8b 71 04             	mov    0x4(%ecx),%esi
50937c:	8b 42 04             	mov    0x4(%edx),%eax
50937f:	81 e6 00 01 00 00    	and    $0x100,%esi
509385:	25 00 01 00 00       	and    $0x100,%eax
50938a:	3b f0                	cmp    %eax,%esi
50938c:	74 10                	je     0x50939e
50938e:	33 c0                	xor    %eax,%eax
509390:	85 f6                	test   %esi,%esi
509392:	5e                   	pop    %esi
509393:	0f 94 c0             	sete   %al
509396:	8d 04 45 ff ff ff ff 	lea    -0x1(,%eax,2),%eax
50939d:	c3                   	ret
50939e:	52                   	push   %edx
50939f:	51                   	push   %ecx
5093a0:	e8 0b 0b 00 00       	call   0x509eb0
5093a5:	83 c4 08             	add    $0x8,%esp
5093a8:	85 f6                	test   %esi,%esi
5093aa:	74 02                	je     0x5093ae
5093ac:	f7 d8                	neg    %eax
5093ae:	5e                   	pop    %esi
5093af:	c3                   	ret
5093b0:	e9 7b 0c 00 00       	jmp    0x50a030
5093b5:	cc                   	int3
5093b6:	cc                   	int3
5093b7:	cc                   	int3
5093b8:	cc                   	int3
5093b9:	cc                   	int3
5093ba:	cc                   	int3
5093bb:	cc                   	int3
5093bc:	cc                   	int3
5093bd:	cc                   	int3
5093be:	cc                   	int3
5093bf:	cc                   	int3
5093c0:	b8 08 00 00 00       	mov    $0x8,%eax
5093c5:	e8 e6 83 0c 00       	call   0x5d17b0
5093ca:	8b 44 24 0c          	mov    0xc(%esp),%eax
5093ce:	85 c0                	test   %eax,%eax
5093d0:	75 04                	jne    0x5093d6
5093d2:	83 c4 08             	add    $0x8,%esp
5093d5:	c3                   	ret
5093d6:	6a 02                	push   $0x2
5093d8:	50                   	push   %eax
5093d9:	8d 44 24 08          	lea    0x8(%esp),%eax
5093dd:	50                   	push   %eax
5093de:	e8 cd 01 00 00       	call   0x5095b0
5093e3:	83 c4 0c             	add    $0xc,%esp
5093e6:	85 c0                	test   %eax,%eax
5093e8:	74 23                	je     0x50940d
5093ea:	8b 14 24             	mov    (%esp),%edx
5093ed:	8b ca                	mov    %edx,%ecx
5093ef:	8b 44 24 04          	mov    0x4(%esp),%eax
5093f3:	81 c1 00 00 00 80    	add    $0x80000000,%ecx
5093f9:	83 d0 00             	adc    $0x0,%eax
5093fc:	85 c0                	test   %eax,%eax
5093fe:	77 0d                	ja     0x50940d
509400:	72 05                	jb     0x509407
509402:	83 f9 ff             	cmp    $0xffffffff,%ecx
509405:	77 06                	ja     0x50940d
509407:	8b c2                	mov    %edx,%eax
509409:	83 c4 08             	add    $0x8,%esp
50940c:	c3                   	ret
50940d:	83 c8 ff             	or     $0xffffffff,%eax
509410:	83 c4 08             	add    $0x8,%esp
509413:	c3                   	ret
509414:	cc                   	int3
509415:	cc                   	int3
509416:	cc                   	int3
509417:	cc                   	int3
509418:	cc                   	int3
509419:	cc                   	int3
50941a:	cc                   	int3
50941b:	cc                   	int3
50941c:	cc                   	int3
50941d:	cc                   	int3
50941e:	cc                   	int3
50941f:	cc                   	int3
509420:	8b 4c 24 08          	mov    0x8(%esp),%ecx
509424:	85 c9                	test   %ecx,%ecx
509426:	75 1e                	jne    0x509446
509428:	68 65 01 00 00       	push   $0x165
50942d:	68 14 ae 62 00       	push   $0x62ae14
509432:	6a 43                	push   $0x43
509434:	68 e6 00 00 00       	push   $0xe6
509439:	6a 0d                	push   $0xd
50943b:	e8 40 fb fc ff       	call   0x4d8f80
509440:	83 c4 14             	add    $0x14,%esp
509443:	33 c0                	xor    %eax,%eax
509445:	c3                   	ret
509446:	8b 51 04             	mov    0x4(%ecx),%edx
509449:	8b c2                	mov    %edx,%eax
50944b:	25 ff fe ff ff       	and    $0xfffffeff,%eax
509450:	83 f8 02             	cmp    $0x2,%eax
509453:	74 21                	je     0x509476
509455:	68 69 01 00 00       	push   $0x169
50945a:	68 14 ae 62 00       	push   $0x62ae14
50945f:	68 e1 00 00 00       	push   $0xe1
509464:	68 e6 00 00 00       	push   $0xe6
509469:	6a 0d                	push   $0xd
50946b:	e8 10 fb fc ff       	call   0x4d8f80
509470:	83 c4 14             	add    $0x14,%esp
509473:	33 c0                	xor    %eax,%eax
509475:	c3                   	ret
509476:	f7 c2 00 01 00 00    	test   $0x100,%edx
50947c:	74 21                	je     0x50949f
50947e:	68 6d 01 00 00       	push   $0x16d
509483:	68 14 ae 62 00       	push   $0x62ae14
509488:	68 e2 00 00 00       	push   $0xe2
50948d:	68 e6 00 00 00       	push   $0xe6
509492:	6a 0d                	push   $0xd
509494:	e8 e7 fa fc ff       	call   0x4d8f80
509499:	83 c4 14             	add    $0x14,%esp
50949c:	33 c0                	xor    %eax,%eax
50949e:	c3                   	ret
50949f:	ff 31                	push   (%ecx)
5094a1:	ff 71 08             	push   0x8(%ecx)
5094a4:	ff 74 24 0c          	push   0xc(%esp)
5094a8:	e8 73 00 00 00       	call   0x509520
5094ad:	83 c4 0c             	add    $0xc,%esp
5094b0:	c3                   	ret
5094b1:	cc                   	int3
5094b2:	cc                   	int3
5094b3:	cc                   	int3
5094b4:	cc                   	int3
5094b5:	cc                   	int3
5094b6:	cc                   	int3
5094b7:	cc                   	int3
5094b8:	cc                   	int3
5094b9:	cc                   	int3
5094ba:	cc                   	int3
5094bb:	cc                   	int3
5094bc:	cc                   	int3
5094bd:	cc                   	int3
5094be:	cc                   	int3
5094bf:	cc                   	int3
5094c0:	8b 44 24 08          	mov    0x8(%esp),%eax
5094c4:	6a 02                	push   $0x2
5094c6:	99                   	cltd
5094c7:	52                   	push   %edx
5094c8:	50                   	push   %eax
5094c9:	ff 74 24 10          	push   0x10(%esp)
5094cd:	e8 1e 02 00 00       	call   0x5096f0
5094d2:	83 c4 10             	add    $0x10,%esp
5094d5:	c3                   	ret
5094d6:	cc                   	int3
5094d7:	cc                   	int3
5094d8:	cc                   	int3
5094d9:	cc                   	int3
5094da:	cc                   	int3
5094db:	cc                   	int3
5094dc:	cc                   	int3
5094dd:	cc                   	int3
5094de:	cc                   	int3
5094df:	cc                   	int3
5094e0:	6a 02                	push   $0x2
5094e2:	ff 74 24 0c          	push   0xc(%esp)
5094e6:	ff 74 24 0c          	push   0xc(%esp)
5094ea:	e8 b1 02 00 00       	call   0x5097a0
5094ef:	83 c4 0c             	add    $0xc,%esp
5094f2:	c3                   	ret
5094f3:	cc                   	int3
5094f4:	cc                   	int3
5094f5:	cc                   	int3
5094f6:	cc                   	int3
5094f7:	cc                   	int3
5094f8:	cc                   	int3
5094f9:	cc                   	int3
5094fa:	cc                   	int3
5094fb:	cc                   	int3
5094fc:	cc                   	int3
5094fd:	cc                   	int3
5094fe:	cc                   	int3
5094ff:	cc                   	int3
509500:	6a 02                	push   $0x2
509502:	ff 74 24 0c          	push   0xc(%esp)
509506:	ff 74 24 0c          	push   0xc(%esp)
50950a:	e8 21 03 00 00       	call   0x509830
50950f:	83 c4 0c             	add    $0xc,%esp
509512:	c3                   	ret
509513:	cc                   	int3
509514:	cc                   	int3
509515:	cc                   	int3
509516:	cc                   	int3
509517:	cc                   	int3
509518:	cc                   	int3
509519:	cc                   	int3
50951a:	cc                   	int3
50951b:	cc                   	int3
50951c:	cc                   	int3
50951d:	cc                   	int3
50951e:	cc                   	int3
50951f:	cc                   	int3
509520:	b8 08 00 00 00       	mov    $0x8,%eax
509525:	e8 86 82 0c 00       	call   0x5d17b0
50952a:	53                   	push   %ebx
50952b:	8b 5c 24 18          	mov    0x18(%esp),%ebx
50952f:	83 fb 08             	cmp    $0x8,%ebx
509532:	76 25                	jbe    0x509559
509534:	68 d5 00 00 00       	push   $0xd5
509539:	68 14 ae 62 00       	push   $0x62ae14
50953e:	68 df 00 00 00       	push   $0xdf
509543:	68 e1 00 00 00       	push   $0xe1
509548:	6a 0d                	push   $0xd
50954a:	e8 31 fa fc ff       	call   0x4d8f80
50954f:	83 c4 14             	add    $0x14,%esp
509552:	33 c0                	xor    %eax,%eax
509554:	5b                   	pop    %ebx
509555:	83 c4 08             	add    $0x8,%esp
509558:	c3                   	ret
509559:	55                   	push   %ebp
50955a:	8b 6c 24 18          	mov    0x18(%esp),%ebp
50955e:	85 ed                	test   %ebp,%ebp
509560:	75 08                	jne    0x50956a
509562:	5d                   	pop    %ebp
509563:	33 c0                	xor    %eax,%eax
509565:	5b                   	pop    %ebx
509566:	83 c4 08             	add    $0x8,%esp
509569:	c3                   	ret
50956a:	56                   	push   %esi
50956b:	0f 57 c0             	xorps  %xmm0,%xmm0
50956e:	57                   	push   %edi
50956f:	66 0f 13 44 24 10    	movlpd %xmm0,0x10(%esp)
509575:	33 ff                	xor    %edi,%edi
509577:	8b 74 24 14          	mov    0x14(%esp),%esi
50957b:	8b 4c 24 10          	mov    0x10(%esp),%ecx
50957f:	85 db                	test   %ebx,%ebx
509581:	74 15                	je     0x509598
509583:	0f b6 04 2f          	movzbl (%edi,%ebp,1),%eax
509587:	47                   	inc    %edi
509588:	0f a4 ce 08          	shld   $0x8,%ecx,%esi
50958c:	99                   	cltd
50958d:	c1 e1 08             	shl    $0x8,%ecx
509590:	0b f2                	or     %edx,%esi
509592:	0b c8                	or     %eax,%ecx
509594:	3b fb                	cmp    %ebx,%edi
509596:	72 eb                	jb     0x509583
509598:	8b 44 24 1c          	mov    0x1c(%esp),%eax
50959c:	5f                   	pop    %edi
50959d:	89 70 04             	mov    %esi,0x4(%eax)
5095a0:	5e                   	pop    %esi
5095a1:	5d                   	pop    %ebp
5095a2:	89 08                	mov    %ecx,(%eax)
5095a4:	b8 01 00 00 00       	mov    $0x1,%eax
5095a9:	5b                   	pop    %ebx
5095aa:	83 c4 08             	add    $0x8,%esp
5095ad:	c3                   	ret
5095ae:	cc                   	int3
5095af:	cc                   	int3
5095b0:	b8 08 00 00 00       	mov    $0x8,%eax
5095b5:	e8 f6 81 0c 00       	call   0x5d17b0
5095ba:	8b 4c 24 10          	mov    0x10(%esp),%ecx
5095be:	85 c9                	test   %ecx,%ecx
5095c0:	75 21                	jne    0x5095e3
5095c2:	68 42 01 00 00       	push   $0x142
5095c7:	68 14 ae 62 00       	push   $0x62ae14
5095cc:	6a 43                	push   $0x43
5095ce:	68 e3 00 00 00       	push   $0xe3
5095d3:	6a 0d                	push   $0xd
5095d5:	e8 a6 f9 fc ff       	call   0x4d8f80
5095da:	83 c4 14             	add    $0x14,%esp
5095dd:	33 c0                	xor    %eax,%eax
5095df:	83 c4 08             	add    $0x8,%esp
5095e2:	c3                   	ret
5095e3:	56                   	push   %esi
5095e4:	8b 71 04             	mov    0x4(%ecx),%esi
5095e7:	8b c6                	mov    %esi,%eax
5095e9:	25 ff fe ff ff       	and    $0xfffffeff,%eax
5095ee:	3b 44 24 18          	cmp    0x18(%esp),%eax
5095f2:	74 25                	je     0x509619
5095f4:	68 46 01 00 00       	push   $0x146
5095f9:	68 14 ae 62 00       	push   $0x62ae14
5095fe:	68 e1 00 00 00       	push   $0xe1
509603:	68 e3 00 00 00       	push   $0xe3
509608:	6a 0d                	push   $0xd
50960a:	e8 71 f9 fc ff       	call   0x4d8f80
50960f:	83 c4 14             	add    $0x14,%esp
509612:	33 c0                	xor    %eax,%eax
509614:	5e                   	pop    %esi
509615:	83 c4 08             	add    $0x8,%esp
509618:	c3                   	ret
509619:	ff 31                	push   (%ecx)
50961b:	8d 44 24 08          	lea    0x8(%esp),%eax
50961f:	81 e6 00 01 00 00    	and    $0x100,%esi
509625:	ff 71 08             	push   0x8(%ecx)
509628:	50                   	push   %eax
509629:	e8 f2 fe ff ff       	call   0x509520
50962e:	83 c4 0c             	add    $0xc,%esp
509631:	85 c0                	test   %eax,%eax
509633:	0f 84 a7 00 00 00    	je     0x5096e0
509639:	8b 4c 24 08          	mov    0x8(%esp),%ecx
50963d:	85 f6                	test   %esi,%esi
50963f:	74 5b                	je     0x50969c
509641:	8b 54 24 04          	mov    0x4(%esp),%edx
509645:	81 f9 ff ff ff 7f    	cmp    $0x7fffffff,%ecx
50964b:	77 21                	ja     0x50966e
50964d:	72 05                	jb     0x509654
50964f:	83 fa ff             	cmp    $0xffffffff,%edx
509652:	77 1a                	ja     0x50966e
509654:	8b 44 24 10          	mov    0x10(%esp),%eax
509658:	f7 da                	neg    %edx
50965a:	5e                   	pop    %esi
50965b:	83 d1 00             	adc    $0x0,%ecx
50965e:	f7 d9                	neg    %ecx
509660:	89 10                	mov    %edx,(%eax)
509662:	89 48 04             	mov    %ecx,0x4(%eax)
509665:	b8 01 00 00 00       	mov    $0x1,%eax