5518ad:	74 0a                	je     0x5518b9
5518af:	c7 85 50 ff ff ff 01 	movl   $0x1,-0xb0(%ebp)
5518b6:	00 00 00
5518b9:	8b 8d 0c ff ff ff    	mov    -0xf4(%ebp),%ecx
5518bf:	85 c9                	test   %ecx,%ecx
5518c1:	74 10                	je     0x5518d3
5518c3:	f6 41 0c 28          	testb  $0x28,0xc(%ecx)
5518c7:	c7 85 58 ff ff ff 00 	movl   $0x0,-0xa8(%ebp)
5518ce:	00 00 00
5518d1:	74 0a                	je     0x5518dd
5518d3:	c7 85 58 ff ff ff 01 	movl   $0x1,-0xa8(%ebp)
5518da:	00 00 00
5518dd:	85 c0                	test   %eax,%eax
5518df:	75 64                	jne    0x551945
5518e1:	66 39 85 24 ff ff ff 	cmp    %ax,-0xdc(%ebp)
5518e8:	77 5b                	ja     0x551945
5518ea:	8b 8d 20 ff ff ff    	mov    -0xe0(%ebp),%ecx
5518f0:	89 85 24 ff ff ff    	mov    %eax,-0xdc(%ebp)
5518f6:	89 8d 48 ff ff ff    	mov    %ecx,-0xb8(%ebp)
5518fc:	80 bd 4f ff ff ff 00 	cmpb   $0x0,-0xb1(%ebp)
551903:	0f 84 32 01 00 00    	je     0x551a3b
551909:	c7 85 50 ff ff ff 00 	movl   $0x0,-0xb0(%ebp)
551910:	00 00 00
551913:	8b 85 14 ff ff ff    	mov    -0xec(%ebp),%eax
551919:	03 c1                	add    %ecx,%eax
55191b:	50                   	push   %eax
55191c:	6a 00                	push   $0x0
55191e:	6a 48                	push   $0x48
551920:	57                   	push   %edi
551921:	e8 ba 01 ff ff       	call   0x541ae0
551926:	8b 85 48 ff ff ff    	mov    -0xb8(%ebp),%eax
55192c:	83 c4 10             	add    $0x10,%esp
55192f:	40                   	inc    %eax
551930:	c7 85 24 ff ff ff 01 	movl   $0x1,-0xdc(%ebp)
551937:	00 00 00
55193a:	89 85 48 ff ff ff    	mov    %eax,-0xb8(%ebp)
551940:	e9 04 01 00 00       	jmp    0x551a49
551945:	8b 8d 20 ff ff ff    	mov    -0xe0(%ebp),%ecx
55194b:	c7 85 24 ff ff ff 01 	movl   $0x1,-0xdc(%ebp)
551952:	00 00 00
551955:	89 8d 48 ff ff ff    	mov    %ecx,-0xb8(%ebp)
55195b:	85 c0                	test   %eax,%eax
55195d:	74 9d                	je     0x5518fc
55195f:	8b 00                	mov    (%eax),%eax
551961:	8b bd 38 ff ff ff    	mov    -0xc8(%ebp),%edi
551967:	03 8d 14 ff ff ff    	add    -0xec(%ebp),%ecx
55196d:	89 8d 08 ff ff ff    	mov    %ecx,-0xf8(%ebp)
551973:	8b 50 10             	mov    0x10(%eax),%edx
551976:	0f b7 c7             	movzwl %di,%eax
551979:	50                   	push   %eax
55197a:	51                   	push   %ecx
55197b:	52                   	push   %edx
55197c:	53                   	push   %ebx
55197d:	89 95 5c ff ff ff    	mov    %edx,-0xa4(%ebp)
551983:	e8 38 86 fa ff       	call   0x4f9fc0
551988:	ff b5 10 ff ff ff    	push   -0xf0(%ebp)
55198e:	8b bd fc fe ff ff    	mov    -0x104(%ebp),%edi
551994:	56                   	push   %esi
551995:	57                   	push   %edi
551996:	e8 b5 f3 00 00       	call   0x560d50
55199b:	ff b5 5c ff ff ff    	push   -0xa4(%ebp)
5519a1:	e8 ba 20 fd ff       	call   0x523a60
5519a6:	83 c4 20             	add    $0x20,%esp
5519a9:	85 c0                	test   %eax,%eax
5519ab:	74 17                	je     0x5519c4
5519ad:	ff b5 54 ff ff ff    	push   -0xac(%ebp)
5519b3:	ff b5 08 ff ff ff    	push   -0xf8(%ebp)
5519b9:	6a 32                	push   $0x32
5519bb:	57                   	push   %edi
5519bc:	e8 1f 01 ff ff       	call   0x541ae0
5519c1:	83 c4 10             	add    $0x10,%esp
5519c4:	8b 8d 04 ff ff ff    	mov    -0xfc(%ebp),%ecx
5519ca:	85 c9                	test   %ecx,%ecx
5519cc:	74 21                	je     0x5519ef
5519ce:	8b 85 20 ff ff ff    	mov    -0xe0(%ebp),%eax
5519d4:	03 c1                	add    %ecx,%eax
5519d6:	8b 8d 38 ff ff ff    	mov    -0xc8(%ebp),%ecx
5519dc:	50                   	push   %eax
5519dd:	0f b7 c1             	movzwl %cx,%eax
5519e0:	50                   	push   %eax
5519e1:	ff b5 5c ff ff ff    	push   -0xa4(%ebp)
5519e7:	e8 04 75 00 00       	call   0x558ef0
5519ec:	83 c4 0c             	add    $0xc,%esp
5519ef:	8b 8d 38 ff ff ff    	mov    -0xc8(%ebp),%ecx
5519f5:	ff b5 5c ff ff ff    	push   -0xa4(%ebp)
5519fb:	0f b7 c1             	movzwl %cx,%eax
5519fe:	01 85 48 ff ff ff    	add    %eax,-0xb8(%ebp)
551a04:	e8 27 5b fd ff       	call   0x527530
551a09:	83 c4 04             	add    $0x4,%esp
551a0c:	85 c0                	test   %eax,%eax
551a0e:	75 18                	jne    0x551a28
551a10:	ff b5 10 ff ff ff    	push   -0xf0(%ebp)
551a16:	56                   	push   %esi
551a17:	e8 e4 c4 fa ff       	call   0x4fdf00
551a1c:	83 c4 08             	add    $0x8,%esp
551a1f:	c6 85 4f ff ff ff 00 	movb   $0x0,-0xb1(%ebp)
551a26:	eb 1b                	jmp    0x551a43
551a28:	c7 85 50 ff ff ff 01 	movl   $0x1,-0xb0(%ebp)
551a2f:	00 00 00
551a32:	c6 85 4f ff ff ff 00 	movb   $0x0,-0xb1(%ebp)
551a39:	eb 08                	jmp    0x551a43
551a3b:	85 d2                	test   %edx,%edx
551a3d:	0f 85 d0 fe ff ff    	jne    0x551913
551a43:	8b 85 48 ff ff ff    	mov    -0xb8(%ebp),%eax
551a49:	0f b6 8d 4f ff ff ff 	movzbl -0xb1(%ebp),%ecx
551a50:	ff b5 04 ff ff ff    	push   -0xfc(%ebp)
551a56:	2b c1                	sub    %ecx,%eax
551a58:	89 8d 08 ff ff ff    	mov    %ecx,-0xf8(%ebp)
551a5e:	50                   	push   %eax
551a5f:	ff b5 14 ff ff ff    	push   -0xec(%ebp)
551a65:	53                   	push   %ebx
551a66:	e8 95 7a fa ff       	call   0x4f9500
551a6b:	8b 8d 44 ff ff ff    	mov    -0xbc(%ebp),%ecx
551a71:	83 c4 10             	add    $0x10,%esp
551a74:	0f b7 41 2a          	movzwl 0x2a(%ecx),%eax
551a78:	66 85 c0             	test   %ax,%ax
551a7b:	74 0c                	je     0x551a89
551a7d:	39 85 48 ff ff ff    	cmp    %eax,-0xb8(%ebp)
551a83:	0f 84 d3 00 00 00    	je     0x551b5c
551a89:	f7 41 24 00 00 04 00 	testl  $0x40000,0x24(%ecx)
551a90:	74 11                	je     0x551aa3
551a92:	ff b5 28 ff ff ff    	push   -0xd8(%ebp)
551a98:	6a 76                	push   $0x76
551a9a:	57                   	push   %edi
551a9b:	e8 e0 ff fe ff       	call   0x541a80
551aa0:	83 c4 0c             	add    $0xc,%esp
551aa3:	8b 85 3c ff ff ff    	mov    -0xc4(%ebp),%eax
551aa9:	85 c0                	test   %eax,%eax
551aab:	74 0e                	je     0x551abb
551aad:	50                   	push   %eax
551aae:	6a 01                	push   $0x1
551ab0:	6a 45                	push   $0x45
551ab2:	57                   	push   %edi
551ab3:	e8 28 00 ff ff       	call   0x541ae0
551ab8:	83 c4 10             	add    $0x10,%esp
551abb:	ff b5 48 ff ff ff    	push   -0xb8(%ebp)
551ac1:	8b 8d 50 ff ff ff    	mov    -0xb0(%ebp),%ecx
551ac7:	8b 85 24 ff ff ff    	mov    -0xdc(%ebp),%eax
551acd:	ff b5 14 ff ff ff    	push   -0xec(%ebp)
551ad3:	ff b5 54 ff ff ff    	push   -0xac(%ebp)
551ad9:	8d 04 41             	lea    (%ecx,%eax,2),%eax
551adc:	8b 8d 30 ff ff ff    	mov    -0xd0(%ebp),%ecx
551ae2:	ff b5 28 ff ff ff    	push   -0xd8(%ebp)
551ae8:	0f b6 84 41 68 31 6b 	movzbl 0x6b3168(%ecx,%eax,2),%eax
551aef:	00
551af0:	50                   	push   %eax
551af1:	57                   	push   %edi
551af2:	e8 19 01 ff ff       	call   0x541c10
551af7:	8b 85 3c ff ff ff    	mov    -0xc4(%ebp),%eax
551afd:	83 c4 18             	add    $0x18,%esp
551b00:	85 c0                	test   %eax,%eax
551b02:	74 5e                	je     0x551b62
551b04:	8b 47 6c             	mov    0x6c(%edi),%eax
551b07:	83 c0 02             	add    $0x2,%eax
551b0a:	50                   	push   %eax
551b0b:	6a 00                	push   $0x0
551b0d:	6a 0b                	push   $0xb
551b0f:	57                   	push   %edi
551b10:	e8 cb ff fe ff       	call   0x541ae0
551b15:	8b 85 48 ff ff ff    	mov    -0xb8(%ebp),%eax
551b1b:	2b 85 50 ff ff ff    	sub    -0xb0(%ebp),%eax
551b21:	8b 8d 30 ff ff ff    	mov    -0xd0(%ebp),%ecx
551b27:	50                   	push   %eax
551b28:	ff b5 14 ff ff ff    	push   -0xec(%ebp)
551b2e:	b8 01 00 00 00       	mov    $0x1,%eax
551b33:	3b 85 48 ff ff ff    	cmp    -0xb8(%ebp),%eax
551b39:	ff b5 54 ff ff ff    	push   -0xac(%ebp)
551b3f:	1b c0                	sbb    %eax,%eax
551b41:	ff b5 28 ff ff ff    	push   -0xd8(%ebp)
551b47:	83 e0 04             	and    $0x4,%eax
551b4a:	0f b6 84 08 6a 31 6b 	movzbl 0x6b316a(%eax,%ecx,1),%eax
551b51:	00
551b52:	50                   	push   %eax
551b53:	57                   	push   %edi
551b54:	e8 b7 00 ff ff       	call   0x541c10
551b59:	83 c4 28             	add    $0x28,%esp
551b5c:	8b 85 3c ff ff ff    	mov    -0xc4(%ebp),%eax
551b62:	8b 8d 0c ff ff ff    	mov    -0xf4(%ebp),%ecx
551b68:	85 c9                	test   %ecx,%ecx
551b6a:	0f 84 dd 00 00 00    	je     0x551c4d
551b70:	8b 01                	mov    (%ecx),%eax
551b72:	8b 50 10             	mov    0x10(%eax),%edx
551b75:	8b 85 34 ff ff ff    	mov    -0xcc(%ebp),%eax
551b7b:	0f b7 c8             	movzwl %ax,%ecx
551b7e:	8b 85 20 ff ff ff    	mov    -0xe0(%ebp),%eax
551b84:	03 85 14 ff ff ff    	add    -0xec(%ebp),%eax
551b8a:	51                   	push   %ecx
551b8b:	50                   	push   %eax
551b8c:	52                   	push   %edx
551b8d:	53                   	push   %ebx
551b8e:	89 95 5c ff ff ff    	mov    %edx,-0xa4(%ebp)
551b94:	89 85 24 ff ff ff    	mov    %eax,-0xdc(%ebp)
551b9a:	e8 21 84 fa ff       	call   0x4f9fc0
551b9f:	ff b5 0c ff ff ff    	push   -0xf4(%ebp)
551ba5:	56                   	push   %esi
551ba6:	57                   	push   %edi
551ba7:	e8 a4 f1 00 00       	call   0x560d50
551bac:	ff b5 5c ff ff ff    	push   -0xa4(%ebp)
551bb2:	e8 a9 1e fd ff       	call   0x523a60
551bb7:	83 c4 20             	add    $0x20,%esp
551bba:	85 c0                	test   %eax,%eax
551bbc:	74 17                	je     0x551bd5
551bbe:	ff b5 54 ff ff ff    	push   -0xac(%ebp)
551bc4:	ff b5 24 ff ff ff    	push   -0xdc(%ebp)
551bca:	6a 32                	push   $0x32
551bcc:	57                   	push   %edi
551bcd:	e8 0e ff fe ff       	call   0x541ae0
551bd2:	83 c4 10             	add    $0x10,%esp
551bd5:	8b 45 98             	mov    -0x68(%ebp),%eax
551bd8:	85 c0                	test   %eax,%eax
551bda:	74 33                	je     0x551c0f
551bdc:	8b 8d 34 ff ff ff    	mov    -0xcc(%ebp),%ecx
551be2:	50                   	push   %eax
551be3:	0f b7 c1             	movzwl %cx,%eax
551be6:	50                   	push   %eax
551be7:	ff b5 5c ff ff ff    	push   -0xa4(%ebp)
551bed:	e8 fe 72 00 00       	call   0x558ef0
551bf2:	8b 45 98             	mov    -0x68(%ebp),%eax
551bf5:	8b 8d 34 ff ff ff    	mov    -0xcc(%ebp),%ecx
551bfb:	50                   	push   %eax
551bfc:	0f b7 c1             	movzwl %cx,%eax
551bff:	50                   	push   %eax
551c00:	ff b5 24 ff ff ff    	push   -0xdc(%ebp)
551c06:	53                   	push   %ebx
551c07:	e8 f4 78 fa ff       	call   0x4f9500
551c0c:	83 c4 1c             	add    $0x1c,%esp
551c0f:	8b 8d 34 ff ff ff    	mov    -0xcc(%ebp),%ecx
551c15:	ff b5 5c ff ff ff    	push   -0xa4(%ebp)
551c1b:	0f b7 c1             	movzwl %cx,%eax
551c1e:	01 85 20 ff ff ff    	add    %eax,-0xe0(%ebp)
551c24:	e8 07 59 fd ff       	call   0x527530
551c29:	83 c4 04             	add    $0x4,%esp
551c2c:	85 c0                	test   %eax,%eax
551c2e:	75 11                	jne    0x551c41
551c30:	ff b5 0c ff ff ff    	push   -0xf4(%ebp)
551c36:	56                   	push   %esi
551c37:	e8 c4 c2 fa ff       	call   0x4fdf00
551c3c:	83 c4 08             	add    $0x8,%esp
551c3f:	eb 43                	jmp    0x551c84
551c41:	c7 85 58 ff ff ff 01 	movl   $0x1,-0xa8(%ebp)
551c48:	00 00 00
551c4b:	eb 37                	jmp    0x551c84
551c4d:	80 bd 03 ff ff ff 00 	cmpb   $0x0,-0xfd(%ebp)
551c54:	74 2e                	je     0x551c84
551c56:	85 c0                	test   %eax,%eax
551c58:	75 24                	jne    0x551c7e
551c5a:	8b 85 20 ff ff ff    	mov    -0xe0(%ebp),%eax
551c60:	03 85 14 ff ff ff    	add    -0xec(%ebp),%eax
551c66:	50                   	push   %eax
551c67:	6a 00                	push   $0x0
551c69:	6a 48                	push   $0x48
551c6b:	57                   	push   %edi
551c6c:	e8 6f fe fe ff       	call   0x541ae0
551c71:	83 c4 10             	add    $0x10,%esp
551c74:	c7 85 58 ff ff ff 00 	movl   $0x0,-0xa8(%ebp)
551c7b:	00 00 00
551c7e:	ff 85 20 ff ff ff    	incl   -0xe0(%ebp)
551c84:	8b 85 04 ff ff ff    	mov    -0xfc(%ebp),%eax
551c8a:	85 c0                	test   %eax,%eax
551c8c:	74 0f                	je     0x551c9d
551c8e:	50                   	push   %eax
551c8f:	ff b5 f4 fe ff ff    	push   -0x10c(%ebp)
551c95:	e8 d6 f6 fc ff       	call   0x521370
551c9a:	83 c4 08             	add    $0x8,%esp
551c9d:	8b 45 98             	mov    -0x68(%ebp),%eax
551ca0:	85 c0                	test   %eax,%eax
551ca2:	74 0f                	je     0x551cb3
551ca4:	50                   	push   %eax
551ca5:	ff b5 f4 fe ff ff    	push   -0x10c(%ebp)
551cab:	e8 c0 f6 fc ff       	call   0x521370
551cb0:	83 c4 08             	add    $0x8,%esp
551cb3:	8b 47 6c             	mov    0x6c(%edi),%eax
551cb6:	89 46 3c             	mov    %eax,0x3c(%esi)
551cb9:	8b 85 20 ff ff ff    	mov    -0xe0(%ebp),%eax
551cbf:	85 c0                	test   %eax,%eax
551cc1:	74 54                	je     0x551d17
551cc3:	8b 95 3c ff ff ff    	mov    -0xc4(%ebp),%edx
551cc9:	85 d2                	test   %edx,%edx
551ccb:	74 19                	je     0x551ce6
551ccd:	8b 47 6c             	mov    0x6c(%edi),%eax
551cd0:	83 c0 03             	add    $0x3,%eax
551cd3:	50                   	push   %eax
551cd4:	52                   	push   %edx
551cd5:	6a 14                	push   $0x14
551cd7:	57                   	push   %edi
551cd8:	e8 03 fe fe ff       	call   0x541ae0
551cdd:	8b 85 20 ff ff ff    	mov    -0xe0(%ebp),%eax
551ce3:	83 c4 10             	add    $0x10,%esp
551ce6:	8b 8d 30 ff ff ff    	mov    -0xd0(%ebp),%ecx
551cec:	50                   	push   %eax
551ced:	ff b5 14 ff ff ff    	push   -0xec(%ebp)
551cf3:	8b 85 58 ff ff ff    	mov    -0xa8(%ebp),%eax
551cf9:	ff b5 54 ff ff ff    	push   -0xac(%ebp)
551cff:	ff b5 28 ff ff ff    	push   -0xd8(%ebp)
551d05:	0f b6 84 48 70 31 6b 	movzbl 0x6b3170(%eax,%ecx,2),%eax
551d0c:	00
551d0d:	50                   	push   %eax
551d0e:	57                   	push   %edi
551d0f:	e8 fc fe fe ff       	call   0x541c10
551d14:	83 c4 18             	add    $0x18,%esp
551d17:	8b 8d 3c ff ff ff    	mov    -0xc4(%ebp),%ecx
551d1d:	85 c9                	test   %ecx,%ecx
551d1f:	74 49                	je     0x551d6a
551d21:	8b 47 6c             	mov    0x6c(%edi),%eax
551d24:	83 c0 02             	add    $0x2,%eax
551d27:	50                   	push   %eax
551d28:	51                   	push   %ecx
551d29:	6a 12                	push   $0x12
551d2b:	57                   	push   %edi
551d2c:	e8 af fd fe ff       	call   0x541ae0
551d31:	8b 8d 08 ff ff ff    	mov    -0xf8(%ebp),%ecx
551d37:	8b 85 20 ff ff ff    	mov    -0xe0(%ebp),%eax
551d3d:	03 c1                	add    %ecx,%eax
551d3f:	50                   	push   %eax
551d40:	ff b5 14 ff ff ff    	push   -0xec(%ebp)
551d46:	8b 85 30 ff ff ff    	mov    -0xd0(%ebp),%eax
551d4c:	ff b5 54 ff ff ff    	push   -0xac(%ebp)
551d52:	ff b5 28 ff ff ff    	push   -0xd8(%ebp)
551d58:	0f b6 84 41 70 31 6b 	movzbl 0x6b3170(%ecx,%eax,2),%eax
551d5f:	00
551d60:	50                   	push   %eax
551d61:	57                   	push   %edi
551d62:	e8 a9 fe fe ff       	call   0x541c10
551d67:	83 c4 28             	add    $0x28,%esp
551d6a:	8b 8d 44 ff ff ff    	mov    -0xbc(%ebp),%ecx
551d70:	f7 41 24 00 00 04 00 	testl  $0x40000,0x24(%ecx)
551d77:	74 19                	je     0x551d92
551d79:	6a 01                	push   $0x1
551d7b:	ff b5 28 ff ff ff    	push   -0xd8(%ebp)
551d81:	6a 76                	push   $0x76
551d83:	57                   	push   %edi
551d84:	e8 57 fd fe ff       	call   0x541ae0
551d89:	8b 8d 44 ff ff ff    	mov    -0xbc(%ebp),%ecx
551d8f:	83 c4 10             	add    $0x10,%esp
551d92:	f6 41 24 40          	testb  $0x40,0x24(%ecx)
551d96:	8b 95 1c ff ff ff    	mov    -0xe4(%ebp),%edx
551d9c:	74 12                	je     0x551db0
551d9e:	f6 42 28 20          	testb  $0x20,0x28(%edx)
551da2:	75 0c                	jne    0x551db0
551da4:	c7 45 98 01 00 00 00 	movl   $0x1,-0x68(%ebp)
551dab:	e9 c7 01 00 00       	jmp    0x551f77
551db0:	8b 85 18 ff ff ff    	mov    -0xe8(%ebp),%eax
551db6:	c7 45 98 00 00 00 00 	movl   $0x0,-0x68(%ebp)
551dbd:	8b 40 0c             	mov    0xc(%eax),%eax
551dc0:	f6 40 24 80          	testb  $0x80,0x24(%eax)
551dc4:	0f 85 84 00 00 00    	jne    0x551e4e
551dca:	0f b7 42 28          	movzwl 0x28(%edx),%eax
551dce:	a9 00 04 00 00       	test   $0x400,%eax
551dd3:	75 3b                	jne    0x551e10
551dd5:	a9 00 10 00 00       	test   $0x1000,%eax