41c413:	89 45 f4             	mov    %eax,-0xc(%ebp)
41c416:	0f 94 c2             	sete   %dl
41c419:	89 57 10             	mov    %edx,0x10(%edi)
41c41c:	85 d2                	test   %edx,%edx
41c41e:	75 05                	jne    0x41c425
41c420:	0b c3                	or     %ebx,%eax
41c422:	89 45 f4             	mov    %eax,-0xc(%ebp)
41c425:	8b 4d f8             	mov    -0x8(%ebp),%ecx
41c428:	8d 55 fc             	lea    -0x4(%ebp),%edx
41c42b:	50                   	push   %eax
41c42c:	e8 dc fd ff ff       	call   0x41c20d
41c431:	85 c0                	test   %eax,%eax
41c433:	75 05                	jne    0x41c43a
41c435:	8b 4d fc             	mov    -0x4(%ebp),%ecx
41c438:	eb d1                	jmp    0x41c40b
41c43a:	f6 45 f4 01          	testb  $0x1,-0xc(%ebp)
41c43e:	74 06                	je     0x41c446
41c440:	f6 45 fc 01          	testb  $0x1,-0x4(%ebp)
41c444:	74 02                	je     0x41c448
41c446:	33 db                	xor    %ebx,%ebx
41c448:	8b f7                	mov    %edi,%esi
41c44a:	89 1e                	mov    %ebx,(%esi)
41c44c:	e9 8a 00 00 00       	jmp    0x41c4db
41c451:	56                   	push   %esi
41c452:	51                   	push   %ecx
41c453:	8b 4d f8             	mov    -0x8(%ebp),%ecx
41c456:	8b d3                	mov    %ebx,%edx
41c458:	e8 88 fe ff ff       	call   0x41c2e5
41c45d:	eb 7c                	jmp    0x41c4db
41c45f:	56                   	push   %esi
41c460:	51                   	push   %ecx
41c461:	8b 4d f8             	mov    -0x8(%ebp),%ecx
41c464:	8b d3                	mov    %ebx,%edx
41c466:	e8 c7 fd ff ff       	call   0x41c232
41c46b:	eb 6e                	jmp    0x41c4db
41c46d:	33 ff                	xor    %edi,%edi
41c46f:	8d 8b c0 fe ff ff    	lea    -0x140(%ebx),%ecx
41c475:	47                   	inc    %edi
41c476:	83 f9 40             	cmp    $0x40,%ecx
41c479:	73 56                	jae    0x41c4d1
41c47b:	8d 42 04             	lea    0x4(%edx),%eax
41c47e:	8b d9                	mov    %ecx,%ebx
41c480:	8b d1                	mov    %ecx,%edx
41c482:	89 45 f0             	mov    %eax,-0x10(%ebp)
41c485:	8b 00                	mov    (%eax),%eax
41c487:	83 e2 3f             	and    $0x3f,%edx
41c48a:	c1 e2 05             	shl    $0x5,%edx
41c48d:	89 45 f4             	mov    %eax,-0xc(%ebp)
41c490:	89 55 fc             	mov    %edx,-0x4(%ebp)
41c493:	a8 10                	test   $0x10,%al
41c495:	74 10                	je     0x41c4a7
41c497:	8b c8                	mov    %eax,%ecx
41c499:	c1 e9 05             	shr    $0x5,%ecx
41c49c:	83 e1 3f             	and    $0x3f,%ecx
41c49f:	3b cb                	cmp    %ebx,%ecx
41c4a1:	75 04                	jne    0x41c4a7
41c4a3:	8b cf                	mov    %edi,%ecx
41c4a5:	eb 02                	jmp    0x41c4a9
41c4a7:	33 c9                	xor    %ecx,%ecx
41c4a9:	25 1f f8 ff ff       	and    $0xfffff81f,%eax
41c4ae:	89 4e 10             	mov    %ecx,0x10(%esi)
41c4b1:	8b 4d f0             	mov    -0x10(%ebp),%ecx
41c4b4:	0b c2                	or     %edx,%eax
41c4b6:	83 c8 10             	or     $0x10,%eax
41c4b9:	8d 55 f4             	lea    -0xc(%ebp),%edx
41c4bc:	50                   	push   %eax
41c4bd:	e8 4b fd ff ff       	call   0x41c20d
41c4c2:	85 c0                	test   %eax,%eax
41c4c4:	75 08                	jne    0x41c4ce
41c4c6:	8b 45 f4             	mov    -0xc(%ebp),%eax
41c4c9:	8b 55 fc             	mov    -0x4(%ebp),%edx
41c4cc:	eb c5                	jmp    0x41c493
41c4ce:	8b 5d ec             	mov    -0x14(%ebp),%ebx
41c4d1:	83 66 0c 00          	andl   $0x0,0xc(%esi)
41c4d5:	89 5e 08             	mov    %ebx,0x8(%esi)
41c4d8:	89 7e 04             	mov    %edi,0x4(%esi)
41c4db:	5f                   	pop    %edi
41c4dc:	8b c6                	mov    %esi,%eax
41c4de:	5e                   	pop    %esi
41c4df:	5b                   	pop    %ebx
41c4e0:	c9                   	leave
41c4e1:	c2 0c 00             	ret    $0xc
41c4e4:	8b ff                	mov    %edi,%edi
41c4e6:	51                   	push   %ecx
41c4e7:	c4 41 00             	les    0x0(%ecx),%eax
41c4ea:	5f                   	pop    %edi
41c4eb:	c4 41 00             	les    0x0(%ecx),%eax
41c4ee:	da c3                	fcmovb %st(3),%st
41c4f0:	41                   	inc    %ecx
41c4f1:	00 00                	add    %al,(%eax)
41c4f3:	01 02                	add    %eax,(%edx)
41c4f5:	02 00                	add    (%eax),%al
41c4f7:	01 02                	add    %eax,(%edx)
41c4f9:	02 8b c1 83 e8 00    	add    0xe883c1(%ebx),%cl
41c4ff:	0f 84 8f 00 00 00    	je     0x41c594
41c505:	83 e8 01             	sub    $0x1,%eax
41c508:	74 7f                	je     0x41c589
41c50a:	83 e8 01             	sub    $0x1,%eax
41c50d:	74 6b                	je     0x41c57a
41c50f:	83 e8 01             	sub    $0x1,%eax
41c512:	74 57                	je     0x41c56b
41c514:	83 e8 01             	sub    $0x1,%eax
41c517:	74 43                	je     0x41c55c
41c519:	83 e8 01             	sub    $0x1,%eax
41c51c:	74 2f                	je     0x41c54d
41c51e:	83 e8 01             	sub    $0x1,%eax
41c521:	74 1b                	je     0x41c53e
41c523:	80 e9 64             	sub    $0x64,%cl
41c526:	80 f9 31             	cmp    $0x31,%cl
41c529:	77 69                	ja     0x41c594
41c52b:	f7 da                	neg    %edx
41c52d:	0f b6 c1             	movzbl %cl,%eax
41c530:	1b d2                	sbb    %edx,%edx
41c532:	83 e2 ce             	and    $0xffffffce,%edx
41c535:	81 c2 96 00 00 00    	add    $0x96,%edx
41c53b:	03 c2                	add    %edx,%eax
41c53d:	c3                   	ret
41c53e:	33 c0                	xor    %eax,%eax
41c540:	85 d2                	test   %edx,%edx
41c542:	0f 94 c0             	sete   %al
41c545:	8d 04 45 09 00 00 00 	lea    0x9(,%eax,2),%eax
41c54c:	c3                   	ret
41c54d:	33 c0                	xor    %eax,%eax
41c54f:	85 d2                	test   %edx,%edx
41c551:	0f 94 c0             	sete   %al
41c554:	8d 04 45 08 00 00 00 	lea    0x8(,%eax,2),%eax
41c55b:	c3                   	ret
41c55c:	33 c0                	xor    %eax,%eax
41c55e:	85 d2                	test   %edx,%edx
41c560:	0f 94 c0             	sete   %al
41c563:	8d 04 85 03 00 00 00 	lea    0x3(,%eax,4),%eax
41c56a:	c3                   	ret
41c56b:	33 c0                	xor    %eax,%eax
41c56d:	85 d2                	test   %edx,%edx
41c56f:	0f 94 c0             	sete   %al
41c572:	8d 04 85 02 00 00 00 	lea    0x2(,%eax,4),%eax
41c579:	c3                   	ret
41c57a:	33 c0                	xor    %eax,%eax
41c57c:	85 d2                	test   %edx,%edx
41c57e:	0f 94 c0             	sete   %al
41c581:	8d 04 85 01 00 00 00 	lea    0x1(,%eax,4),%eax
41c588:	c3                   	ret
41c589:	f7 da                	neg    %edx
41c58b:	1b d2                	sbb    %edx,%edx
41c58d:	83 e2 fc             	and    $0xfffffffc,%edx
41c590:	8d 42 04             	lea    0x4(%edx),%eax
41c593:	c3                   	ret
41c594:	b8 ff 00 00 00       	mov    $0xff,%eax
41c599:	c3                   	ret
41c59a:	8b ff                	mov    %edi,%edi
41c59c:	55                   	push   %ebp
41c59d:	8b ec                	mov    %esp,%ebp
41c59f:	56                   	push   %esi
41c5a0:	8b 35 50 8a 43 00    	mov    0x438a50,%esi
41c5a6:	57                   	push   %edi
41c5a7:	8b f9                	mov    %ecx,%edi
41c5a9:	85 f6                	test   %esi,%esi
41c5ab:	75 24                	jne    0x41c5d1
41c5ad:	68 6c 51 40 00       	push   $0x40516c
41c5b2:	e8 5c 24 01 00       	call   0x42ea13
41c5b7:	50                   	push   %eax
41c5b8:	ff 15 54 a1 43 00    	call   *0x43a154
41c5be:	8b f0                	mov    %eax,%esi
41c5c0:	89 35 50 8a 43 00    	mov    %esi,0x438a50
41c5c6:	85 f6                	test   %esi,%esi
41c5c8:	75 07                	jne    0x41c5d1
41c5ca:	b8 39 01 00 c0       	mov    $0xc0000139,%eax
41c5cf:	eb 18                	jmp    0x41c5e9
41c5d1:	ff 75 14             	push   0x14(%ebp)
41c5d4:	8b ce                	mov    %esi,%ecx
41c5d6:	ff 75 10             	push   0x10(%ebp)
41c5d9:	ff 75 0c             	push   0xc(%ebp)
41c5dc:	6a 00                	push   $0x0
41c5de:	6a 00                	push   $0x0
41c5e0:	57                   	push   %edi
41c5e1:	ff 15 20 a5 43 00    	call   *0x43a520
41c5e7:	ff d6                	call   *%esi
41c5e9:	5f                   	pop    %edi
41c5ea:	5e                   	pop    %esi
41c5eb:	5d                   	pop    %ebp
41c5ec:	c2 10 00             	ret    $0x10
41c5ef:	8b ff                	mov    %edi,%edi
41c5f1:	55                   	push   %ebp
41c5f2:	8b ec                	mov    %esp,%ebp
41c5f4:	53                   	push   %ebx
41c5f5:	56                   	push   %esi
41c5f6:	8b 35 68 8a 43 00    	mov    0x438a68,%esi
41c5fc:	8b d9                	mov    %ecx,%ebx
41c5fe:	57                   	push   %edi
41c5ff:	8b fa                	mov    %edx,%edi
41c601:	85 f6                	test   %esi,%esi
41c603:	75 24                	jne    0x41c629
41c605:	68 80 51 40 00       	push   $0x405180
41c60a:	e8 04 24 01 00       	call   0x42ea13
41c60f:	50                   	push   %eax
41c610:	ff 15 54 a1 43 00    	call   *0x43a154
41c616:	8b f0                	mov    %eax,%esi
41c618:	89 35 68 8a 43 00    	mov    %esi,0x438a68
41c61e:	85 f6                	test   %esi,%esi
41c620:	75 07                	jne    0x41c629
41c622:	b8 39 01 00 c0       	mov    $0xc0000139,%eax
41c627:	eb 19                	jmp    0x41c642
41c629:	ff 75 18             	push   0x18(%ebp)
41c62c:	8b ce                	mov    %esi,%ecx
41c62e:	ff 75 14             	push   0x14(%ebp)
41c631:	6a 00                	push   $0x0
41c633:	6a 00                	push   $0x0
41c635:	ff 75 08             	push   0x8(%ebp)
41c638:	57                   	push   %edi
41c639:	53                   	push   %ebx
41c63a:	ff 15 20 a5 43 00    	call   *0x43a520
41c640:	ff d6                	call   *%esi
41c642:	5f                   	pop    %edi
41c643:	5e                   	pop    %esi
41c644:	5b                   	pop    %ebx
41c645:	5d                   	pop    %ebp
41c646:	c2 14 00             	ret    $0x14
41c649:	8b ff                	mov    %edi,%edi
41c64b:	55                   	push   %ebp
41c64c:	8b ec                	mov    %esp,%ebp
41c64e:	83 ec 48             	sub    $0x48,%esp
41c651:	a1 08 85 43 00       	mov    0x438508,%eax
41c656:	33 c5                	xor    %ebp,%eax
41c658:	89 45 fc             	mov    %eax,-0x4(%ebp)
41c65b:	53                   	push   %ebx
41c65c:	56                   	push   %esi
41c65d:	57                   	push   %edi
41c65e:	8b d9                	mov    %ecx,%ebx
41c660:	8b fa                	mov    %edx,%edi
41c662:	b9 1e 40 c0 ff       	mov    $0xffc0401e,%ecx
41c667:	8b 07                	mov    (%edi),%eax
41c669:	8b f0                	mov    %eax,%esi
41c66b:	23 f1                	and    %ecx,%esi
41c66d:	f0 0f b1 37          	lock cmpxchg %esi,(%edi)
41c671:	75 f6                	jne    0x41c669
41c673:	8b d0                	mov    %eax,%edx
41c675:	8b ca                	mov    %edx,%ecx
41c677:	d1 e9                	shr    $1,%ecx
41c679:	83 e1 0f             	and    $0xf,%ecx
41c67c:	74 13                	je     0x41c691
41c67e:	83 c7 04             	add    $0x4,%edi
41c681:	8b 07                	mov    (%edi),%eax
41c683:	8b f0                	mov    %eax,%esi
41c685:	0b f1                	or     %ecx,%esi
41c687:	f0 0f b1 37          	lock cmpxchg %esi,(%edi)
41c68b:	75 f6                	jne    0x41c683
41c68d:	f7 d0                	not    %eax
41c68f:	23 c8                	and    %eax,%ecx
41c691:	33 ff                	xor    %edi,%edi
41c693:	0f b6 c1             	movzbl %cl,%eax
41c696:	47                   	inc    %edi
41c697:	c7 45 b8 02 00 00 00 	movl   $0x2,-0x48(%ebp)
41c69e:	23 c7                	and    %edi,%eax
41c6a0:	c7 45 c0 06 00 00 00 	movl   $0x6,-0x40(%ebp)
41c6a7:	89 45 bc             	mov    %eax,-0x44(%ebp)
41c6aa:	8b f2                	mov    %edx,%esi
41c6ac:	0f b6 c1             	movzbl %cl,%eax
41c6af:	d1 e8                	shr    $1,%eax
41c6b1:	23 c7                	and    %edi,%eax
41c6b3:	c7 45 c8 03 00 00 00 	movl   $0x3,-0x38(%ebp)
41c6ba:	89 45 c4             	mov    %eax,-0x3c(%ebp)
41c6bd:	0f b6 c1             	movzbl %cl,%eax
41c6c0:	c1 e8 02             	shr    $0x2,%eax
41c6c3:	23 c7                	and    %edi,%eax
41c6c5:	c7 45 d0 07 00 00 00 	movl   $0x7,-0x30(%ebp)
41c6cc:	83 f9 08             	cmp    $0x8,%ecx
41c6cf:	89 45 cc             	mov    %eax,-0x34(%ebp)
41c6d2:	8b ca                	mov    %edx,%ecx
41c6d4:	1b c0                	sbb    %eax,%eax
41c6d6:	83 65 d8 00          	andl   $0x0,-0x28(%ebp)
41c6da:	40                   	inc    %eax
41c6db:	89 45 d4             	mov    %eax,-0x2c(%ebp)
41c6de:	81 e6 00 40 00 00    	and    $0x4000,%esi
41c6e4:	74 09                	je     0x41c6ef
41c6e6:	83 65 dc 00          	andl   $0x0,-0x24(%ebp)
41c6ea:	c1 e9 05             	shr    $0x5,%ecx
41c6ed:	eb 0d                	jmp    0x41c6fc
41c6ef:	c1 e9 05             	shr    $0x5,%ecx
41c6f2:	8b c1                	mov    %ecx,%eax
41c6f4:	25 ff 01 00 00       	and    $0x1ff,%eax
41c6f9:	89 45 dc             	mov    %eax,-0x24(%ebp)
41c6fc:	c7 45 e0 04 00 00 00 	movl   $0x4,-0x20(%ebp)
41c703:	85 f6                	test   %esi,%esi
41c705:	74 0b                	je     0x41c712
41c707:	81 e1 ff 01 00 00    	and    $0x1ff,%ecx
41c70d:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
41c710:	eb 04                	jmp    0x41c716
41c712:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
41c716:	8b ca                	mov    %edx,%ecx
41c718:	89 7d e8             	mov    %edi,-0x18(%ebp)
41c71b:	81 e1 00 00 40 00    	and    $0x400000,%ecx
41c721:	74 09                	je     0x41c72c
41c723:	83 65 ec 00          	andl   $0x0,-0x14(%ebp)
41c727:	c1 ea 0f             	shr    $0xf,%edx
41c72a:	eb 0b                	jmp    0x41c737
41c72c:	c1 ea 0f             	shr    $0xf,%edx
41c72f:	8b c2                	mov    %edx,%eax
41c731:	83 e0 7f             	and    $0x7f,%eax
41c734:	89 45 ec             	mov    %eax,-0x14(%ebp)
41c737:	c7 45 f0 05 00 00 00 	movl   $0x5,-0x10(%ebp)
41c73e:	85 c9                	test   %ecx,%ecx
41c740:	74 08                	je     0x41c74a
41c742:	83 e2 7f             	and    $0x7f,%edx
41c745:	89 55 f4             	mov    %edx,-0xc(%ebp)
41c748:	eb 04                	jmp    0x41c74e
41c74a:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
41c74e:	33 f6                	xor    %esi,%esi
41c750:	8b 44 f5 bc          	mov    -0x44(%ebp,%esi,8),%eax
41c754:	85 c0                	test   %eax,%eax
41c756:	74 26                	je     0x41c77e
41c758:	8b 3d 58 90 43 00    	mov    0x439058,%edi
41c75e:	85 ff                	test   %edi,%edi
41c760:	75 0a                	jne    0x41c76c
41c762:	8b 3d fc 90 43 00    	mov    0x4390fc,%edi
41c768:	85 ff                	test   %edi,%edi
41c76a:	74 12                	je     0x41c77e
41c76c:	6a 00                	push   $0x0
41c76e:	50                   	push   %eax
41c76f:	ff 74 f5 b8          	push   -0x48(%ebp,%esi,8)
41c773:	8b cf                	mov    %edi,%ecx
41c775:	53                   	push   %ebx
41c776:	ff 15 20 a5 43 00    	call   *0x43a520
41c77c:	ff d7                	call   *%edi
41c77e:	46                   	inc    %esi
41c77f:	83 fe 08             	cmp    $0x8,%esi
41c782:	72 cc                	jb     0x41c750
41c784:	8b 4d fc             	mov    -0x4(%ebp),%ecx
41c787:	5f                   	pop    %edi
41c788:	5e                   	pop    %esi
41c789:	33 cd                	xor    %ebp,%ecx
41c78b:	5b                   	pop    %ebx
41c78c:	e8 2f e0 ff ff       	call   0x41a7c0
41c791:	c9                   	leave
41c792:	c2 04 00             	ret    $0x4
41c795:	8b ff                	mov    %edi,%edi
41c797:	56                   	push   %esi
41c798:	8b 35 d8 89 43 00    	mov    0x4389d8,%esi
41c79e:	57                   	push   %edi
41c79f:	8b f9                	mov    %ecx,%edi
41c7a1:	85 f6                	test   %esi,%esi
41c7a3:	75 24                	jne    0x41c7c9
41c7a5:	68 54 51 40 00       	push   $0x405154
41c7aa:	e8 64 22 01 00       	call   0x42ea13
41c7af:	50                   	push   %eax
41c7b0:	ff 15 54 a1 43 00    	call   *0x43a154
41c7b6:	8b f0                	mov    %eax,%esi
41c7b8:	89 35 d8 89 43 00    	mov    %esi,0x4389d8
41c7be:	85 f6                	test   %esi,%esi
41c7c0:	75 07                	jne    0x41c7c9
41c7c2:	b8 39 01 00 c0       	mov    $0xc0000139,%eax