42157e:	89 46 64             	mov    %eax,0x64(%esi)
421581:	89 5f 04             	mov    %ebx,0x4(%edi)
421584:	39 5e 60             	cmp    %ebx,0x60(%esi)
421587:	75 0b                	jne    0x421594
421589:	ff 76 50             	push   0x50(%esi)
42158c:	e8 97 00 00 00       	call   0x421628
421591:	59                   	pop    %ecx
421592:	8b d0                	mov    %eax,%edx
421594:	6a 01                	push   $0x1
421596:	68 54 16 42 00       	push   $0x421654
42159b:	89 56 5c             	mov    %edx,0x5c(%esi)
42159e:	ff 15 f8 71 42 00    	call   *0x4271f8
4215a4:	8b 0f                	mov    (%edi),%ecx
4215a6:	f6 c1 07             	test   $0x7,%cl
4215a9:	0f 95 c2             	setne  %dl
4215ac:	0f ba e1 09          	bt     $0x9,%ecx
4215b0:	0f 92 c0             	setb   %al
4215b3:	22 d0                	and    %al,%dl
4215b5:	0f ba e1 08          	bt     $0x8,%ecx
4215b9:	0f 92 c0             	setb   %al
4215bc:	84 d0                	test   %dl,%al
4215be:	75 02                	jne    0x4215c2
4215c0:	89 1f                	mov    %ebx,(%edi)
4215c2:	5f                   	pop    %edi
4215c3:	5e                   	pop    %esi
4215c4:	5b                   	pop    %ebx
4215c5:	5d                   	pop    %ebp
4215c6:	c3                   	ret
4215c7:	8b ff                	mov    %edi,%edi
4215c9:	55                   	push   %ebp
4215ca:	8b ec                	mov    %esp,%ebp
4215cc:	53                   	push   %ebx
4215cd:	56                   	push   %esi
4215ce:	57                   	push   %edi
4215cf:	e8 88 75 ff ff       	call   0x418b5c
4215d4:	8b f0                	mov    %eax,%esi
4215d6:	33 db                	xor    %ebx,%ebx
4215d8:	6a 02                	push   $0x2
4215da:	5a                   	pop    %edx
4215db:	8b 4e 50             	mov    0x50(%esi),%ecx
4215de:	8d 79 02             	lea    0x2(%ecx),%edi
4215e1:	66 8b 01             	mov    (%ecx),%ax
4215e4:	03 ca                	add    %edx,%ecx
4215e6:	66 3b c3             	cmp    %bx,%ax
4215e9:	75 f6                	jne    0x4215e1
4215eb:	2b cf                	sub    %edi,%ecx
4215ed:	33 c0                	xor    %eax,%eax
4215ef:	d1 f9                	sar    $1,%ecx
4215f1:	83 f9 03             	cmp    $0x3,%ecx
4215f4:	0f 94 c0             	sete   %al
4215f7:	89 46 60             	mov    %eax,0x60(%esi)
4215fa:	85 c0                	test   %eax,%eax
4215fc:	75 0b                	jne    0x421609
4215fe:	ff 76 50             	push   0x50(%esi)
421601:	e8 22 00 00 00       	call   0x421628
421606:	59                   	pop    %ecx
421607:	8b d0                	mov    %eax,%edx
421609:	6a 01                	push   $0x1
42160b:	68 a4 18 42 00       	push   $0x4218a4
421610:	89 56 5c             	mov    %edx,0x5c(%esi)
421613:	ff 15 f8 71 42 00    	call   *0x4271f8
421619:	8b 45 08             	mov    0x8(%ebp),%eax
42161c:	f6 00 04             	testb  $0x4,(%eax)
42161f:	75 02                	jne    0x421623
421621:	89 18                	mov    %ebx,(%eax)
421623:	5f                   	pop    %edi
421624:	5e                   	pop    %esi
421625:	5b                   	pop    %ebx
421626:	5d                   	pop    %ebp
421627:	c3                   	ret
421628:	8b ff                	mov    %edi,%edi
42162a:	55                   	push   %ebp
42162b:	8b ec                	mov    %esp,%ebp
42162d:	8b 4d 08             	mov    0x8(%ebp),%ecx
421630:	33 d2                	xor    %edx,%edx
421632:	0f b7 01             	movzwl (%ecx),%eax
421635:	83 c1 02             	add    $0x2,%ecx
421638:	66 83 f8 41          	cmp    $0x41,%ax
42163c:	72 06                	jb     0x421644
42163e:	66 83 f8 5a          	cmp    $0x5a,%ax
421642:	76 09                	jbe    0x42164d
421644:	83 c0 9f             	add    $0xffffff9f,%eax
421647:	66 83 f8 19          	cmp    $0x19,%ax
42164b:	77 03                	ja     0x421650
42164d:	42                   	inc    %edx
42164e:	eb e2                	jmp    0x421632
421650:	8b c2                	mov    %edx,%eax
421652:	5d                   	pop    %ebp
421653:	c3                   	ret
421654:	8b ff                	mov    %edi,%edi
421656:	55                   	push   %ebp
421657:	8b ec                	mov    %esp,%ebp
421659:	81 ec fc 00 00 00    	sub    $0xfc,%esp
42165f:	a1 28 ba 43 00       	mov    0x43ba28,%eax
421664:	33 c5                	xor    %ebp,%eax
421666:	89 45 fc             	mov    %eax,-0x4(%ebp)
421669:	53                   	push   %ebx
42166a:	56                   	push   %esi
42166b:	8b 75 08             	mov    0x8(%ebp),%esi
42166e:	57                   	push   %edi
42166f:	e8 e8 74 ff ff       	call   0x418b5c
421674:	8b d8                	mov    %eax,%ebx
421676:	e8 e1 74 ff ff       	call   0x418b5c
42167b:	56                   	push   %esi
42167c:	8b b8 4c 03 00 00    	mov    0x34c(%eax),%edi
421682:	e8 f5 02 00 00       	call   0x42197c
421687:	59                   	pop    %ecx
421688:	8b 4b 64             	mov    0x64(%ebx),%ecx
42168b:	8b f0                	mov    %eax,%esi
42168d:	f7 d9                	neg    %ecx
42168f:	8d 85 0c ff ff ff    	lea    -0xf4(%ebp),%eax
421695:	6a 78                	push   $0x78
421697:	1b c9                	sbb    %ecx,%ecx
421699:	81 e1 05 f0 ff ff    	and    $0xfffff005,%ecx
42169f:	50                   	push   %eax
4216a0:	81 c1 02 10 00 00    	add    $0x1002,%ecx
4216a6:	51                   	push   %ecx
4216a7:	56                   	push   %esi
4216a8:	ff 15 78 71 42 00    	call   *0x427178
4216ae:	85 c0                	test   %eax,%eax
4216b0:	75 0b                	jne    0x4216bd
4216b2:	83 27 00             	andl   $0x0,(%edi)
4216b5:	33 c0                	xor    %eax,%eax
4216b7:	40                   	inc    %eax
4216b8:	e9 d4 01 00 00       	jmp    0x421891
4216bd:	8d 85 0c ff ff ff    	lea    -0xf4(%ebp),%eax
4216c3:	50                   	push   %eax
4216c4:	ff 73 54             	push   0x54(%ebx)
4216c7:	e8 f0 cf ff ff       	call   0x41e6bc
4216cc:	83 a5 08 ff ff ff 00 	andl   $0x0,-0xf8(%ebp)
4216d3:	59                   	pop    %ecx
4216d4:	59                   	pop    %ecx
4216d5:	85 c0                	test   %eax,%eax
4216d7:	0f 85 ad 00 00 00    	jne    0x42178a
4216dd:	6a 78                	push   $0x78
4216df:	8d 85 0c ff ff ff    	lea    -0xf4(%ebp),%eax
4216e5:	50                   	push   %eax
4216e6:	8b 43 60             	mov    0x60(%ebx),%eax
4216e9:	f7 d8                	neg    %eax
4216eb:	1b c0                	sbb    %eax,%eax
4216ed:	25 02 f0 ff ff       	and    $0xfffff002,%eax
4216f2:	05 01 10 00 00       	add    $0x1001,%eax
4216f7:	50                   	push   %eax
4216f8:	56                   	push   %esi
4216f9:	ff 15 78 71 42 00    	call   *0x427178
4216ff:	85 c0                	test   %eax,%eax
421701:	74 af                	je     0x4216b2
421703:	8d 85 0c ff ff ff    	lea    -0xf4(%ebp),%eax
421709:	50                   	push   %eax
42170a:	ff 73 50             	push   0x50(%ebx)
42170d:	e8 aa cf ff ff       	call   0x41e6bc
421712:	59                   	pop    %ecx
421713:	59                   	pop    %ecx
421714:	85 c0                	test   %eax,%eax
421716:	75 0b                	jne    0x421723
421718:	81 0f 04 03 00 00    	orl    $0x304,(%edi)
42171e:	89 77 04             	mov    %esi,0x4(%edi)
421721:	eb 64                	jmp    0x421787
421723:	f6 07 02             	testb  $0x2,(%edi)
421726:	75 62                	jne    0x42178a
421728:	83 7b 5c 00          	cmpl   $0x0,0x5c(%ebx)
42172c:	74 42                	je     0x421770
42172e:	ff 73 5c             	push   0x5c(%ebx)
421731:	8d 85 0c ff ff ff    	lea    -0xf4(%ebp),%eax
421737:	50                   	push   %eax
421738:	ff 73 50             	push   0x50(%ebx)
42173b:	e8 58 3f 00 00       	call   0x425698
421740:	83 c4 0c             	add    $0xc,%esp
421743:	85 c0                	test   %eax,%eax
421745:	75 29                	jne    0x421770
421747:	83 0f 02             	orl    $0x2,(%edi)
42174a:	89 77 08             	mov    %esi,0x8(%edi)
42174d:	8b 4b 50             	mov    0x50(%ebx),%ecx
421750:	8d 51 02             	lea    0x2(%ecx),%edx
421753:	66 8b 01             	mov    (%ecx),%ax
421756:	83 c1 02             	add    $0x2,%ecx
421759:	66 3b 85 08 ff ff ff 	cmp    -0xf8(%ebp),%ax
421760:	75 f1                	jne    0x421753
421762:	2b ca                	sub    %edx,%ecx
421764:	d1 f9                	sar    $1,%ecx
421766:	3b 4b 5c             	cmp    0x5c(%ebx),%ecx
421769:	75 1f                	jne    0x42178a
42176b:	89 77 04             	mov    %esi,0x4(%edi)
42176e:	eb 1a                	jmp    0x42178a
421770:	8b 17                	mov    (%edi),%edx
421772:	f6 c2 01             	test   $0x1,%dl
421775:	75 13                	jne    0x42178a
421777:	56                   	push   %esi
421778:	e8 33 03 00 00       	call   0x421ab0
42177d:	59                   	pop    %ecx
42177e:	85 c0                	test   %eax,%eax
421780:	74 08                	je     0x42178a
421782:	83 ca 01             	or     $0x1,%edx
421785:	89 17                	mov    %edx,(%edi)
421787:	89 77 08             	mov    %esi,0x8(%edi)
42178a:	8b 07                	mov    (%edi),%eax
42178c:	b9 00 03 00 00       	mov    $0x300,%ecx
421791:	23 c1                	and    %ecx,%eax
421793:	3b c1                	cmp    %ecx,%eax
421795:	0f 84 ec 00 00 00    	je     0x421887
42179b:	8b 4b 60             	mov    0x60(%ebx),%ecx
42179e:	8d 85 0c ff ff ff    	lea    -0xf4(%ebp),%eax
4217a4:	f7 d9                	neg    %ecx
4217a6:	6a 78                	push   $0x78
4217a8:	1b c9                	sbb    %ecx,%ecx
4217aa:	81 e1 02 f0 ff ff    	and    $0xfffff002,%ecx
4217b0:	50                   	push   %eax
4217b1:	81 c1 01 10 00 00    	add    $0x1001,%ecx
4217b7:	51                   	push   %ecx
4217b8:	56                   	push   %esi
4217b9:	ff 15 78 71 42 00    	call   *0x427178
4217bf:	85 c0                	test   %eax,%eax
4217c1:	75 07                	jne    0x4217ca
4217c3:	89 07                	mov    %eax,(%edi)
4217c5:	e9 eb fe ff ff       	jmp    0x4216b5
4217ca:	8d 85 0c ff ff ff    	lea    -0xf4(%ebp),%eax
4217d0:	50                   	push   %eax
4217d1:	ff 73 50             	push   0x50(%ebx)
4217d4:	e8 e3 ce ff ff       	call   0x41e6bc
4217d9:	59                   	pop    %ecx
4217da:	59                   	pop    %ecx
4217db:	85 c0                	test   %eax,%eax
4217dd:	75 68                	jne    0x421847
4217df:	81 0f 00 02 00 00    	orl    $0x200,(%edi)
4217e5:	8b 17                	mov    (%edi),%edx
4217e7:	39 43 60             	cmp    %eax,0x60(%ebx)
4217ea:	74 10                	je     0x4217fc
4217ec:	81 ca 00 01 00 00    	or     $0x100,%edx
4217f2:	89 17                	mov    %edx,(%edi)
4217f4:	39 47 04             	cmp    %eax,0x4(%edi)
4217f7:	e9 86 00 00 00       	jmp    0x421882
4217fc:	39 43 5c             	cmp    %eax,0x5c(%ebx)
4217ff:	74 eb                	je     0x4217ec
421801:	8b 4b 50             	mov    0x50(%ebx),%ecx
421804:	8d 41 02             	lea    0x2(%ecx),%eax
421807:	89 85 04 ff ff ff    	mov    %eax,-0xfc(%ebp)
42180d:	66 8b 01             	mov    (%ecx),%ax
421810:	83 c1 02             	add    $0x2,%ecx
421813:	66 3b 85 08 ff ff ff 	cmp    -0xf8(%ebp),%ax
42181a:	75 f1                	jne    0x42180d
42181c:	2b 8d 04 ff ff ff    	sub    -0xfc(%ebp),%ecx
421822:	d1 f9                	sar    $1,%ecx
421824:	3b 4b 5c             	cmp    0x5c(%ebx),%ecx
421827:	75 1a                	jne    0x421843
421829:	57                   	push   %edi
42182a:	6a 01                	push   $0x1
42182c:	56                   	push   %esi
42182d:	e8 a2 02 00 00       	call   0x421ad4
421832:	83 c4 0c             	add    $0xc,%esp
421835:	85 c0                	test   %eax,%eax
421837:	74 4e                	je     0x421887
421839:	81 0f 00 01 00 00    	orl    $0x100,(%edi)
42183f:	33 c0                	xor    %eax,%eax
421841:	eb b1                	jmp    0x4217f4
421843:	33 c0                	xor    %eax,%eax
421845:	eb a5                	jmp    0x4217ec
421847:	33 c0                	xor    %eax,%eax
421849:	39 43 60             	cmp    %eax,0x60(%ebx)
42184c:	75 39                	jne    0x421887
42184e:	39 43 5c             	cmp    %eax,0x5c(%ebx)
421851:	74 34                	je     0x421887
421853:	8d 85 0c ff ff ff    	lea    -0xf4(%ebp),%eax
421859:	50                   	push   %eax
42185a:	ff 73 50             	push   0x50(%ebx)
42185d:	e8 5a ce ff ff       	call   0x41e6bc
421862:	59                   	pop    %ecx
421863:	59                   	pop    %ecx
421864:	85 c0                	test   %eax,%eax
421866:	75 1f                	jne    0x421887
421868:	57                   	push   %edi
421869:	33 db                	xor    %ebx,%ebx
42186b:	53                   	push   %ebx
42186c:	56                   	push   %esi
42186d:	e8 62 02 00 00       	call   0x421ad4
421872:	83 c4 0c             	add    $0xc,%esp
421875:	85 c0                	test   %eax,%eax
421877:	74 0e                	je     0x421887
421879:	81 0f 00 01 00 00    	orl    $0x100,(%edi)
42187f:	39 5f 04             	cmp    %ebx,0x4(%edi)
421882:	75 03                	jne    0x421887
421884:	89 77 04             	mov    %esi,0x4(%edi)
421887:	8b 07                	mov    (%edi),%eax
421889:	c1 e8 02             	shr    $0x2,%eax
42188c:	f7 d0                	not    %eax
42188e:	83 e0 01             	and    $0x1,%eax
421891:	8b 4d fc             	mov    -0x4(%ebp),%ecx
421894:	5f                   	pop    %edi
421895:	5e                   	pop    %esi
421896:	33 cd                	xor    %ebp,%ecx
421898:	5b                   	pop    %ebx
421899:	e8 c2 57 fe ff       	call   0x407060
42189e:	8b e5                	mov    %ebp,%esp
4218a0:	5d                   	pop    %ebp
4218a1:	c2 04 00             	ret    $0x4
4218a4:	8b ff                	mov    %edi,%edi
4218a6:	55                   	push   %ebp
4218a7:	8b ec                	mov    %esp,%ebp
4218a9:	81 ec f4 00 00 00    	sub    $0xf4,%esp
4218af:	a1 28 ba 43 00       	mov    0x43ba28,%eax
4218b4:	33 c5                	xor    %ebp,%eax
4218b6:	89 45 fc             	mov    %eax,-0x4(%ebp)
4218b9:	53                   	push   %ebx
4218ba:	56                   	push   %esi
4218bb:	8b 75 08             	mov    0x8(%ebp),%esi
4218be:	57                   	push   %edi
4218bf:	e8 98 72 ff ff       	call   0x418b5c
4218c4:	8b d8                	mov    %eax,%ebx
4218c6:	e8 91 72 ff ff       	call   0x418b5c
4218cb:	56                   	push   %esi
4218cc:	8b b8 4c 03 00 00    	mov    0x34c(%eax),%edi
4218d2:	e8 a5 00 00 00       	call   0x42197c
4218d7:	59                   	pop    %ecx
4218d8:	8b 4b 60             	mov    0x60(%ebx),%ecx
4218db:	8b f0                	mov    %eax,%esi
4218dd:	f7 d9                	neg    %ecx
4218df:	8d 85 0c ff ff ff    	lea    -0xf4(%ebp),%eax
4218e5:	6a 78                	push   $0x78
4218e7:	1b c9                	sbb    %ecx,%ecx
4218e9:	81 e1 02 f0 ff ff    	and    $0xfffff002,%ecx
4218ef:	50                   	push   %eax
4218f0:	81 c1 01 10 00 00    	add    $0x1001,%ecx
4218f6:	51                   	push   %ecx
4218f7:	56                   	push   %esi
4218f8:	ff 15 78 71 42 00    	call   *0x427178
4218fe:	85 c0                	test   %eax,%eax
421900:	75 05                	jne    0x421907
421902:	21 07                	and    %eax,(%edi)
421904:	40                   	inc    %eax
421905:	eb 62                	jmp    0x421969
421907:	8d 85 0c ff ff ff    	lea    -0xf4(%ebp),%eax
42190d:	50                   	push   %eax
42190e:	ff 73 50             	push   0x50(%ebx)
421911:	e8 a6 cd ff ff       	call   0x41e6bc
421916:	59                   	pop    %ecx
421917:	59                   	pop    %ecx
421918:	85 c0                	test   %eax,%eax
42191a:	75 0a                	jne    0x421926
42191c:	39 43 60             	cmp    %eax,0x60(%ebx)
42191f:	75 35                	jne    0x421956
421921:	57                   	push   %edi
421922:	6a 01                	push   $0x1
421924:	eb 23                	jmp    0x421949
421926:	83 7b 60 00          	cmpl   $0x0,0x60(%ebx)
42192a:	75 33                	jne    0x42195f
42192c:	83 7b 5c 00          	cmpl   $0x0,0x5c(%ebx)
421930:	74 2d                	je     0x42195f
421932:	8d 85 0c ff ff ff    	lea    -0xf4(%ebp),%eax
421938:	50                   	push   %eax
421939:	ff 73 50             	push   0x50(%ebx)
42193c:	e8 7b cd ff ff       	call   0x41e6bc