5355a2:	0f b7 47 32          	movzwl 0x32(%edi),%eax
5355a6:	c7 41 2c 03 00 00 00 	movl   $0x3,0x2c(%ecx)
5355ad:	52                   	push   %edx
5355ae:	ff 75 d4             	push   -0x2c(%ebp)
5355b1:	89 45 c8             	mov    %eax,-0x38(%ebp)
5355b4:	8b 47 0c             	mov    0xc(%edi),%eax
5355b7:	89 45 e8             	mov    %eax,-0x18(%ebp)
5355ba:	e8 21 9d fe ff       	call   0x51f2e0
5355bf:	8b 4d c8             	mov    -0x38(%ebp),%ecx
5355c2:	83 c4 08             	add    $0x8,%esp
5355c5:	33 ff                	xor    %edi,%edi
5355c7:	66 85 c9             	test   %cx,%cx
5355ca:	0f 84 5d 17 00 00    	je     0x536d2d
5355d0:	8b 45 cc             	mov    -0x34(%ebp),%eax
5355d3:	8b 40 04             	mov    0x4(%eax),%eax
5355d6:	0f b7 14 78          	movzwl (%eax,%edi,2),%edx
5355da:	66 85 d2             	test   %dx,%dx
5355dd:	79 04                	jns    0x5355e3
5355df:	33 c0                	xor    %eax,%eax
5355e1:	eb 0f                	jmp    0x5355f2
5355e3:	0f bf c2             	movswl %dx,%eax
5355e6:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
5355e9:	8b 45 e8             	mov    -0x18(%ebp),%eax
5355ec:	8b 40 04             	mov    0x4(%eax),%eax
5355ef:	8b 04 88             	mov    (%eax,%ecx,4),%eax
5355f2:	50                   	push   %eax
5355f3:	0f bf c2             	movswl %dx,%eax
5355f6:	50                   	push   %eax
5355f7:	57                   	push   %edi
5355f8:	68 b4 ab 6b 00       	push   $0x6babb4
5355fd:	6a 01                	push   $0x1
5355ff:	56                   	push   %esi
535600:	e8 2b 6d 01 00       	call   0x54c330
535605:	8b 43 08             	mov    0x8(%ebx),%eax
535608:	83 c4 18             	add    $0x18,%esp
53560b:	0b 43 0c             	or     0xc(%ebx),%eax
53560e:	74 2d                	je     0x53563d
535610:	8b 55 cc             	mov    -0x34(%ebp),%edx
535613:	33 c9                	xor    %ecx,%ecx
535615:	0f b7 42 32          	movzwl 0x32(%edx),%eax
535619:	3b f8                	cmp    %eax,%edi
53561b:	8b 42 20             	mov    0x20(%edx),%eax
53561e:	0f 9c c1             	setl   %cl
535621:	51                   	push   %ecx
535622:	ff 34 b8             	push   (%eax,%edi,4)
535625:	8b 42 1c             	mov    0x1c(%edx),%eax
535628:	0f b6 04 38          	movzbl (%eax,%edi,1),%eax
53562c:	50                   	push   %eax
53562d:	68 bc ab 6b 00       	push   $0x6babbc
535632:	6a 04                	push   $0x4
535634:	56                   	push   %esi
535635:	e8 f6 6c 01 00       	call   0x54c330
53563a:	83 c4 18             	add    $0x18,%esp
53563d:	8b 45 d4             	mov    -0x2c(%ebp),%eax
535640:	ff 70 2c             	push   0x2c(%eax)
535643:	6a 01                	push   $0x1
535645:	6a 50                	push   $0x50
535647:	56                   	push   %esi
535648:	e8 93 c4 00 00       	call   0x541ae0
53564d:	8b 4d c8             	mov    -0x38(%ebp),%ecx
535650:	47                   	inc    %edi
535651:	0f b7 c1             	movzwl %cx,%eax
535654:	83 c4 10             	add    $0x10,%esp
535657:	3b f8                	cmp    %eax,%edi
535659:	0f 8c 71 ff ff ff    	jl     0x5355d0
53565f:	e9 c9 16 00 00       	jmp    0x536d2d
535664:	85 c9                	test   %ecx,%ecx
535666:	0f 84 c1 16 00 00    	je     0x536d2d
53566c:	ff 75 ac             	push   -0x54(%ebp)
53566f:	51                   	push   %ecx
535670:	ff 75 d8             	push   -0x28(%ebp)
535673:	e8 48 33 ff ff       	call   0x5289c0
535678:	8b f8                	mov    %eax,%edi
53567a:	83 c4 0c             	add    $0xc,%esp
53567d:	85 ff                	test   %edi,%edi
53567f:	0f 84 a8 16 00 00    	je     0x536d2d
535685:	ff 77 48             	push   0x48(%edi)
535688:	ff 75 d8             	push   -0x28(%ebp)
53568b:	e8 d0 43 00 00       	call   0x539a60
535690:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
535693:	50                   	push   %eax
535694:	51                   	push   %ecx
535695:	c7 41 2c 05 00 00 00 	movl   $0x5,0x2c(%ecx)
53569c:	e8 3f 9c fe ff       	call   0x51f2e0
5356a1:	8b 7f 08             	mov    0x8(%edi),%edi
5356a4:	83 c4 10             	add    $0x10,%esp
5356a7:	33 db                	xor    %ebx,%ebx
5356a9:	85 ff                	test   %edi,%edi
5356ab:	0f 84 7c 16 00 00    	je     0x536d2d
5356b1:	c7 45 dc c4 ab 6b 00 	movl   $0x6babc4,-0x24(%ebp)
5356b8:	c7 45 e0 c8 ab 6b 00 	movl   $0x6babc8,-0x20(%ebp)
5356bf:	c7 45 e4 28 6a 6b 00 	movl   $0x6b6a28,-0x1c(%ebp)
5356c6:	33 c0                	xor    %eax,%eax
5356c8:	39 47 24             	cmp    %eax,0x24(%edi)
5356cb:	0f 95 c0             	setne  %al
5356ce:	50                   	push   %eax
5356cf:	8b 47 38             	mov    0x38(%edi),%eax
5356d2:	83 e0 03             	and    $0x3,%eax
5356d5:	ff 74 85 dc          	push   -0x24(%ebp,%eax,4)
5356d9:	33 c0                	xor    %eax,%eax
5356db:	38 47 36             	cmp    %al,0x36(%edi)
5356de:	0f 95 c0             	setne  %al
5356e1:	50                   	push   %eax
5356e2:	ff 37                	push   (%edi)
5356e4:	53                   	push   %ebx
5356e5:	68 cc ab 6b 00       	push   $0x6babcc
5356ea:	6a 01                	push   $0x1
5356ec:	56                   	push   %esi
5356ed:	e8 3e 6c 01 00       	call   0x54c330
5356f2:	8b 7f 14             	mov    0x14(%edi),%edi
5356f5:	83 c4 20             	add    $0x20,%esp
5356f8:	43                   	inc    %ebx
5356f9:	85 ff                	test   %edi,%edi
5356fb:	75 c9                	jne    0x5356c6
5356fd:	e9 2b 16 00 00       	jmp    0x536d2d
535702:	8b 45 d4             	mov    -0x2c(%ebp),%eax
535705:	33 ff                	xor    %edi,%edi
535707:	c7 40 2c 03 00 00 00 	movl   $0x3,0x2c(%eax)
53570e:	8b 45 d8             	mov    -0x28(%ebp),%eax
535711:	39 78 14             	cmp    %edi,0x14(%eax)
535714:	0f 8e 13 16 00 00    	jle    0x536d2d
53571a:	33 db                	xor    %ebx,%ebx
53571c:	0f 1f 40 00          	nopl   0x0(%eax)
535720:	8b 48 10             	mov    0x10(%eax),%ecx
535723:	8b 44 19 04          	mov    0x4(%ecx,%ebx,1),%eax
535727:	85 c0                	test   %eax,%eax
535729:	74 1b                	je     0x535746
53572b:	50                   	push   %eax
53572c:	e8 6f 63 fe ff       	call   0x51baa0
535731:	50                   	push   %eax
535732:	ff 34 19             	push   (%ecx,%ebx,1)
535735:	57                   	push   %edi
535736:	68 d4 ab 6b 00       	push   $0x6babd4
53573b:	6a 01                	push   $0x1
53573d:	56                   	push   %esi
53573e:	e8 ed 6b 01 00       	call   0x54c330
535743:	83 c4 1c             	add    $0x1c,%esp
535746:	8b 45 d8             	mov    -0x28(%ebp),%eax
535749:	47                   	inc    %edi
53574a:	83 c3 10             	add    $0x10,%ebx
53574d:	3b 78 14             	cmp    0x14(%eax),%edi
535750:	7c ce                	jl     0x535720
535752:	e9 d6 15 00 00       	jmp    0x536d2d
535757:	8b 45 d4             	mov    -0x2c(%ebp),%eax
53575a:	33 db                	xor    %ebx,%ebx
53575c:	c7 40 2c 02 00 00 00 	movl   $0x2,0x2c(%eax)
535763:	8b 45 d8             	mov    -0x28(%ebp),%eax
535766:	8b b8 9c 01 00 00    	mov    0x19c(%eax),%edi
53576c:	85 ff                	test   %edi,%edi
53576e:	0f 84 b9 15 00 00    	je     0x536d2d
535774:	8b 47 08             	mov    0x8(%edi),%eax
535777:	ff 30                	push   (%eax)
535779:	53                   	push   %ebx
53577a:	68 d8 ab 6b 00       	push   $0x6babd8
53577f:	6a 01                	push   $0x1
535781:	56                   	push   %esi
535782:	e8 a9 6b 01 00       	call   0x54c330
535787:	8b 3f                	mov    (%edi),%edi
535789:	83 c4 14             	add    $0x14,%esp
53578c:	43                   	inc    %ebx
53578d:	85 ff                	test   %edi,%edi
53578f:	75 e3                	jne    0x535774
535791:	e9 97 15 00 00       	jmp    0x536d2d
535796:	8b 45 d8             	mov    -0x28(%ebp),%eax
535799:	8b 58 18             	mov    0x18(%eax),%ebx
53579c:	8b 45 d4             	mov    -0x2c(%ebp),%eax
53579f:	c1 eb 05             	shr    $0x5,%ebx
5357a2:	83 e3 01             	and    $0x1,%ebx
5357a5:	c7 40 2c 06 00 00 00 	movl   $0x6,0x2c(%eax)
5357ac:	b8 c0 ff 72 00       	mov    $0x72ffc0,%eax
5357b1:	89 45 d0             	mov    %eax,-0x30(%ebp)
5357b4:	8b 38                	mov    (%eax),%edi
5357b6:	85 ff                	test   %edi,%edi
5357b8:	74 1d                	je     0x5357d7
5357ba:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
5357c0:	53                   	push   %ebx
5357c1:	6a 01                	push   $0x1
5357c3:	57                   	push   %edi
5357c4:	56                   	push   %esi
5357c5:	e8 c6 ab fd ff       	call   0x510390
5357ca:	8b 7f 24             	mov    0x24(%edi),%edi
5357cd:	83 c4 10             	add    $0x10,%esp
5357d0:	85 ff                	test   %edi,%edi
5357d2:	75 ec                	jne    0x5357c0
5357d4:	8b 45 d0             	mov    -0x30(%ebp),%eax
5357d7:	83 c0 04             	add    $0x4,%eax
5357da:	89 45 d0             	mov    %eax,-0x30(%ebp)
5357dd:	3d 1c 00 73 00       	cmp    $0x73001c,%eax
5357e2:	7c d0                	jl     0x5357b4
5357e4:	8b 45 d8             	mov    -0x28(%ebp),%eax
5357e7:	8b b8 8c 01 00 00    	mov    0x18c(%eax),%edi
5357ed:	85 ff                	test   %edi,%edi
5357ef:	0f 84 38 15 00 00    	je     0x536d2d
5357f5:	53                   	push   %ebx
5357f6:	6a 00                	push   $0x0
5357f8:	ff 77 08             	push   0x8(%edi)
5357fb:	56                   	push   %esi
5357fc:	e8 8f ab fd ff       	call   0x510390
535801:	8b 3f                	mov    (%edi),%edi
535803:	83 c4 10             	add    $0x10,%esp
535806:	85 ff                	test   %edi,%edi
535808:	75 eb                	jne    0x5357f5
53580a:	e9 1e 15 00 00       	jmp    0x536d2d
53580f:	8b 45 d4             	mov    -0x2c(%ebp),%eax
535812:	c7 40 2c 01 00 00 00 	movl   $0x1,0x2c(%eax)
535819:	8b 45 d8             	mov    -0x28(%ebp),%eax
53581c:	8b b8 70 01 00 00    	mov    0x170(%eax),%edi
535822:	85 ff                	test   %edi,%edi
535824:	0f 84 03 15 00 00    	je     0x536d2d
53582a:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
535830:	8b 47 08             	mov    0x8(%edi),%eax
535833:	ff 70 04             	push   0x4(%eax)
535836:	68 38 ab 6b 00       	push   $0x6bab38
53583b:	6a 01                	push   $0x1
53583d:	56                   	push   %esi
53583e:	e8 ed 6a 01 00       	call   0x54c330
535843:	8b 3f                	mov    (%edi),%edi
535845:	83 c4 10             	add    $0x10,%esp
535848:	85 ff                	test   %edi,%edi
53584a:	75 e4                	jne    0x535830
53584c:	e9 dc 14 00 00       	jmp    0x536d2d
535851:	bf 90 1e 6b 00       	mov    $0x6b1e90,%edi
535856:	ff 37                	push   (%edi)
535858:	68 38 ab 6b 00       	push   $0x6bab38
53585d:	6a 01                	push   $0x1
53585f:	56                   	push   %esi
535860:	e8 cb 6a 01 00       	call   0x54c330
535865:	83 c7 10             	add    $0x10,%edi
535868:	83 c4 10             	add    $0x10,%esp
53586b:	81 ff a0 22 6b 00    	cmp    $0x6b22a0,%edi
535871:	7c e3                	jl     0x535856
535873:	e9 b5 14 00 00       	jmp    0x536d2d
535878:	85 c9                	test   %ecx,%ecx
53587a:	0f 84 ad 14 00 00    	je     0x536d2d
535880:	ff 75 ac             	push   -0x54(%ebp)
535883:	51                   	push   %ecx
535884:	ff 75 d8             	push   -0x28(%ebp)
535887:	e8 34 31 ff ff       	call   0x5289c0
53588c:	83 c4 0c             	add    $0xc,%esp
53588f:	89 45 e8             	mov    %eax,-0x18(%ebp)
535892:	85 c0                	test   %eax,%eax
535894:	0f 84 93 14 00 00    	je     0x536d2d
53589a:	8b 78 10             	mov    0x10(%eax),%edi
53589d:	85 ff                	test   %edi,%edi
53589f:	0f 84 88 14 00 00    	je     0x536d2d
5358a5:	ff 70 48             	push   0x48(%eax)
5358a8:	ff 75 d8             	push   -0x28(%ebp)
5358ab:	e8 b0 41 00 00       	call   0x539a60
5358b0:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
5358b3:	50                   	push   %eax
5358b4:	51                   	push   %ecx
5358b5:	c7 45 cc 00 00 00 00 	movl   $0x0,-0x34(%ebp)
5358bc:	c7 41 2c 08 00 00 00 	movl   $0x8,0x2c(%ecx)
5358c3:	e8 18 9a fe ff       	call   0x51f2e0
5358c8:	83 c4 10             	add    $0x10,%esp
5358cb:	33 c0                	xor    %eax,%eax
5358cd:	0f 1f 00             	nopl   (%eax)
5358d0:	33 db                	xor    %ebx,%ebx
5358d2:	39 5f 14             	cmp    %ebx,0x14(%edi)
5358d5:	7e 64                	jle    0x53593b
5358d7:	8d 4f 24             	lea    0x24(%edi),%ecx
5358da:	89 4d d0             	mov    %ecx,-0x30(%ebp)
5358dd:	0f 1f 00             	nopl   (%eax)
5358e0:	0f b6 47 19          	movzbl 0x19(%edi),%eax
5358e4:	68 dc ab 6b 00       	push   $0x6babdc
5358e9:	50                   	push   %eax
5358ea:	e8 31 c6 fb ff       	call   0x4f1f20
5358ef:	83 c4 04             	add    $0x4,%esp
5358f2:	50                   	push   %eax
5358f3:	0f b6 47 1a          	movzbl 0x1a(%edi),%eax
5358f7:	50                   	push   %eax
5358f8:	e8 23 c6 fb ff       	call   0x4f1f20
5358fd:	83 c4 04             	add    $0x4,%esp
535900:	50                   	push   %eax
535901:	ff 71 04             	push   0x4(%ecx)
535904:	8b 01                	mov    (%ecx),%eax
535906:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
535909:	8b 45 e8             	mov    -0x18(%ebp),%eax
53590c:	8b 40 04             	mov    0x4(%eax),%eax
53590f:	ff 34 88             	push   (%eax,%ecx,4)
535912:	ff 77 08             	push   0x8(%edi)
535915:	53                   	push   %ebx
535916:	ff 75 cc             	push   -0x34(%ebp)
535919:	68 e4 ab 6b 00       	push   $0x6babe4
53591e:	6a 01                	push   $0x1
535920:	56                   	push   %esi
535921:	e8 0a 6a 01 00       	call   0x54c330
535926:	8b 4d d0             	mov    -0x30(%ebp),%ecx
535929:	43                   	inc    %ebx
53592a:	83 c1 08             	add    $0x8,%ecx
53592d:	83 c4 2c             	add    $0x2c,%esp
535930:	89 4d d0             	mov    %ecx,-0x30(%ebp)
535933:	3b 5f 14             	cmp    0x14(%edi),%ebx
535936:	7c a8                	jl     0x5358e0
535938:	8b 45 cc             	mov    -0x34(%ebp),%eax
53593b:	8b 7f 04             	mov    0x4(%edi),%edi
53593e:	40                   	inc    %eax
53593f:	89 45 cc             	mov    %eax,-0x34(%ebp)
535942:	85 ff                	test   %edi,%edi
535944:	75 8a                	jne    0x5358d0
535946:	e9 e2 13 00 00       	jmp    0x536d2d
53594b:	8b 55 d4             	mov    -0x2c(%ebp),%edx
53594e:	8b 42 2c             	mov    0x2c(%edx),%eax
535951:	8d 48 01             	lea    0x1(%eax),%ecx
535954:	83 c0 05             	add    $0x5,%eax
535957:	89 45 b4             	mov    %eax,-0x4c(%ebp)
53595a:	40                   	inc    %eax
53595b:	89 42 2c             	mov    %eax,0x2c(%edx)
53595e:	8b 45 d8             	mov    -0x28(%ebp),%eax
535961:	89 4d b0             	mov    %ecx,-0x50(%ebp)
535964:	8b 4d bc             	mov    -0x44(%ebp),%ecx
535967:	8b 40 10             	mov    0x10(%eax),%eax
53596a:	8b 44 01 0c          	mov    0xc(%ecx,%eax,1),%eax
53596e:	8b 40 10             	mov    0x10(%eax),%eax
535971:	85 c0                	test   %eax,%eax
535973:	0f 84 b4 13 00 00    	je     0x536d2d
535979:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
535980:	8b 4d b8             	mov    -0x48(%ebp),%ecx
535983:	85 c9                	test   %ecx,%ecx
535985:	74 15                	je     0x53599c
535987:	ff 75 ac             	push   -0x54(%ebp)
53598a:	51                   	push   %ecx
53598b:	6a 00                	push   $0x0
53598d:	52                   	push   %edx
53598e:	e8 5d b1 ff ff       	call   0x530af0
535993:	83 c4 10             	add    $0x10,%esp
535996:	8b f8                	mov    %eax,%edi
535998:	33 c0                	xor    %eax,%eax
53599a:	eb 05                	jmp    0x5359a1
53599c:	8b 78 08             	mov    0x8(%eax),%edi
53599f:	8b 00                	mov    (%eax),%eax
5359a1:	89 45 a0             	mov    %eax,-0x60(%ebp)
5359a4:	89 7d c0             	mov    %edi,-0x40(%ebp)
5359a7:	85 ff                	test   %edi,%edi
5359a9:	0f 84 e6 02 00 00    	je     0x535c95
5359af:	83 7f 10 00          	cmpl   $0x0,0x10(%edi)
5359b3:	0f 84 dc 02 00 00    	je     0x535c95
5359b9:	ff 77 48             	push   0x48(%edi)
5359bc:	ff 75 d8             	push   -0x28(%ebp)
5359bf:	e8 9c 40 00 00       	call   0x539a60
5359c4:	8b d8                	mov    %eax,%ebx
5359c6:	53                   	push   %ebx
5359c7:	ff 75 d4             	push   -0x2c(%ebp)
5359ca:	89 5d cc             	mov    %ebx,-0x34(%ebp)
5359cd:	e8 0e 99 fe ff       	call   0x51f2e0
5359d2:	ff 37                	push   (%edi)
5359d4:	6a 00                	push   $0x0
5359d6:	ff 77 1c             	push   0x1c(%edi)
5359d9:	53                   	push   %ebx
5359da:	ff 75 d4             	push   -0x2c(%ebp)