553856:	88 10                	mov    %dl,(%eax)
553858:	8a 50 02             	mov    0x2(%eax),%dl
55385b:	2a 50 01             	sub    0x1(%eax),%dl
55385e:	80 e2 ff             	and    $0xff,%dl
553861:	88 50 02             	mov    %dl,0x2(%eax)
553864:	03 c1                	add    %ecx,%eax
553866:	3b fe                	cmp    %esi,%edi
553868:	77 e3                	ja     0x55384d
55386a:	e9 a6 00 00 00       	jmp    0x553915
55386f:	8a 48 09             	mov    0x9(%eax),%cl
553872:	80 f9 10             	cmp    $0x10,%cl
553875:	0f 85 9a 00 00 00    	jne    0x553915
55387b:	8a 48 08             	mov    0x8(%eax),%cl
55387e:	80 f9 02             	cmp    $0x2,%cl
553881:	75 07                	jne    0x55388a
553883:	b9 06 00 00 00       	mov    $0x6,%ecx
553888:	eb 0e                	jmp    0x553898
55388a:	80 f9 06             	cmp    $0x6,%cl
55388d:	0f 85 82 00 00 00    	jne    0x553915
553893:	b9 08 00 00 00       	mov    $0x8,%ecx
553898:	33 f6                	xor    %esi,%esi
55389a:	8b c2                	mov    %edx,%eax
55389c:	3b fe                	cmp    %esi,%edi
55389e:	76 75                	jbe    0x553915
5538a0:	33 d2                	xor    %edx,%edx
5538a2:	33 db                	xor    %ebx,%ebx
5538a4:	8a 10                	mov    (%eax),%dl
5538a6:	8a 58 01             	mov    0x1(%eax),%bl
5538a9:	c1 e2 08             	shl    $0x8,%edx
5538ac:	0b d3                	or     %ebx,%edx
5538ae:	33 db                	xor    %ebx,%ebx
5538b0:	89 14 24             	mov    %edx,(%esp)
5538b3:	33 d2                	xor    %edx,%edx
5538b5:	8a 50 02             	mov    0x2(%eax),%dl
5538b8:	8a 58 03             	mov    0x3(%eax),%bl
5538bb:	0f b6 68 05          	movzbl 0x5(%eax),%ebp
5538bf:	c1 e2 08             	shl    $0x8,%edx
5538c2:	0b d3                	or     %ebx,%edx
5538c4:	33 db                	xor    %ebx,%ebx
5538c6:	8a 58 04             	mov    0x4(%eax),%bl
5538c9:	c1 e3 08             	shl    $0x8,%ebx
5538cc:	0b dd                	or     %ebp,%ebx
5538ce:	89 5c 24 04          	mov    %ebx,0x4(%esp)
5538d2:	8b 5c 24 04          	mov    0x4(%esp),%ebx
5538d6:	8b 2c 24             	mov    (%esp),%ebp
5538d9:	2b da                	sub    %edx,%ebx
5538db:	2b ea                	sub    %edx,%ebp
5538dd:	81 e3 ff ff 00 00    	and    $0xffff,%ebx
5538e3:	81 e5 ff ff 00 00    	and    $0xffff,%ebp
5538e9:	8b d3                	mov    %ebx,%edx
5538eb:	8b dd                	mov    %ebp,%ebx
5538ed:	c1 eb 08             	shr    $0x8,%ebx
5538f0:	80 e3 ff             	and    $0xff,%bl
5538f3:	88 18                	mov    %bl,(%eax)
5538f5:	8b dd                	mov    %ebp,%ebx
5538f7:	80 e3 ff             	and    $0xff,%bl
5538fa:	88 58 01             	mov    %bl,0x1(%eax)
5538fd:	8b da                	mov    %edx,%ebx
5538ff:	c1 eb 08             	shr    $0x8,%ebx
553902:	80 e3 ff             	and    $0xff,%bl
553905:	80 e2 ff             	and    $0xff,%dl
553908:	88 58 04             	mov    %bl,0x4(%eax)
55390b:	88 50 05             	mov    %dl,0x5(%eax)
55390e:	46                   	inc    %esi
55390f:	03 c1                	add    %ecx,%eax
553911:	3b fe                	cmp    %esi,%edi
553913:	77 8b                	ja     0x5538a0
553915:	59                   	pop    %ecx
553916:	5a                   	pop    %edx
553917:	5d                   	pop    %ebp
553918:	5f                   	pop    %edi
553919:	5e                   	pop    %esi
55391a:	5b                   	pop    %ebx
55391b:	c3                   	ret
55391c:	8b ca                	mov    %edx,%ecx
55391e:	c1 e9 18             	shr    $0x18,%ecx
553921:	80 e1 ff             	and    $0xff,%cl
553924:	88 08                	mov    %cl,(%eax)
553926:	8b ca                	mov    %edx,%ecx
553928:	c1 e9 10             	shr    $0x10,%ecx
55392b:	80 e1 ff             	and    $0xff,%cl
55392e:	88 48 01             	mov    %cl,0x1(%eax)
553931:	8b ca                	mov    %edx,%ecx
553933:	c1 e9 08             	shr    $0x8,%ecx
553936:	80 e1 ff             	and    $0xff,%cl
553939:	80 e2 ff             	and    $0xff,%dl
55393c:	88 48 02             	mov    %cl,0x2(%eax)
55393f:	88 50 03             	mov    %dl,0x3(%eax)
553942:	c3                   	ret
553943:	90                   	nop
553944:	8b ca                	mov    %edx,%ecx
553946:	c1 f9 18             	sar    $0x18,%ecx
553949:	80 e1 ff             	and    $0xff,%cl
55394c:	88 08                	mov    %cl,(%eax)
55394e:	8b ca                	mov    %edx,%ecx
553950:	c1 f9 10             	sar    $0x10,%ecx
553953:	80 e1 ff             	and    $0xff,%cl
553956:	88 48 01             	mov    %cl,0x1(%eax)
553959:	8b ca                	mov    %edx,%ecx
55395b:	c1 f9 08             	sar    $0x8,%ecx
55395e:	80 e1 ff             	and    $0xff,%cl
553961:	80 e2 ff             	and    $0xff,%dl
553964:	88 48 02             	mov    %cl,0x2(%eax)
553967:	88 50 03             	mov    %dl,0x3(%eax)
55396a:	c3                   	ret
55396b:	90                   	nop
55396c:	8b ca                	mov    %edx,%ecx
55396e:	c1 e9 08             	shr    $0x8,%ecx
553971:	80 e1 ff             	and    $0xff,%cl
553974:	80 e2 ff             	and    $0xff,%dl
553977:	88 08                	mov    %cl,(%eax)
553979:	88 50 01             	mov    %dl,0x1(%eax)
55397c:	c3                   	ret
55397d:	90                   	nop
55397e:	90                   	nop
55397f:	90                   	nop
553980:	55                   	push   %ebp
553981:	8b ec                	mov    %esp,%ebp
553983:	51                   	push   %ecx
553984:	53                   	push   %ebx
553985:	56                   	push   %esi
553986:	89 4d fc             	mov    %ecx,-0x4(%ebp)
553989:	8b d8                	mov    %eax,%ebx
55398b:	8b 75 08             	mov    0x8(%ebp),%esi
55398e:	8b ce                	mov    %esi,%ecx
553990:	8b c3                	mov    %ebx,%eax
553992:	e8 1d 00 00 00       	call   0x5539b4
553997:	8b ce                	mov    %esi,%ecx
553999:	8b 55 fc             	mov    -0x4(%ebp),%edx
55399c:	8b c3                	mov    %ebx,%eax
55399e:	e8 59 00 00 00       	call   0x5539fc
5539a3:	8b c3                	mov    %ebx,%eax
5539a5:	e8 7e 00 00 00       	call   0x553a28
5539aa:	5e                   	pop    %esi
5539ab:	5b                   	pop    %ebx
5539ac:	59                   	pop    %ecx
5539ad:	5d                   	pop    %ebp
5539ae:	c2 04 00             	ret    $0x4
5539b1:	90                   	nop
5539b2:	90                   	nop
5539b3:	90                   	nop
5539b4:	53                   	push   %ebx
5539b5:	56                   	push   %esi
5539b6:	51                   	push   %ecx
5539b7:	8b f2                	mov    %edx,%esi
5539b9:	8b d8                	mov    %eax,%ebx
5539bb:	8b c4                	mov    %esp,%eax
5539bd:	8b d1                	mov    %ecx,%edx
5539bf:	e8 58 ff ff ff       	call   0x55391c
5539c4:	8b d4                	mov    %esp,%edx
5539c6:	b9 04 00 00 00       	mov    $0x4,%ecx
5539cb:	8b c3                	mov    %ebx,%eax
5539cd:	e8 a2 f6 ff ff       	call   0x553074
5539d2:	b9 04 00 00 00       	mov    $0x4,%ecx
5539d7:	8b d6                	mov    %esi,%edx
5539d9:	8b c3                	mov    %ebx,%eax
5539db:	e8 94 f6 ff ff       	call   0x553074
5539e0:	8b c3                	mov    %ebx,%eax
5539e2:	e8 d9 32 00 00       	call   0x556cc0
5539e7:	b9 04 00 00 00       	mov    $0x4,%ecx
5539ec:	8b d6                	mov    %esi,%edx
5539ee:	8b c3                	mov    %ebx,%eax
5539f0:	e8 e3 32 00 00       	call   0x556cd8
5539f5:	5a                   	pop    %edx
5539f6:	5e                   	pop    %esi
5539f7:	5b                   	pop    %ebx
5539f8:	c3                   	ret
5539f9:	90                   	nop
5539fa:	90                   	nop
5539fb:	90                   	nop
5539fc:	53                   	push   %ebx
5539fd:	56                   	push   %esi
5539fe:	57                   	push   %edi
5539ff:	8b f1                	mov    %ecx,%esi
553a01:	8b da                	mov    %edx,%ebx
553a03:	8b f8                	mov    %eax,%edi
553a05:	85 db                	test   %ebx,%ebx
553a07:	74 1a                	je     0x553a23
553a09:	85 f6                	test   %esi,%esi
553a0b:	76 16                	jbe    0x553a23
553a0d:	8b ce                	mov    %esi,%ecx
553a0f:	8b d3                	mov    %ebx,%edx
553a11:	8b c7                	mov    %edi,%eax
553a13:	e8 c0 32 00 00       	call   0x556cd8
553a18:	8b ce                	mov    %esi,%ecx
553a1a:	8b d3                	mov    %ebx,%edx
553a1c:	8b c7                	mov    %edi,%eax
553a1e:	e8 51 f6 ff ff       	call   0x553074
553a23:	5f                   	pop    %edi
553a24:	5e                   	pop    %esi
553a25:	5b                   	pop    %ebx
553a26:	c3                   	ret
553a27:	90                   	nop
553a28:	53                   	push   %ebx
553a29:	8b d8                	mov    %eax,%ebx
553a2b:	51                   	push   %ecx
553a2c:	8b c4                	mov    %esp,%eax
553a2e:	8b 93 d0 00 00 00    	mov    0xd0(%ebx),%edx
553a34:	e8 e3 fe ff ff       	call   0x55391c
553a39:	8b d4                	mov    %esp,%edx
553a3b:	b9 04 00 00 00       	mov    $0x4,%ecx
553a40:	8b c3                	mov    %ebx,%eax
553a42:	e8 2d f6 ff ff       	call   0x553074
553a47:	5a                   	pop    %edx
553a48:	5b                   	pop    %ebx
553a49:	c3                   	ret
553a4a:	90                   	nop
553a4b:	90                   	nop
553a4c:	53                   	push   %ebx
553a4d:	83 c4 f8             	add    $0xfffffff8,%esp
553a50:	8b d8                	mov    %eax,%ebx
553a52:	8b 05 60 cc 69 00    	mov    0x69cc60,%eax
553a58:	89 04 24             	mov    %eax,(%esp)
553a5b:	8b 05 64 cc 69 00    	mov    0x69cc64,%eax
553a61:	89 44 24 04          	mov    %eax,0x4(%esp)
553a65:	33 c0                	xor    %eax,%eax
553a67:	8a 83 ec 00 00 00    	mov    0xec(%ebx),%al
553a6d:	b9 08 00 00 00       	mov    $0x8,%ecx
553a72:	2b c8                	sub    %eax,%ecx
553a74:	8b d0                	mov    %eax,%edx
553a76:	8b c4                	mov    %esp,%eax
553a78:	03 d0                	add    %eax,%edx
553a7a:	8b c3                	mov    %ebx,%eax
553a7c:	e8 f3 f5 ff ff       	call   0x553074
553a81:	8a 93 ec 00 00 00    	mov    0xec(%ebx),%dl
553a87:	80 fa 03             	cmp    $0x3,%dl
553a8a:	73 07                	jae    0x553a93
553a8c:	81 4b 28 00 10 00 00 	orl    $0x1000,0x28(%ebx)
553a93:	59                   	pop    %ecx
553a94:	5a                   	pop    %edx
553a95:	5b                   	pop    %ebx
553a96:	c3                   	ret
553a97:	90                   	nop
553a98:	55                   	push   %ebp
553a99:	8b ec                	mov    %esp,%ebp
553a9b:	83 c4 f0             	add    $0xfffffff0,%esp
553a9e:	53                   	push   %ebx
553a9f:	56                   	push   %esi
553aa0:	57                   	push   %edi
553aa1:	89 55 fc             	mov    %edx,-0x4(%ebp)
553aa4:	8b 75 08             	mov    0x8(%ebp),%esi
553aa7:	8b d8                	mov    %eax,%ebx
553aa9:	33 d2                	xor    %edx,%edx
553aab:	8b 45 0c             	mov    0xc(%ebp),%eax
553aae:	89 56 0c             	mov    %edx,0xc(%esi)
553ab1:	8b f9                	mov    %ecx,%edi
553ab3:	33 c9                	xor    %ecx,%ecx
553ab5:	89 56 08             	mov    %edx,0x8(%esi)
553ab8:	33 d2                	xor    %edx,%edx
553aba:	89 4e 10             	mov    %ecx,0x10(%esi)
553abd:	89 16                	mov    %edx,(%esi)
553abf:	83 f8 ff             	cmp    $0xffffffff,%eax
553ac2:	75 0f                	jne    0x553ad3
553ac4:	8b 45 fc             	mov    -0x4(%ebp),%eax
553ac7:	89 06                	mov    %eax,(%esi)
553ac9:	8b c7                	mov    %edi,%eax
553acb:	89 46 04             	mov    %eax,0x4(%esi)
553ace:	e9 0c 02 00 00       	jmp    0x553cdf
553ad3:	83 f8 03             	cmp    $0x3,%eax
553ad6:	7c 0c                	jl     0x553ae4
553ad8:	ba 68 cc 69 00       	mov    $0x69cc68,%edx
553add:	8b c3                	mov    %ebx,%eax
553adf:	e8 04 e2 ff ff       	call   0x551ce8
553ae4:	89 7b 38             	mov    %edi,0x38(%ebx)
553ae7:	8b 55 fc             	mov    -0x4(%ebp),%edx
553aea:	89 53 34             	mov    %edx,0x34(%ebx)
553aed:	8b 4b 70             	mov    0x70(%ebx),%ecx
553af0:	89 4b 44             	mov    %ecx,0x44(%ebx)
553af3:	8b 43 6c             	mov    0x6c(%ebx),%eax
553af6:	89 43 40             	mov    %eax,0x40(%ebx)
553af9:	8d 43 34             	lea    0x34(%ebx),%eax
553afc:	33 d2                	xor    %edx,%edx
553afe:	e8 61 32 fd ff       	call   0x526d64
553b03:	8b f8                	mov    %eax,%edi
553b05:	85 ff                	test   %edi,%edi
553b07:	74 1e                	je     0x553b27
553b09:	8b 43 4c             	mov    0x4c(%ebx),%eax
553b0c:	85 c0                	test   %eax,%eax
553b0e:	74 0b                	je     0x553b1b
553b10:	8b d0                	mov    %eax,%edx
553b12:	8b c3                	mov    %ebx,%eax
553b14:	e8 33 e1 ff ff       	call   0x551c4c
553b19:	eb 0c                	jmp    0x553b27
553b1b:	ba 81 cc 69 00       	mov    $0x69cc81,%edx
553b20:	8b c3                	mov    %ebx,%eax
553b22:	e8 25 e1 ff ff       	call   0x551c4c
553b27:	8b 53 44             	mov    0x44(%ebx),%edx
553b2a:	85 d2                	test   %edx,%edx
553b2c:	0f 85 a2 00 00 00    	jne    0x553bd4
553b32:	8b 4b 38             	mov    0x38(%ebx),%ecx
553b35:	85 c9                	test   %ecx,%ecx
553b37:	0f 84 97 00 00 00    	je     0x553bd4
553b3d:	8b 46 0c             	mov    0xc(%esi),%eax
553b40:	8b 56 08             	mov    0x8(%esi),%edx
553b43:	3b c2                	cmp    %edx,%eax
553b45:	7f 51                	jg     0x553b98
553b47:	89 45 f8             	mov    %eax,-0x8(%ebp)
553b4a:	83 c2 04             	add    $0x4,%edx
553b4d:	89 56 0c             	mov    %edx,0xc(%esi)
553b50:	8b 46 10             	mov    0x10(%esi),%eax
553b53:	85 c0                	test   %eax,%eax
553b55:	74 31                	je     0x553b88
553b57:	8b f8                	mov    %eax,%edi
553b59:	8b 56 0c             	mov    0xc(%esi),%edx
553b5c:	c1 e2 02             	shl    $0x2,%edx
553b5f:	8b c3                	mov    %ebx,%eax
553b61:	e8 8e df ff ff       	call   0x551af4
553b66:	89 46 10             	mov    %eax,0x10(%esi)
553b69:	8b 4d f8             	mov    -0x8(%ebp),%ecx
553b6c:	c1 e1 02             	shl    $0x2,%ecx
553b6f:	51                   	push   %ecx
553b70:	57                   	push   %edi
553b71:	8b 46 10             	mov    0x10(%esi),%eax
553b74:	50                   	push   %eax
553b75:	e8 66 28 fd ff       	call   0x5263e0
553b7a:	83 c4 0c             	add    $0xc,%esp
553b7d:	8b d7                	mov    %edi,%edx
553b7f:	8b c3                	mov    %ebx,%eax
553b81:	e8 e2 df ff ff       	call   0x551b68
553b86:	eb 10                	jmp    0x553b98
553b88:	8b 56 0c             	mov    0xc(%esi),%edx
553b8b:	8b c3                	mov    %ebx,%eax
553b8d:	c1 e2 02             	shl    $0x2,%edx
553b90:	e8 5f df ff ff       	call   0x551af4
553b95:	89 46 10             	mov    %eax,0x10(%esi)
553b98:	8b 53 70             	mov    0x70(%ebx),%edx
553b9b:	8b c3                	mov    %ebx,%eax
553b9d:	e8 52 df ff ff       	call   0x551af4
553ba2:	8b 56 10             	mov    0x10(%esi),%edx
553ba5:	8b 4e 08             	mov    0x8(%esi),%ecx
553ba8:	89 04 8a             	mov    %eax,(%edx,%ecx,4)
553bab:	8b 43 70             	mov    0x70(%ebx),%eax
553bae:	50                   	push   %eax
553baf:	8b 53 6c             	mov    0x6c(%ebx),%edx
553bb2:	52                   	push   %edx
553bb3:	8b 4e 10             	mov    0x10(%esi),%ecx
553bb6:	8b 46 08             	mov    0x8(%esi),%eax
553bb9:	8b 14 81             	mov    (%ecx,%eax,4),%edx
553bbc:	52                   	push   %edx
553bbd:	e8 1e 28 fd ff       	call   0x5263e0
553bc2:	83 c4 0c             	add    $0xc,%esp
553bc5:	ff 46 08             	incl   0x8(%esi)
553bc8:	8b 4b 70             	mov    0x70(%ebx),%ecx
553bcb:	89 4b 44             	mov    %ecx,0x44(%ebx)
553bce:	8b 43 6c             	mov    0x6c(%ebx),%eax
553bd1:	89 43 40             	mov    %eax,0x40(%ebx)
553bd4:	8b 53 38             	mov    0x38(%ebx),%edx
553bd7:	85 d2                	test   %edx,%edx
553bd9:	0f 85 1a ff ff ff    	jne    0x553af9
553bdf:	8d 43 34             	lea    0x34(%ebx),%eax