50671a:	83 c0 18             	add    $0x18,%eax
50671d:	8b 93 88 01 00 00    	mov    0x188(%ebx),%edx
506723:	89 10                	mov    %edx,(%eax)
506725:	8b 8b 8c 01 00 00    	mov    0x18c(%ebx),%ecx
50672b:	89 48 04             	mov    %ecx,0x4(%eax)
50672e:	8b 93 90 01 00 00    	mov    0x190(%ebx),%edx
506734:	89 50 08             	mov    %edx,0x8(%eax)
506737:	8b 8b 94 01 00 00    	mov    0x194(%ebx),%ecx
50673d:	89 48 0c             	mov    %ecx,0xc(%eax)
506740:	8b 03                	mov    (%ebx),%eax
506742:	c7 40 14 68 00 00 00 	movl   $0x68,0x14(%eax)
506749:	ba 01 00 00 00       	mov    $0x1,%edx
50674e:	8b c3                	mov    %ebx,%eax
506750:	8b 08                	mov    (%eax),%ecx
506752:	ff 51 04             	call   *0x4(%ecx)
506755:	8b 83 b0 01 00 00    	mov    0x1b0(%ebx),%eax
50675b:	33 d2                	xor    %edx,%edx
50675d:	89 50 58             	mov    %edx,0x58(%eax)
506760:	ff 83 8c 00 00 00    	incl   0x8c(%ebx)
506766:	8b 4c 24 10          	mov    0x10(%esp),%ecx
50676a:	89 39                	mov    %edi,(%ecx)
50676c:	8b 44 24 10          	mov    0x10(%esp),%eax
506770:	89 68 04             	mov    %ebp,0x4(%eax)
506773:	b8 01 00 00 00       	mov    $0x1,%eax
506778:	83 c4 18             	add    $0x18,%esp
50677b:	5d                   	pop    %ebp
50677c:	5f                   	pop    %edi
50677d:	5e                   	pop    %esi
50677e:	5b                   	pop    %ebx
50677f:	c3                   	ret
506780:	53                   	push   %ebx
506781:	8b d8                	mov    %eax,%ebx
506783:	56                   	push   %esi
506784:	57                   	push   %edi
506785:	55                   	push   %ebp
506786:	83 c4 e4             	add    $0xffffffe4,%esp
506789:	8b 6b 14             	mov    0x14(%ebx),%ebp
50678c:	8b 7d 04             	mov    0x4(%ebp),%edi
50678f:	8b 75 00             	mov    0x0(%ebp),%esi
506792:	85 ff                	test   %edi,%edi
506794:	75 16                	jne    0x5067ac
506796:	8b c3                	mov    %ebx,%eax
506798:	ff 55 0c             	call   *0xc(%ebp)
50679b:	85 c0                	test   %eax,%eax
50679d:	75 07                	jne    0x5067a6
50679f:	33 c0                	xor    %eax,%eax
5067a1:	e9 54 02 00 00       	jmp    0x5069fa
5067a6:	8b 75 00             	mov    0x0(%ebp),%esi
5067a9:	8b 7d 04             	mov    0x4(%ebp),%edi
5067ac:	33 c0                	xor    %eax,%eax
5067ae:	4f                   	dec    %edi
5067af:	8a 06                	mov    (%esi),%al
5067b1:	46                   	inc    %esi
5067b2:	c1 e0 08             	shl    $0x8,%eax
5067b5:	85 ff                	test   %edi,%edi
5067b7:	89 04 24             	mov    %eax,(%esp)
5067ba:	75 16                	jne    0x5067d2
5067bc:	8b c3                	mov    %ebx,%eax
5067be:	ff 55 0c             	call   *0xc(%ebp)
5067c1:	85 c0                	test   %eax,%eax
5067c3:	75 07                	jne    0x5067cc
5067c5:	33 c0                	xor    %eax,%eax
5067c7:	e9 2e 02 00 00       	jmp    0x5069fa
5067cc:	8b 75 00             	mov    0x0(%ebp),%esi
5067cf:	8b 7d 04             	mov    0x4(%ebp),%edi
5067d2:	4f                   	dec    %edi
5067d3:	33 c0                	xor    %eax,%eax
5067d5:	8a 06                	mov    (%esi),%al
5067d7:	01 04 24             	add    %eax,(%esp)
5067da:	46                   	inc    %esi
5067db:	83 2c 24 02          	subl   $0x2,(%esp)
5067df:	83 3c 24 0e          	cmpl   $0xe,(%esp)
5067e3:	0f 8c da 01 00 00    	jl     0x5069c3
5067e9:	33 d2                	xor    %edx,%edx
5067eb:	8d 4c 24 0c          	lea    0xc(%esp),%ecx
5067ef:	89 54 24 04          	mov    %edx,0x4(%esp)
5067f3:	89 4c 24 08          	mov    %ecx,0x8(%esp)
5067f7:	85 ff                	test   %edi,%edi
5067f9:	75 16                	jne    0x506811
5067fb:	8b c3                	mov    %ebx,%eax
5067fd:	ff 55 0c             	call   *0xc(%ebp)
506800:	85 c0                	test   %eax,%eax
506802:	75 07                	jne    0x50680b
506804:	33 c0                	xor    %eax,%eax
506806:	e9 ef 01 00 00       	jmp    0x5069fa
50680b:	8b 75 00             	mov    0x0(%ebp),%esi
50680e:	8b 7d 04             	mov    0x4(%ebp),%edi
506811:	4f                   	dec    %edi
506812:	8b 44 24 08          	mov    0x8(%esp),%eax
506816:	8a 16                	mov    (%esi),%dl
506818:	88 10                	mov    %dl,(%eax)
50681a:	46                   	inc    %esi
50681b:	ff 44 24 04          	incl   0x4(%esp)
50681f:	ff 44 24 08          	incl   0x8(%esp)
506823:	83 7c 24 04 0e       	cmpl   $0xe,0x4(%esp)
506828:	7c cd                	jl     0x5067f7
50682a:	83 2c 24 0e          	subl   $0xe,(%esp)
50682e:	80 7c 24 0c 4a       	cmpb   $0x4a,0xc(%esp)
506833:	0f 85 6a 01 00 00    	jne    0x5069a3
506839:	80 7c 24 0d 46       	cmpb   $0x46,0xd(%esp)
50683e:	0f 85 5f 01 00 00    	jne    0x5069a3
506844:	80 7c 24 0e 49       	cmpb   $0x49,0xe(%esp)
506849:	0f 85 54 01 00 00    	jne    0x5069a3
50684f:	80 7c 24 0f 46       	cmpb   $0x46,0xf(%esp)
506854:	0f 85 49 01 00 00    	jne    0x5069a3
50685a:	80 7c 24 10 00       	cmpb   $0x0,0x10(%esp)
50685f:	0f 85 3e 01 00 00    	jne    0x5069a3
506865:	80 7c 24 11 01       	cmpb   $0x1,0x11(%esp)
50686a:	74 27                	je     0x506893
50686c:	8b 03                	mov    (%ebx),%eax
50686e:	33 d2                	xor    %edx,%edx
506870:	33 c9                	xor    %ecx,%ecx
506872:	c7 40 14 73 00 00 00 	movl   $0x73,0x14(%eax)
506879:	8a 54 24 11          	mov    0x11(%esp),%dl
50687d:	89 50 18             	mov    %edx,0x18(%eax)
506880:	83 ca ff             	or     $0xffffffff,%edx
506883:	8a 4c 24 12          	mov    0x12(%esp),%cl
506887:	89 48 1c             	mov    %ecx,0x1c(%eax)
50688a:	8b c3                	mov    %ebx,%eax
50688c:	8b 08                	mov    (%eax),%ecx
50688e:	ff 51 04             	call   *0x4(%ecx)
506891:	eb 2e                	jmp    0x5068c1
506893:	80 7c 24 12 02       	cmpb   $0x2,0x12(%esp)
506898:	76 27                	jbe    0x5068c1
50689a:	8b 03                	mov    (%ebx),%eax
50689c:	33 d2                	xor    %edx,%edx
50689e:	33 c9                	xor    %ecx,%ecx
5068a0:	c7 40 14 58 00 00 00 	movl   $0x58,0x14(%eax)
5068a7:	8a 54 24 11          	mov    0x11(%esp),%dl
5068ab:	89 50 18             	mov    %edx,0x18(%eax)
5068ae:	ba 01 00 00 00       	mov    $0x1,%edx
5068b3:	8a 4c 24 12          	mov    0x12(%esp),%cl
5068b7:	89 48 1c             	mov    %ecx,0x1c(%eax)
5068ba:	8b c3                	mov    %ebx,%eax
5068bc:	8b 08                	mov    (%eax),%ecx
5068be:	ff 51 04             	call   *0x4(%ecx)
5068c1:	c7 83 14 01 00 00 01 	movl   $0x1,0x114(%ebx)
5068c8:	00 00 00
5068cb:	8a 44 24 13          	mov    0x13(%esp),%al
5068cf:	33 d2                	xor    %edx,%edx
5068d1:	88 83 18 01 00 00    	mov    %al,0x118(%ebx)
5068d7:	33 c9                	xor    %ecx,%ecx
5068d9:	8a 54 24 14          	mov    0x14(%esp),%dl
5068dd:	8a 4c 24 15          	mov    0x15(%esp),%cl
5068e1:	c1 e2 08             	shl    $0x8,%edx
5068e4:	33 c0                	xor    %eax,%eax
5068e6:	66 03 d1             	add    %cx,%dx
5068e9:	66 89 93 1a 01 00 00 	mov    %dx,0x11a(%ebx)
5068f0:	33 d2                	xor    %edx,%edx
5068f2:	8a 44 24 16          	mov    0x16(%esp),%al
5068f6:	8a 54 24 17          	mov    0x17(%esp),%dl
5068fa:	c1 e0 08             	shl    $0x8,%eax
5068fd:	66 03 c2             	add    %dx,%ax
506900:	66 89 83 1c 01 00 00 	mov    %ax,0x11c(%ebx)
506907:	8b 03                	mov    (%ebx),%eax
506909:	83 c0 18             	add    $0x18,%eax
50690c:	0f b7 93 1a 01 00 00 	movzwl 0x11a(%ebx),%edx
506913:	89 10                	mov    %edx,(%eax)
506915:	0f b7 8b 1c 01 00 00 	movzwl 0x11c(%ebx),%ecx
50691c:	89 48 04             	mov    %ecx,0x4(%eax)
50691f:	33 d2                	xor    %edx,%edx
506921:	8a 93 18 01 00 00    	mov    0x118(%ebx),%dl
506927:	89 50 08             	mov    %edx,0x8(%eax)
50692a:	8b 03                	mov    (%ebx),%eax
50692c:	c7 40 14 56 00 00 00 	movl   $0x56,0x14(%eax)
506933:	ba 01 00 00 00       	mov    $0x1,%edx
506938:	8b c3                	mov    %ebx,%eax
50693a:	8b 08                	mov    (%eax),%ecx
50693c:	ff 51 04             	call   *0x4(%ecx)
50693f:	8a 44 24 18          	mov    0x18(%esp),%al
506943:	0a 44 24 19          	or     0x19(%esp),%al
506947:	74 27                	je     0x506970
506949:	8b 03                	mov    (%ebx),%eax
50694b:	33 d2                	xor    %edx,%edx
50694d:	33 c9                	xor    %ecx,%ecx
50694f:	c7 40 14 59 00 00 00 	movl   $0x59,0x14(%eax)
506956:	8a 54 24 18          	mov    0x18(%esp),%dl
50695a:	89 50 18             	mov    %edx,0x18(%eax)
50695d:	ba 01 00 00 00       	mov    $0x1,%edx
506962:	8a 4c 24 19          	mov    0x19(%esp),%cl
506966:	89 48 1c             	mov    %ecx,0x1c(%eax)
506969:	8b c3                	mov    %ebx,%eax
50696b:	8b 08                	mov    (%eax),%ecx
50696d:	ff 51 04             	call   *0x4(%ecx)
506970:	33 c0                	xor    %eax,%eax
506972:	33 d2                	xor    %edx,%edx
506974:	8a 54 24 19          	mov    0x19(%esp),%dl
506978:	8a 44 24 18          	mov    0x18(%esp),%al
50697c:	f7 ea                	imul   %edx
50697e:	8d 0c 40             	lea    (%eax,%eax,2),%ecx
506981:	3b 0c 24             	cmp    (%esp),%ecx
506984:	74 58                	je     0x5069de
506986:	8b 03                	mov    (%ebx),%eax
506988:	c7 40 14 57 00 00 00 	movl   $0x57,0x14(%eax)
50698f:	8b 14 24             	mov    (%esp),%edx
506992:	89 50 18             	mov    %edx,0x18(%eax)
506995:	8b c3                	mov    %ebx,%eax
506997:	ba 01 00 00 00       	mov    $0x1,%edx
50699c:	8b 08                	mov    (%eax),%ecx
50699e:	ff 51 04             	call   *0x4(%ecx)
5069a1:	eb 3b                	jmp    0x5069de
5069a3:	8b 03                	mov    (%ebx),%eax
5069a5:	c7 40 14 4c 00 00 00 	movl   $0x4c,0x14(%eax)
5069ac:	8b 14 24             	mov    (%esp),%edx
5069af:	83 c2 0e             	add    $0xe,%edx
5069b2:	89 50 18             	mov    %edx,0x18(%eax)
5069b5:	8b c3                	mov    %ebx,%eax
5069b7:	ba 01 00 00 00       	mov    $0x1,%edx
5069bc:	8b 08                	mov    (%eax),%ecx
5069be:	ff 51 04             	call   *0x4(%ecx)
5069c1:	eb 1b                	jmp    0x5069de
5069c3:	8b 03                	mov    (%ebx),%eax
5069c5:	c7 40 14 4c 00 00 00 	movl   $0x4c,0x14(%eax)
5069cc:	8b 14 24             	mov    (%esp),%edx
5069cf:	89 50 18             	mov    %edx,0x18(%eax)
5069d2:	8b c3                	mov    %ebx,%eax
5069d4:	ba 01 00 00 00       	mov    $0x1,%edx
5069d9:	8b 08                	mov    (%eax),%ecx
5069db:	ff 51 04             	call   *0x4(%ecx)
5069de:	89 75 00             	mov    %esi,0x0(%ebp)
5069e1:	89 7d 04             	mov    %edi,0x4(%ebp)
5069e4:	83 3c 24 00          	cmpl   $0x0,(%esp)
5069e8:	7e 0b                	jle    0x5069f5
5069ea:	8b 14 24             	mov    (%esp),%edx
5069ed:	8b c3                	mov    %ebx,%eax
5069ef:	8b 48 14             	mov    0x14(%eax),%ecx
5069f2:	ff 51 10             	call   *0x10(%ecx)
5069f5:	b8 01 00 00 00       	mov    $0x1,%eax
5069fa:	83 c4 1c             	add    $0x1c,%esp
5069fd:	5d                   	pop    %ebp
5069fe:	5f                   	pop    %edi
5069ff:	5e                   	pop    %esi
506a00:	5b                   	pop    %ebx
506a01:	c3                   	ret
506a02:	90                   	nop
506a03:	90                   	nop
506a04:	53                   	push   %ebx
506a05:	56                   	push   %esi
506a06:	57                   	push   %edi
506a07:	55                   	push   %ebp
506a08:	83 c4 d8             	add    $0xffffffd8,%esp
506a0b:	8b e8                	mov    %eax,%ebp
506a0d:	8b 7d 14             	mov    0x14(%ebp),%edi
506a10:	8b 1f                	mov    (%edi),%ebx
506a12:	8b 77 04             	mov    0x4(%edi),%esi
506a15:	85 f6                	test   %esi,%esi
506a17:	75 15                	jne    0x506a2e
506a19:	8b c5                	mov    %ebp,%eax
506a1b:	ff 57 0c             	call   *0xc(%edi)
506a1e:	85 c0                	test   %eax,%eax
506a20:	75 07                	jne    0x506a29
506a22:	33 c0                	xor    %eax,%eax
506a24:	e9 aa 01 00 00       	jmp    0x506bd3
506a29:	8b 1f                	mov    (%edi),%ebx
506a2b:	8b 77 04             	mov    0x4(%edi),%esi
506a2e:	33 c0                	xor    %eax,%eax
506a30:	4e                   	dec    %esi
506a31:	8a 03                	mov    (%ebx),%al
506a33:	43                   	inc    %ebx
506a34:	c1 e0 08             	shl    $0x8,%eax
506a37:	85 f6                	test   %esi,%esi
506a39:	89 04 24             	mov    %eax,(%esp)
506a3c:	75 15                	jne    0x506a53
506a3e:	8b c5                	mov    %ebp,%eax
506a40:	ff 57 0c             	call   *0xc(%edi)
506a43:	85 c0                	test   %eax,%eax
506a45:	75 07                	jne    0x506a4e
506a47:	33 c0                	xor    %eax,%eax
506a49:	e9 85 01 00 00       	jmp    0x506bd3
506a4e:	8b 1f                	mov    (%edi),%ebx
506a50:	8b 77 04             	mov    0x4(%edi),%esi
506a53:	4e                   	dec    %esi
506a54:	33 c0                	xor    %eax,%eax
506a56:	8a 03                	mov    (%ebx),%al
506a58:	01 04 24             	add    %eax,(%esp)
506a5b:	43                   	inc    %ebx
506a5c:	83 2c 24 02          	subl   $0x2,(%esp)
506a60:	83 3c 24 0c          	cmpl   $0xc,(%esp)
506a64:	0f 8c 32 01 00 00    	jl     0x506b9c
506a6a:	33 d2                	xor    %edx,%edx
506a6c:	8d 4c 24 1c          	lea    0x1c(%esp),%ecx
506a70:	89 54 24 04          	mov    %edx,0x4(%esp)
506a74:	89 4c 24 18          	mov    %ecx,0x18(%esp)
506a78:	85 f6                	test   %esi,%esi
506a7a:	75 15                	jne    0x506a91
506a7c:	8b c5                	mov    %ebp,%eax
506a7e:	ff 57 0c             	call   *0xc(%edi)
506a81:	85 c0                	test   %eax,%eax
506a83:	75 07                	jne    0x506a8c
506a85:	33 c0                	xor    %eax,%eax
506a87:	e9 47 01 00 00       	jmp    0x506bd3
506a8c:	8b 1f                	mov    (%edi),%ebx
506a8e:	8b 77 04             	mov    0x4(%edi),%esi
506a91:	4e                   	dec    %esi
506a92:	8b 44 24 18          	mov    0x18(%esp),%eax
506a96:	8a 13                	mov    (%ebx),%dl
506a98:	88 10                	mov    %dl,(%eax)
506a9a:	43                   	inc    %ebx
506a9b:	ff 44 24 04          	incl   0x4(%esp)
506a9f:	ff 44 24 18          	incl   0x18(%esp)
506aa3:	83 7c 24 04 0c       	cmpl   $0xc,0x4(%esp)
506aa8:	7c ce                	jl     0x506a78
506aaa:	83 2c 24 0c          	subl   $0xc,(%esp)
506aae:	80 7c 24 1c 41       	cmpb   $0x41,0x1c(%esp)
506ab3:	0f 85 c2 00 00 00    	jne    0x506b7b
506ab9:	80 7c 24 1d 64       	cmpb   $0x64,0x1d(%esp)
506abe:	0f 85 b7 00 00 00    	jne    0x506b7b
506ac4:	80 7c 24 1e 6f       	cmpb   $0x6f,0x1e(%esp)
506ac9:	0f 85 ac 00 00 00    	jne    0x506b7b
506acf:	80 7c 24 1f 62       	cmpb   $0x62,0x1f(%esp)
506ad4:	0f 85 a1 00 00 00    	jne    0x506b7b
506ada:	80 7c 24 20 65       	cmpb   $0x65,0x20(%esp)
506adf:	0f 85 96 00 00 00    	jne    0x506b7b
506ae5:	33 c9                	xor    %ecx,%ecx
506ae7:	33 c0                	xor    %eax,%eax
506ae9:	8a 4c 24 21          	mov    0x21(%esp),%cl
506aed:	8a 44 24 22          	mov    0x22(%esp),%al
506af1:	c1 e1 08             	shl    $0x8,%ecx
506af4:	33 d2                	xor    %edx,%edx
506af6:	03 c8                	add    %eax,%ecx
506af8:	33 c0                	xor    %eax,%eax
506afa:	89 4c 24 08          	mov    %ecx,0x8(%esp)
506afe:	33 c9                	xor    %ecx,%ecx
506b00:	8a 54 24 23          	mov    0x23(%esp),%dl
506b04:	8a 4c 24 24          	mov    0x24(%esp),%cl
506b08:	c1 e2 08             	shl    $0x8,%edx
506b0b:	03 d1                	add    %ecx,%edx
506b0d:	89 54 24 0c          	mov    %edx,0xc(%esp)
506b11:	33 d2                	xor    %edx,%edx
506b13:	8a 44 24 25          	mov    0x25(%esp),%al
506b17:	8a 54 24 26          	mov    0x26(%esp),%dl
506b1b:	c1 e0 08             	shl    $0x8,%eax
506b1e:	03 c2                	add    %edx,%eax
506b20:	33 c9                	xor    %ecx,%ecx
506b22:	89 44 24 10          	mov    %eax,0x10(%esp)
506b26:	8a 4c 24 27          	mov    0x27(%esp),%cl
506b2a:	89 4c 24 14          	mov    %ecx,0x14(%esp)
506b2e:	8b 45 00             	mov    0x0(%ebp),%eax
506b31:	83 c0 18             	add    $0x18,%eax
506b34:	8b 54 24 08          	mov    0x8(%esp),%edx
506b38:	89 10                	mov    %edx,(%eax)
506b3a:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
506b3e:	89 48 04             	mov    %ecx,0x4(%eax)
506b41:	8b 54 24 10          	mov    0x10(%esp),%edx
506b45:	89 50 08             	mov    %edx,0x8(%eax)
506b48:	8b 4c 24 14          	mov    0x14(%esp),%ecx
506b4c:	89 48 0c             	mov    %ecx,0xc(%eax)
506b4f:	8b 45 00             	mov    0x0(%ebp),%eax
506b52:	c7 40 14 4b 00 00 00 	movl   $0x4b,0x14(%eax)
506b59:	ba 01 00 00 00       	mov    $0x1,%edx