50163c:	0f 8c 2b ff ff ff    	jl     0x50156d
501642:	5f                   	pop    %edi
501643:	5e                   	pop    %esi
501644:	5b                   	pop    %ebx
501645:	8b e5                	mov    %ebp,%esp
501647:	5d                   	pop    %ebp
501648:	c2 04 00             	ret    $0x4
50164b:	90                   	nop
50164c:	55                   	push   %ebp
50164d:	8b ec                	mov    %esp,%ebp
50164f:	83 c4 cc             	add    $0xffffffcc,%esp
501652:	53                   	push   %ebx
501653:	56                   	push   %esi
501654:	57                   	push   %edi
501655:	8b 98 c4 01 00 00    	mov    0x1c4(%eax),%ebx
50165b:	89 5d fc             	mov    %ebx,-0x4(%ebp)
50165e:	8b 5d fc             	mov    -0x4(%ebp),%ebx
501661:	8b 5b 18             	mov    0x18(%ebx),%ebx
501664:	8b 33                	mov    (%ebx),%esi
501666:	89 75 f8             	mov    %esi,-0x8(%ebp)
501669:	8b 73 04             	mov    0x4(%ebx),%esi
50166c:	89 75 f4             	mov    %esi,-0xc(%ebp)
50166f:	8b 5b 08             	mov    0x8(%ebx),%ebx
501672:	89 5d f0             	mov    %ebx,-0x10(%ebp)
501675:	8b 40 6c             	mov    0x6c(%eax),%eax
501678:	89 45 d4             	mov    %eax,-0x2c(%ebp)
50167b:	33 c0                	xor    %eax,%eax
50167d:	89 45 dc             	mov    %eax,-0x24(%ebp)
501680:	89 4d cc             	mov    %ecx,-0x34(%ebp)
501683:	89 55 d0             	mov    %edx,-0x30(%ebp)
501686:	8b 45 dc             	mov    -0x24(%ebp),%eax
501689:	3b 45 08             	cmp    0x8(%ebp),%eax
50168c:	0f 8d c9 00 00 00    	jge    0x50175b
501692:	8b 55 fc             	mov    -0x4(%ebp),%edx
501695:	8b 4a 30             	mov    0x30(%edx),%ecx
501698:	89 4d e0             	mov    %ecx,-0x20(%ebp)
50169b:	8b 55 cc             	mov    -0x34(%ebp),%edx
50169e:	8b 4d fc             	mov    -0x4(%ebp),%ecx
5016a1:	8b 45 d0             	mov    -0x30(%ebp),%eax
5016a4:	8b 32                	mov    (%edx),%esi
5016a6:	8b 55 e0             	mov    -0x20(%ebp),%edx
5016a9:	8b 49 34             	mov    0x34(%ecx),%ecx
5016ac:	c1 e2 06             	shl    $0x6,%edx
5016af:	8b 00                	mov    (%eax),%eax
5016b1:	03 ca                	add    %edx,%ecx
5016b3:	89 4d ec             	mov    %ecx,-0x14(%ebp)
5016b6:	8b 4d fc             	mov    -0x4(%ebp),%ecx
5016b9:	8b 49 38             	mov    0x38(%ecx),%ecx
5016bc:	03 ca                	add    %edx,%ecx
5016be:	89 4d e8             	mov    %ecx,-0x18(%ebp)
5016c1:	8b 4d fc             	mov    -0x4(%ebp),%ecx
5016c4:	8b 49 3c             	mov    0x3c(%ecx),%ecx
5016c7:	03 ca                	add    %edx,%ecx
5016c9:	33 d2                	xor    %edx,%edx
5016cb:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
5016ce:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
5016d1:	89 4d d8             	mov    %ecx,-0x28(%ebp)
5016d4:	83 7d d8 00          	cmpl   $0x0,-0x28(%ebp)
5016d8:	76 57                	jbe    0x501731
5016da:	33 c9                	xor    %ecx,%ecx
5016dc:	8b 5d f8             	mov    -0x8(%ebp),%ebx
5016df:	8a 08                	mov    (%eax),%cl
5016e1:	40                   	inc    %eax
5016e2:	8b 7d f4             	mov    -0xc(%ebp),%edi
5016e5:	8d 0c 0b             	lea    (%ebx,%ecx,1),%ecx
5016e8:	8b 5d ec             	mov    -0x14(%ebp),%ebx
5016eb:	8b 1c 93             	mov    (%ebx,%edx,4),%ebx
5016ee:	0f b6 0c 19          	movzbl (%ecx,%ebx,1),%ecx
5016f2:	33 db                	xor    %ebx,%ebx
5016f4:	8a 18                	mov    (%eax),%bl
5016f6:	40                   	inc    %eax
5016f7:	8d 1c 1f             	lea    (%edi,%ebx,1),%ebx
5016fa:	53                   	push   %ebx
5016fb:	8b 5d e8             	mov    -0x18(%ebp),%ebx
5016fe:	5f                   	pop    %edi
5016ff:	8b 1c 93             	mov    (%ebx,%edx,4),%ebx
501702:	0f b6 1c 1f          	movzbl (%edi,%ebx,1),%ebx
501706:	03 cb                	add    %ebx,%ecx
501708:	33 db                	xor    %ebx,%ebx
50170a:	8a 18                	mov    (%eax),%bl
50170c:	8b 7d f0             	mov    -0x10(%ebp),%edi
50170f:	40                   	inc    %eax
501710:	8d 1c 1f             	lea    (%edi,%ebx,1),%ebx
501713:	53                   	push   %ebx
501714:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
501717:	5f                   	pop    %edi
501718:	8b 1c 93             	mov    (%ebx,%edx,4),%ebx
50171b:	42                   	inc    %edx
50171c:	83 e2 0f             	and    $0xf,%edx
50171f:	0f b6 1c 1f          	movzbl (%edi,%ebx,1),%ebx
501723:	03 cb                	add    %ebx,%ecx
501725:	88 0e                	mov    %cl,(%esi)
501727:	46                   	inc    %esi
501728:	ff 4d d8             	decl   -0x28(%ebp)
50172b:	83 7d d8 00          	cmpl   $0x0,-0x28(%ebp)
50172f:	77 a9                	ja     0x5016da
501731:	8b 45 e0             	mov    -0x20(%ebp),%eax
501734:	40                   	inc    %eax
501735:	83 e0 0f             	and    $0xf,%eax
501738:	89 45 e0             	mov    %eax,-0x20(%ebp)
50173b:	8b 4d fc             	mov    -0x4(%ebp),%ecx
50173e:	8b 45 e0             	mov    -0x20(%ebp),%eax
501741:	89 41 30             	mov    %eax,0x30(%ecx)
501744:	ff 45 dc             	incl   -0x24(%ebp)
501747:	83 45 cc 04          	addl   $0x4,-0x34(%ebp)
50174b:	83 45 d0 04          	addl   $0x4,-0x30(%ebp)
50174f:	8b 55 dc             	mov    -0x24(%ebp),%edx
501752:	3b 55 08             	cmp    0x8(%ebp),%edx
501755:	0f 8c 37 ff ff ff    	jl     0x501692
50175b:	5f                   	pop    %edi
50175c:	5e                   	pop    %esi
50175d:	5b                   	pop    %ebx
50175e:	8b e5                	mov    %ebp,%esp
501760:	5d                   	pop    %ebp
501761:	c2 04 00             	ret    $0x4
501764:	55                   	push   %ebp
501765:	8b ec                	mov    %esp,%ebp
501767:	83 c4 b0             	add    $0xffffffb0,%esp
50176a:	53                   	push   %ebx
50176b:	56                   	push   %esi
50176c:	8b 98 c4 01 00 00    	mov    0x1c4(%eax),%ebx
501772:	89 5d fc             	mov    %ebx,-0x4(%ebp)
501775:	8b 58 74             	mov    0x74(%eax),%ebx
501778:	89 5d dc             	mov    %ebx,-0x24(%ebp)
50177b:	8b 58 6c             	mov    0x6c(%eax),%ebx
50177e:	89 5d c8             	mov    %ebx,-0x38(%ebp)
501781:	8b 80 3c 01 00 00    	mov    0x13c(%eax),%eax
501787:	89 45 c4             	mov    %eax,-0x3c(%ebp)
50178a:	33 c0                	xor    %eax,%eax
50178c:	89 45 d0             	mov    %eax,-0x30(%ebp)
50178f:	89 55 b0             	mov    %edx,-0x50(%ebp)
501792:	89 4d c0             	mov    %ecx,-0x40(%ebp)
501795:	8b 45 d0             	mov    -0x30(%ebp),%eax
501798:	3b 45 08             	cmp    0x8(%ebp),%eax
50179b:	0f 8d 7e 01 00 00    	jge    0x50191f
5017a1:	8b 55 c8             	mov    -0x38(%ebp),%edx
5017a4:	52                   	push   %edx
5017a5:	6a 00                	push   $0x0
5017a7:	8b 4d c0             	mov    -0x40(%ebp),%ecx
5017aa:	8b 01                	mov    (%ecx),%eax
5017ac:	50                   	push   %eax
5017ad:	e8 02 9b ff ff       	call   0x4fb2b4
5017b2:	83 c4 0c             	add    $0xc,%esp
5017b5:	33 d2                	xor    %edx,%edx
5017b7:	89 55 d4             	mov    %edx,-0x2c(%ebp)
5017ba:	8b 4d fc             	mov    -0x4(%ebp),%ecx
5017bd:	8d 41 44             	lea    0x44(%ecx),%eax
5017c0:	89 45 b4             	mov    %eax,-0x4c(%ebp)
5017c3:	8b 55 c0             	mov    -0x40(%ebp),%edx
5017c6:	8b ca                	mov    %edx,%ecx
5017c8:	89 4d b8             	mov    %ecx,-0x48(%ebp)
5017cb:	8b 45 b0             	mov    -0x50(%ebp),%eax
5017ce:	8b d0                	mov    %eax,%edx
5017d0:	89 55 bc             	mov    %edx,-0x44(%ebp)
5017d3:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
5017d6:	3b 4d dc             	cmp    -0x24(%ebp),%ecx
5017d9:	0f 8d 11 01 00 00    	jge    0x5018f0
5017df:	8b 45 bc             	mov    -0x44(%ebp),%eax
5017e2:	8b 10                	mov    (%eax),%edx
5017e4:	03 55 d4             	add    -0x2c(%ebp),%edx
5017e7:	89 55 ec             	mov    %edx,-0x14(%ebp)
5017ea:	8b 4d b8             	mov    -0x48(%ebp),%ecx
5017ed:	8b 01                	mov    (%ecx),%eax
5017ef:	89 45 e8             	mov    %eax,-0x18(%ebp)
5017f2:	8b 55 fc             	mov    -0x4(%ebp),%edx
5017f5:	83 7a 54 00          	cmpl   $0x0,0x54(%edx)
5017f9:	74 2a                	je     0x501825
5017fb:	8b 45 c8             	mov    -0x38(%ebp),%eax
5017fe:	83 ce ff             	or     $0xffffffff,%esi
501801:	48                   	dec    %eax
501802:	8b d0                	mov    %eax,%edx
501804:	0f af 55 dc          	imul   -0x24(%ebp),%edx
501808:	01 55 ec             	add    %edx,-0x14(%ebp)
50180b:	01 45 e8             	add    %eax,-0x18(%ebp)
50180e:	8b 45 dc             	mov    -0x24(%ebp),%eax
501811:	f7 d8                	neg    %eax
501813:	89 45 d8             	mov    %eax,-0x28(%ebp)
501816:	8b 55 b4             	mov    -0x4c(%ebp),%edx
501819:	8b 45 c8             	mov    -0x38(%ebp),%eax
50181c:	40                   	inc    %eax
50181d:	03 c0                	add    %eax,%eax
50181f:	8b 0a                	mov    (%edx),%ecx
501821:	03 c8                	add    %eax,%ecx
501823:	eb 10                	jmp    0x501835
501825:	be 01 00 00 00       	mov    $0x1,%esi
50182a:	8b 45 dc             	mov    -0x24(%ebp),%eax
50182d:	89 45 d8             	mov    %eax,-0x28(%ebp)
501830:	8b 55 b4             	mov    -0x4c(%ebp),%edx
501833:	8b 0a                	mov    (%edx),%ecx
501835:	8b 45 fc             	mov    -0x4(%ebp),%eax
501838:	8b 50 18             	mov    0x18(%eax),%edx
50183b:	8b 45 d4             	mov    -0x2c(%ebp),%eax
50183e:	8b 14 82             	mov    (%edx,%eax,4),%edx
501841:	89 55 e4             	mov    %edx,-0x1c(%ebp)
501844:	8b 45 fc             	mov    -0x4(%ebp),%eax
501847:	8b 50 10             	mov    0x10(%eax),%edx
50184a:	8b 45 d4             	mov    -0x2c(%ebp),%eax
50184d:	8b 14 82             	mov    (%edx,%eax,4),%edx
501850:	33 c0                	xor    %eax,%eax
501852:	89 55 e0             	mov    %edx,-0x20(%ebp)
501855:	33 d2                	xor    %edx,%edx
501857:	89 55 f4             	mov    %edx,-0xc(%ebp)
50185a:	89 55 f8             	mov    %edx,-0x8(%ebp)
50185d:	8b 55 c8             	mov    -0x38(%ebp),%edx
501860:	89 55 cc             	mov    %edx,-0x34(%ebp)
501863:	83 7d cc 00          	cmpl   $0x0,-0x34(%ebp)
501867:	76 6d                	jbe    0x5018d6
501869:	0f bf 14 71          	movswl (%ecx,%esi,2),%edx
50186d:	03 c2                	add    %edx,%eax
50186f:	8b 55 ec             	mov    -0x14(%ebp),%edx
501872:	83 c0 08             	add    $0x8,%eax
501875:	8b 5d e8             	mov    -0x18(%ebp),%ebx
501878:	0f b6 12             	movzbl (%edx),%edx
50187b:	c1 f8 04             	sar    $0x4,%eax
50187e:	03 c2                	add    %edx,%eax
501880:	8b 55 c4             	mov    -0x3c(%ebp),%edx
501883:	0f b6 04 02          	movzbl (%edx,%eax,1),%eax
501887:	8b 55 e4             	mov    -0x1c(%ebp),%edx
50188a:	0f b6 14 02          	movzbl (%edx,%eax,1),%edx
50188e:	00 13                	add    %dl,(%ebx)
501890:	8b 5d e0             	mov    -0x20(%ebp),%ebx
501893:	0f b6 14 13          	movzbl (%ebx,%edx,1),%edx
501897:	2b c2                	sub    %edx,%eax
501899:	89 45 f0             	mov    %eax,-0x10(%ebp)
50189c:	8b d0                	mov    %eax,%edx
50189e:	66 8b 5d f4          	mov    -0xc(%ebp),%bx
5018a2:	03 d2                	add    %edx,%edx
5018a4:	03 c2                	add    %edx,%eax
5018a6:	66 03 d8             	add    %ax,%bx
5018a9:	03 c2                	add    %edx,%eax
5018ab:	66 89 19             	mov    %bx,(%ecx)
5018ae:	8b 5d f8             	mov    -0x8(%ebp),%ebx
5018b1:	03 d8                	add    %eax,%ebx
5018b3:	03 c2                	add    %edx,%eax
5018b5:	89 5d f4             	mov    %ebx,-0xc(%ebp)
5018b8:	8b 5d f0             	mov    -0x10(%ebp),%ebx
5018bb:	89 5d f8             	mov    %ebx,-0x8(%ebp)
5018be:	8b 55 d8             	mov    -0x28(%ebp),%edx
5018c1:	01 55 ec             	add    %edx,-0x14(%ebp)
5018c4:	01 75 e8             	add    %esi,-0x18(%ebp)
5018c7:	ff 4d cc             	decl   -0x34(%ebp)
5018ca:	8b d6                	mov    %esi,%edx
5018cc:	03 d2                	add    %edx,%edx
5018ce:	03 ca                	add    %edx,%ecx
5018d0:	83 7d cc 00          	cmpl   $0x0,-0x34(%ebp)
5018d4:	77 93                	ja     0x501869
5018d6:	66 8b 45 f4          	mov    -0xc(%ebp),%ax
5018da:	66 89 01             	mov    %ax,(%ecx)
5018dd:	ff 45 d4             	incl   -0x2c(%ebp)
5018e0:	83 45 b4 04          	addl   $0x4,-0x4c(%ebp)
5018e4:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
5018e7:	3b 4d dc             	cmp    -0x24(%ebp),%ecx
5018ea:	0f 8c ef fe ff ff    	jl     0x5017df
5018f0:	8b 45 fc             	mov    -0x4(%ebp),%eax
5018f3:	83 78 54 00          	cmpl   $0x0,0x54(%eax)
5018f7:	74 04                	je     0x5018fd
5018f9:	33 d2                	xor    %edx,%edx
5018fb:	eb 05                	jmp    0x501902
5018fd:	ba 01 00 00 00       	mov    $0x1,%edx
501902:	8b 45 fc             	mov    -0x4(%ebp),%eax
501905:	89 50 54             	mov    %edx,0x54(%eax)
501908:	ff 45 d0             	incl   -0x30(%ebp)
50190b:	83 45 b0 04          	addl   $0x4,-0x50(%ebp)
50190f:	83 45 c0 04          	addl   $0x4,-0x40(%ebp)
501913:	8b 4d d0             	mov    -0x30(%ebp),%ecx
501916:	3b 4d 08             	cmp    0x8(%ebp),%ecx
501919:	0f 8c 82 fe ff ff    	jl     0x5017a1
50191f:	5e                   	pop    %esi
501920:	5b                   	pop    %ebx
501921:	8b e5                	mov    %ebp,%esp
501923:	5d                   	pop    %ebp
501924:	c2 04 00             	ret    $0x4
501927:	90                   	nop
501928:	53                   	push   %ebx
501929:	56                   	push   %esi
50192a:	8b d8                	mov    %eax,%ebx
50192c:	57                   	push   %edi
50192d:	55                   	push   %ebp
50192e:	51                   	push   %ecx
50192f:	8b 83 c4 01 00 00    	mov    0x1c4(%ebx),%eax
501935:	8b 53 6c             	mov    0x6c(%ebx),%edx
501938:	03 d2                	add    %edx,%edx
50193a:	83 c2 04             	add    $0x4,%edx
50193d:	33 ff                	xor    %edi,%edi
50193f:	89 14 24             	mov    %edx,(%esp)
501942:	8d 70 44             	lea    0x44(%eax),%esi
501945:	eb 16                	jmp    0x50195d
501947:	8b c3                	mov    %ebx,%eax
501949:	8b 0c 24             	mov    (%esp),%ecx
50194c:	ba 01 00 00 00       	mov    $0x1,%edx
501951:	8b 68 04             	mov    0x4(%eax),%ebp
501954:	ff 55 04             	call   *0x4(%ebp)
501957:	89 06                	mov    %eax,(%esi)
501959:	47                   	inc    %edi
50195a:	83 c6 04             	add    $0x4,%esi
50195d:	3b 7b 74             	cmp    0x74(%ebx),%edi
501960:	7c e5                	jl     0x501947
501962:	5a                   	pop    %edx
501963:	5d                   	pop    %ebp
501964:	5f                   	pop    %edi
501965:	5e                   	pop    %esi
501966:	5b                   	pop    %ebx
501967:	c3                   	ret
501968:	53                   	push   %ebx
501969:	8b d8                	mov    %eax,%ebx
50196b:	56                   	push   %esi
50196c:	57                   	push   %edi
50196d:	55                   	push   %ebp
50196e:	8b b3 c4 01 00 00    	mov    0x1c4(%ebx),%esi
501974:	8b 46 10             	mov    0x10(%esi),%eax
501977:	89 83 84 00 00 00    	mov    %eax,0x84(%ebx)
50197d:	8b 56 14             	mov    0x14(%esi),%edx
501980:	89 93 80 00 00 00    	mov    %edx,0x80(%ebx)
501986:	8b 4b 54             	mov    0x54(%ebx),%ecx
501989:	83 e9 01             	sub    $0x1,%ecx
50198c:	72 0a                	jb     0x501998
50198e:	74 26                	je     0x5019b6
501990:	49                   	dec    %ecx
501991:	74 5a                	je     0x5019ed
501993:	e9 98 00 00 00       	jmp    0x501a30
501998:	83 7b 74 03          	cmpl   $0x3,0x74(%ebx)
50199c:	75 0c                	jne    0x5019aa
50199e:	c7 46 04 9c 14 50 00 	movl   $0x50149c,0x4(%esi)
5019a5:	e9 95 00 00 00       	jmp    0x501a3f
5019aa:	c7 46 04 fc 13 50 00 	movl   $0x5013fc,0x4(%esi)
5019b1:	e9 89 00 00 00       	jmp    0x501a3f
5019b6:	83 7b 74 03          	cmpl   $0x3,0x74(%ebx)
5019ba:	75 09                	jne    0x5019c5
5019bc:	c7 46 04 4c 16 50 00 	movl   $0x50164c,0x4(%esi)
5019c3:	eb 07                	jmp    0x5019cc
5019c5:	c7 46 04 38 15 50 00 	movl   $0x501538,0x4(%esi)
5019cc:	33 c0                	xor    %eax,%eax
5019ce:	89 46 30             	mov    %eax,0x30(%esi)
5019d1:	83 7e 1c 00          	cmpl   $0x0,0x1c(%esi)
5019d5:	75 07                	jne    0x5019de
5019d7:	8b c3                	mov    %ebx,%eax
5019d9:	e8 a6 f7 ff ff       	call   0x501184
5019de:	83 7e 34 00          	cmpl   $0x0,0x34(%esi)
5019e2:	75 5b                	jne    0x501a3f
5019e4:	8b c3                	mov    %ebx,%eax
5019e6:	e8 a9 f9 ff ff       	call   0x501394
5019eb:	eb 52                	jmp    0x501a3f
5019ed:	c7 46 04 64 17 50 00 	movl   $0x501764,0x4(%esi)
5019f4:	33 d2                	xor    %edx,%edx
5019f6:	89 56 54             	mov    %edx,0x54(%esi)
5019f9:	83 7e 44 00          	cmpl   $0x0,0x44(%esi)
5019fd:	75 07                	jne    0x501a06
5019ff:	8b c3                	mov    %ebx,%eax
501a01:	e8 22 ff ff ff       	call   0x501928
501a06:	8b 6b 6c             	mov    0x6c(%ebx),%ebp