53588a:	56                   	push   %esi
53588b:	8d 8d e0 02 00 00    	lea    0x2e0(%ebp),%ecx
535891:	e8 fb ed ed ff       	call   0x414691
535896:	8d 85 e0 02 00 00    	lea    0x2e0(%ebp),%eax
53589c:	c6 45 fc 07          	movb   $0x7,-0x4(%ebp)
5358a0:	50                   	push   %eax
5358a1:	8d 4d b4             	lea    -0x4c(%ebp),%ecx
5358a4:	e8 1d 76 ef ff       	call   0x42cec6
5358a9:	8b 85 f4 02 00 00    	mov    0x2f4(%ebp),%eax
5358af:	c6 45 fc 06          	movb   $0x6,-0x4(%ebp)
5358b3:	83 f8 10             	cmp    $0x10,%eax
5358b6:	72 13                	jb     0x5358cb
5358b8:	40                   	inc    %eax
5358b9:	8d 8d e0 02 00 00    	lea    0x2e0(%ebp),%ecx
5358bf:	50                   	push   %eax
5358c0:	ff b5 e0 02 00 00    	push   0x2e0(%ebp)
5358c6:	e8 51 ed ef ff       	call   0x43461c
5358cb:	8b ce                	mov    %esi,%ecx
5358cd:	8d 51 01             	lea    0x1(%ecx),%edx
5358d0:	8a 01                	mov    (%ecx),%al
5358d2:	41                   	inc    %ecx
5358d3:	84 c0                	test   %al,%al
5358d5:	75 f9                	jne    0x5358d0
5358d7:	2b ca                	sub    %edx,%ecx
5358d9:	46                   	inc    %esi
5358da:	03 f1                	add    %ecx,%esi
5358dc:	38 06                	cmp    %al,(%esi)
5358de:	0f 85 6c ff ff ff    	jne    0x535850
5358e4:	8b 7d e8             	mov    -0x18(%ebp),%edi
5358e7:	8b 5d ec             	mov    -0x14(%ebp),%ebx
5358ea:	80 3f 00             	cmpb   $0x0,(%edi)
5358ed:	0f 84 dc 00 00 00    	je     0x5359cf
5358f3:	c7 85 dc 02 00 00 0f 	movl   $0xf,0x2dc(%ebp)
5358fa:	00 00 00
5358fd:	c7 85 d8 02 00 00 00 	movl   $0x0,0x2d8(%ebp)
535904:	00 00 00
535907:	c6 85 c8 02 00 00 00 	movb   $0x0,0x2c8(%ebp)
53590e:	c7 85 f4 02 00 00 0f 	movl   $0xf,0x2f4(%ebp)
535915:	00 00 00
535918:	c7 85 f0 02 00 00 00 	movl   $0x0,0x2f0(%ebp)
53591f:	00 00 00
535922:	c6 85 e0 02 00 00 00 	movb   $0x0,0x2e0(%ebp)
535929:	80 3f 00             	cmpb   $0x0,(%edi)
53592c:	c6 45 fc 08          	movb   $0x8,-0x4(%ebp)
535930:	75 04                	jne    0x535936
535932:	33 c9                	xor    %ecx,%ecx
535934:	eb 13                	jmp    0x535949
535936:	8b cf                	mov    %edi,%ecx
535938:	8d 51 01             	lea    0x1(%ecx),%edx
53593b:	0f 1f 44 00 00       	nopl   0x0(%eax,%eax,1)
535940:	8a 01                	mov    (%ecx),%al
535942:	41                   	inc    %ecx
535943:	84 c0                	test   %al,%al
535945:	75 f9                	jne    0x535940
535947:	2b ca                	sub    %edx,%ecx
535949:	51                   	push   %ecx
53594a:	57                   	push   %edi
53594b:	8d 8d c8 02 00 00    	lea    0x2c8(%ebp),%ecx
535951:	e8 3b ed ed ff       	call   0x414691
535956:	8b cf                	mov    %edi,%ecx
535958:	8d 51 01             	lea    0x1(%ecx),%edx
53595b:	0f 1f 44 00 00       	nopl   0x0(%eax,%eax,1)
535960:	8a 01                	mov    (%ecx),%al
535962:	41                   	inc    %ecx
535963:	84 c0                	test   %al,%al
535965:	75 f9                	jne    0x535960
535967:	2b ca                	sub    %edx,%ecx
535969:	47                   	inc    %edi
53596a:	03 f9                	add    %ecx,%edi
53596c:	85 db                	test   %ebx,%ebx
53596e:	74 3c                	je     0x5359ac
535970:	38 03                	cmp    %al,(%ebx)
535972:	75 04                	jne    0x535978
535974:	33 c9                	xor    %ecx,%ecx
535976:	eb 11                	jmp    0x535989
535978:	8b cb                	mov    %ebx,%ecx
53597a:	8d 51 01             	lea    0x1(%ecx),%edx
53597d:	0f 1f 00             	nopl   (%eax)
535980:	8a 01                	mov    (%ecx),%al
535982:	41                   	inc    %ecx
535983:	84 c0                	test   %al,%al
535985:	75 f9                	jne    0x535980
535987:	2b ca                	sub    %edx,%ecx
535989:	51                   	push   %ecx
53598a:	53                   	push   %ebx
53598b:	8d 8d e0 02 00 00    	lea    0x2e0(%ebp),%ecx
535991:	e8 fb ec ed ff       	call   0x414691
535996:	8b cb                	mov    %ebx,%ecx
535998:	8d 51 01             	lea    0x1(%ecx),%edx
53599b:	0f 1f 44 00 00       	nopl   0x0(%eax,%eax,1)
5359a0:	8a 01                	mov    (%ecx),%al
5359a2:	41                   	inc    %ecx
5359a3:	84 c0                	test   %al,%al
5359a5:	75 f9                	jne    0x5359a0
5359a7:	2b ca                	sub    %edx,%ecx
5359a9:	43                   	inc    %ebx
5359aa:	03 d9                	add    %ecx,%ebx
5359ac:	8d 85 c8 02 00 00    	lea    0x2c8(%ebp),%eax
5359b2:	50                   	push   %eax
5359b3:	8d 4d c0             	lea    -0x40(%ebp),%ecx
5359b6:	e8 c9 a4 ed ff       	call   0x40fe84
5359bb:	8d 8d c8 02 00 00    	lea    0x2c8(%ebp),%ecx
5359c1:	e8 5d 54 ef ff       	call   0x42ae23
5359c6:	80 3f 00             	cmpb   $0x0,(%edi)
5359c9:	0f 85 24 ff ff ff    	jne    0x5358f3
5359cf:	8d 4d cc             	lea    -0x34(%ebp),%ecx
5359d2:	e8 dc 1b ed ff       	call   0x4075b3
5359d7:	8d 4d ac             	lea    -0x54(%ebp),%ecx
5359da:	e8 d4 1b ed ff       	call   0x4075b3
5359df:	8d 4d dc             	lea    -0x24(%ebp),%ecx
5359e2:	c6 45 fc 03          	movb   $0x3,-0x4(%ebp)
5359e6:	e8 c8 1b ed ff       	call   0x4075b3
5359eb:	8b 7d d4             	mov    -0x2c(%ebp),%edi
5359ee:	eb 17                	jmp    0x535a07
5359f0:	6a 01                	push   $0x1
5359f2:	8d 45 c0             	lea    -0x40(%ebp),%eax
5359f5:	8b cf                	mov    %edi,%ecx
5359f7:	50                   	push   %eax
5359f8:	8d 45 b4             	lea    -0x4c(%ebp),%eax
5359fb:	50                   	push   %eax
5359fc:	ff b5 c0 02 00 00    	push   0x2c0(%ebp)
535a02:	e8 8d 2d f0 ff       	call   0x438794
535a07:	8b 5d b8             	mov    -0x48(%ebp),%ebx
535a0a:	b8 ab aa aa 2a       	mov    $0x2aaaaaab,%eax
535a0f:	8b 75 b4             	mov    -0x4c(%ebp),%esi
535a12:	8b cb                	mov    %ebx,%ecx
535a14:	2b ce                	sub    %esi,%ecx
535a16:	f7 e9                	imul   %ecx
535a18:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
535a1b:	2b 4d c0             	sub    -0x40(%ebp),%ecx
535a1e:	c1 fa 02             	sar    $0x2,%edx
535a21:	8b c2                	mov    %edx,%eax
535a23:	c1 e8 1f             	shr    $0x1f,%eax
535a26:	03 c2                	add    %edx,%eax
535a28:	01 47 14             	add    %eax,0x14(%edi)
535a2b:	89 45 b0             	mov    %eax,-0x50(%ebp)
535a2e:	b8 ab aa aa 2a       	mov    $0x2aaaaaab,%eax
535a33:	f7 e9                	imul   %ecx
535a35:	c1 fa 03             	sar    $0x3,%edx
535a38:	8b c2                	mov    %edx,%eax
535a3a:	c1 e8 1f             	shr    $0x1f,%eax
535a3d:	03 c2                	add    %edx,%eax
535a3f:	01 47 18             	add    %eax,0x18(%edi)
535a42:	89 45 e4             	mov    %eax,-0x1c(%ebp)
535a45:	8a 45 f0             	mov    -0x10(%ebp),%al
535a48:	88 45 f0             	mov    %al,-0x10(%ebp)
535a4b:	8d 45 f0             	lea    -0x10(%ebp),%eax
535a4e:	50                   	push   %eax
535a4f:	ff 75 b0             	push   -0x50(%ebp)
535a52:	53                   	push   %ebx
535a53:	56                   	push   %esi
535a54:	e8 fc 99 ef ff       	call   0x42f455
535a59:	8a 45 f0             	mov    -0x10(%ebp),%al
535a5c:	8b 5d c4             	mov    -0x3c(%ebp),%ebx
535a5f:	88 45 f0             	mov    %al,-0x10(%ebp)
535a62:	8d 45 f0             	lea    -0x10(%ebp),%eax
535a65:	50                   	push   %eax
535a66:	ff 75 e4             	push   -0x1c(%ebp)
535a69:	53                   	push   %ebx
535a6a:	ff 75 c0             	push   -0x40(%ebp)
535a6d:	e8 2e b6 ec ff       	call   0x4010a0
535a72:	33 c0                	xor    %eax,%eax
535a74:	33 c9                	xor    %ecx,%ecx
535a76:	33 db                	xor    %ebx,%ebx
535a78:	89 4d d8             	mov    %ecx,-0x28(%ebp)
535a7b:	83 c4 20             	add    $0x20,%esp
535a7e:	89 5d dc             	mov    %ebx,-0x24(%ebp)
535a81:	89 45 ec             	mov    %eax,-0x14(%ebp)
535a84:	89 45 e0             	mov    %eax,-0x20(%ebp)
535a87:	38 47 41             	cmp    %al,0x41(%edi)
535a8a:	8b 4d b0             	mov    -0x50(%ebp),%ecx
535a8d:	0f 95 c0             	setne  %al
535a90:	c6 45 fc 09          	movb   $0x9,-0x4(%ebp)
535a94:	40                   	inc    %eax
535a95:	0f af 45 e4          	imul   -0x1c(%ebp),%eax
535a99:	8d 04 48             	lea    (%eax,%ecx,2),%eax
535a9c:	85 c0                	test   %eax,%eax
535a9e:	74 23                	je     0x535ac3
535aa0:	3d ff ff ff 3f       	cmp    $0x3fffffff,%eax
535aa5:	76 0a                	jbe    0x535ab1
535aa7:	68 58 20 bd 00       	push   $0xbd2058
535aac:	e8 65 3d ef ff       	call   0x429816
535ab1:	50                   	push   %eax
535ab2:	8d 4d d8             	lea    -0x28(%ebp),%ecx
535ab5:	e8 60 b8 ed ff       	call   0x41131a
535aba:	8b 45 e0             	mov    -0x20(%ebp),%eax
535abd:	8b 5d dc             	mov    -0x24(%ebp),%ebx
535ac0:	89 45 ec             	mov    %eax,-0x14(%ebp)
535ac3:	8b 45 c0             	mov    -0x40(%ebp),%eax
535ac6:	8b f8                	mov    %eax,%edi
535ac8:	3b 45 c4             	cmp    -0x3c(%ebp),%eax
535acb:	0f 84 89 00 00 00    	je     0x535b5a
535ad1:	8b 75 ec             	mov    -0x14(%ebp),%esi
535ad4:	83 7f 14 10          	cmpl   $0x10,0x14(%edi)
535ad8:	72 04                	jb     0x535ade
535ada:	8b 07                	mov    (%edi),%eax
535adc:	eb 02                	jmp    0x535ae0
535ade:	8b c7                	mov    %edi,%eax
535ae0:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
535ae3:	50                   	push   %eax
535ae4:	e8 a3 16 f0 ff       	call   0x43718c
535ae9:	8d 4d e8             	lea    -0x18(%ebp),%ecx
535aec:	89 45 e8             	mov    %eax,-0x18(%ebp)
535aef:	3b cb                	cmp    %ebx,%ecx
535af1:	73 36                	jae    0x535b29
535af3:	8b d1                	mov    %ecx,%edx
535af5:	8b 4d d8             	mov    -0x28(%ebp),%ecx
535af8:	3b ca                	cmp    %edx,%ecx
535afa:	77 2d                	ja     0x535b29
535afc:	8b c2                	mov    %edx,%eax
535afe:	2b c1                	sub    %ecx,%eax
535b00:	c1 f8 02             	sar    $0x2,%eax
535b03:	89 45 ec             	mov    %eax,-0x14(%ebp)
535b06:	3b de                	cmp    %esi,%ebx
535b08:	75 16                	jne    0x535b20
535b0a:	6a 01                	push   $0x1
535b0c:	8d 4d d8             	lea    -0x28(%ebp),%ecx
535b0f:	e8 ac ea ec ff       	call   0x4045c0
535b14:	8b 75 e0             	mov    -0x20(%ebp),%esi
535b17:	8b 5d dc             	mov    -0x24(%ebp),%ebx
535b1a:	8b 4d d8             	mov    -0x28(%ebp),%ecx
535b1d:	8b 45 ec             	mov    -0x14(%ebp),%eax
535b20:	85 db                	test   %ebx,%ebx
535b22:	74 22                	je     0x535b46
535b24:	8b 04 81             	mov    (%ecx,%eax,4),%eax
535b27:	eb 1b                	jmp    0x535b44
535b29:	3b de                	cmp    %esi,%ebx
535b2b:	75 13                	jne    0x535b40
535b2d:	6a 01                	push   $0x1
535b2f:	8d 4d d8             	lea    -0x28(%ebp),%ecx
535b32:	e8 89 ea ec ff       	call   0x4045c0
535b37:	8b 75 e0             	mov    -0x20(%ebp),%esi
535b3a:	8b 5d dc             	mov    -0x24(%ebp),%ebx
535b3d:	8b 45 e8             	mov    -0x18(%ebp),%eax
535b40:	85 db                	test   %ebx,%ebx
535b42:	74 02                	je     0x535b46
535b44:	89 03                	mov    %eax,(%ebx)
535b46:	83 c3 04             	add    $0x4,%ebx
535b49:	83 c7 30             	add    $0x30,%edi
535b4c:	89 5d dc             	mov    %ebx,-0x24(%ebp)
535b4f:	3b 7d c4             	cmp    -0x3c(%ebp),%edi
535b52:	75 80                	jne    0x535ad4
535b54:	89 75 ec             	mov    %esi,-0x14(%ebp)
535b57:	8b 75 b4             	mov    -0x4c(%ebp),%esi
535b5a:	8b 45 b8             	mov    -0x48(%ebp),%eax
535b5d:	8b fe                	mov    %esi,%edi
535b5f:	3b f0                	cmp    %eax,%esi
535b61:	0f 84 17 01 00 00    	je     0x535c7e
535b67:	83 7f 14 10          	cmpl   $0x10,0x14(%edi)
535b6b:	72 04                	jb     0x535b71
535b6d:	8b 07                	mov    (%edi),%eax
535b6f:	eb 02                	jmp    0x535b73
535b71:	8b c7                	mov    %edi,%eax
535b73:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
535b76:	50                   	push   %eax
535b77:	e8 10 16 f0 ff       	call   0x43718c
535b7c:	8d 4d e8             	lea    -0x18(%ebp),%ecx
535b7f:	89 45 e8             	mov    %eax,-0x18(%ebp)
535b82:	3b cb                	cmp    %ebx,%ecx
535b84:	8b 4d d8             	mov    -0x28(%ebp),%ecx
535b87:	73 7b                	jae    0x535c04
535b89:	8d 55 e8             	lea    -0x18(%ebp),%edx
535b8c:	3b ca                	cmp    %edx,%ecx
535b8e:	77 74                	ja     0x535c04
535b90:	2b d1                	sub    %ecx,%edx
535b92:	c1 fa 02             	sar    $0x2,%edx
535b95:	89 55 d0             	mov    %edx,-0x30(%ebp)
535b98:	8b 55 ec             	mov    -0x14(%ebp),%edx
535b9b:	3b da                	cmp    %edx,%ebx
535b9d:	75 59                	jne    0x535bf8
535b9f:	8b c2                	mov    %edx,%eax
535ba1:	2b c3                	sub    %ebx,%eax
535ba3:	c1 f8 02             	sar    $0x2,%eax
535ba6:	83 f8 01             	cmp    $0x1,%eax
535ba9:	73 4d                	jae    0x535bf8
535bab:	2b d9                	sub    %ecx,%ebx
535bad:	b8 ff ff ff 3f       	mov    $0x3fffffff,%eax
535bb2:	c1 fb 02             	sar    $0x2,%ebx
535bb5:	2b c3                	sub    %ebx,%eax
535bb7:	83 f8 01             	cmp    $0x1,%eax
535bba:	0f 82 e7 fe ff ff    	jb     0x535aa7
535bc0:	2b d1                	sub    %ecx,%edx
535bc2:	43                   	inc    %ebx
535bc3:	c1 fa 02             	sar    $0x2,%edx
535bc6:	b9 ff ff ff 3f       	mov    $0x3fffffff,%ecx
535bcb:	8b c2                	mov    %edx,%eax
535bcd:	89 55 ec             	mov    %edx,-0x14(%ebp)
535bd0:	d1 e8                	shr    $1,%eax
535bd2:	2b c8                	sub    %eax,%ecx
535bd4:	03 c2                	add    %edx,%eax
535bd6:	33 d2                	xor    %edx,%edx
535bd8:	3b 4d ec             	cmp    -0x14(%ebp),%ecx
535bdb:	8d 4d d8             	lea    -0x28(%ebp),%ecx
535bde:	0f 43 d0             	cmovae %eax,%edx
535be1:	3b d3                	cmp    %ebx,%edx
535be3:	0f 43 da             	cmovae %edx,%ebx
535be6:	53                   	push   %ebx
535be7:	e8 2e b7 ed ff       	call   0x41131a
535bec:	8b 45 e0             	mov    -0x20(%ebp),%eax
535bef:	8b 5d dc             	mov    -0x24(%ebp),%ebx
535bf2:	8b 4d d8             	mov    -0x28(%ebp),%ecx
535bf5:	89 45 ec             	mov    %eax,-0x14(%ebp)
535bf8:	8b 45 d0             	mov    -0x30(%ebp),%eax
535bfb:	85 db                	test   %ebx,%ebx
535bfd:	74 6b                	je     0x535c6a
535bff:	8b 04 81             	mov    (%ecx,%eax,4),%eax
535c02:	eb 64                	jmp    0x535c68
535c04:	8b 55 ec             	mov    -0x14(%ebp),%edx
535c07:	3b da                	cmp    %edx,%ebx
535c09:	75 59                	jne    0x535c64
535c0b:	8b c2                	mov    %edx,%eax
535c0d:	2b c3                	sub    %ebx,%eax
535c0f:	c1 f8 02             	sar    $0x2,%eax
535c12:	83 f8 01             	cmp    $0x1,%eax
535c15:	73 4a                	jae    0x535c61
535c17:	2b d9                	sub    %ecx,%ebx
535c19:	b8 ff ff ff 3f       	mov    $0x3fffffff,%eax
535c1e:	c1 fb 02             	sar    $0x2,%ebx
535c21:	2b c3                	sub    %ebx,%eax
535c23:	83 f8 01             	cmp    $0x1,%eax
535c26:	0f 82 7b fe ff ff    	jb     0x535aa7
535c2c:	2b d1                	sub    %ecx,%edx
535c2e:	43                   	inc    %ebx
535c2f:	c1 fa 02             	sar    $0x2,%edx
535c32:	b9 ff ff ff 3f       	mov    $0x3fffffff,%ecx
535c37:	8b c2                	mov    %edx,%eax
535c39:	89 55 ec             	mov    %edx,-0x14(%ebp)
535c3c:	d1 e8                	shr    $1,%eax
535c3e:	2b c8                	sub    %eax,%ecx
535c40:	03 c2                	add    %edx,%eax
535c42:	33 d2                	xor    %edx,%edx
535c44:	3b 4d ec             	cmp    -0x14(%ebp),%ecx
535c47:	8d 4d d8             	lea    -0x28(%ebp),%ecx
535c4a:	0f 43 d0             	cmovae %eax,%edx
535c4d:	3b d3                	cmp    %ebx,%edx
535c4f:	0f 43 da             	cmovae %edx,%ebx
535c52:	53                   	push   %ebx
535c53:	e8 c2 b6 ed ff       	call   0x41131a
535c58:	8b 45 e0             	mov    -0x20(%ebp),%eax
535c5b:	8b 5d dc             	mov    -0x24(%ebp),%ebx
535c5e:	89 45 ec             	mov    %eax,-0x14(%ebp)
535c61:	8b 45 e8             	mov    -0x18(%ebp),%eax
535c64:	85 db                	test   %ebx,%ebx
535c66:	74 02                	je     0x535c6a
535c68:	89 03                	mov    %eax,(%ebx)
535c6a:	8b 45 b8             	mov    -0x48(%ebp),%eax
535c6d:	83 c3 04             	add    $0x4,%ebx
535c70:	83 c7 18             	add    $0x18,%edi
535c73:	89 5d dc             	mov    %ebx,-0x24(%ebp)
535c76:	3b f8                	cmp    %eax,%edi