55f881:	73 0f                	jae    0x55f892
55f883:	66 8b 48 2c          	mov    0x2c(%eax),%cx
55f887:	45                   	inc    %ebp
55f888:	d3 e5                	shl    %cl,%ebp
55f88a:	8b 4c 24 10          	mov    0x10(%esp),%ecx
55f88e:	03 e9                	add    %ecx,%ebp
55f890:	eb 03                	jmp    0x55f895
55f892:	8b 6e 08             	mov    0x8(%esi),%ebp
55f895:	89 6c 24 0c          	mov    %ebp,0xc(%esp)
55f899:	66 8b 48 2e          	mov    0x2e(%eax),%cx
55f89d:	8d 7a 01             	lea    0x1(%edx),%edi
55f8a0:	d3 e7                	shl    %cl,%edi
55f8a2:	8b 4c 24 14          	mov    0x14(%esp),%ecx
55f8a6:	03 f9                	add    %ecx,%edi
55f8a8:	8b 4e 0c             	mov    0xc(%esi),%ecx
55f8ab:	3b f9                	cmp    %ecx,%edi
55f8ad:	73 0f                	jae    0x55f8be
55f8af:	66 8b 48 2e          	mov    0x2e(%eax),%cx
55f8b3:	42                   	inc    %edx
55f8b4:	d3 e2                	shl    %cl,%edx
55f8b6:	8b 44 24 14          	mov    0x14(%esp),%eax
55f8ba:	03 d0                	add    %eax,%edx
55f8bc:	eb 03                	jmp    0x55f8c1
55f8be:	8b 56 0c             	mov    0xc(%esi),%edx
55f8c1:	8b f2                	mov    %edx,%esi
55f8c3:	8b 44 24 04          	mov    0x4(%esp),%eax
55f8c7:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
55f8cb:	3b c1                	cmp    %ecx,%eax
55f8cd:	73 08                	jae    0x55f8d7
55f8cf:	8b 44 24 08          	mov    0x8(%esp),%eax
55f8d3:	3b f0                	cmp    %eax,%esi
55f8d5:	77 17                	ja     0x55f8ee
55f8d7:	68 15 0a 00 00       	push   $0xa15
55f8dc:	68 58 e4 69 00       	push   $0x69e458
55f8e1:	68 31 e4 69 00       	push   $0x69e431
55f8e6:	e8 55 b2 ff ff       	call   0x55ab40
55f8eb:	83 c4 0c             	add    $0xc,%esp
55f8ee:	6a 00                	push   $0x0
55f8f0:	33 c9                	xor    %ecx,%ecx
55f8f2:	33 d2                	xor    %edx,%edx
55f8f4:	33 c0                	xor    %eax,%eax
55f8f6:	e8 5d 83 01 00       	call   0x577c58
55f8fb:	8b e8                	mov    %eax,%ebp
55f8fd:	89 6b 1c             	mov    %ebp,0x1c(%ebx)
55f900:	85 ed                	test   %ebp,%ebp
55f902:	74 21                	je     0x55f925
55f904:	8b 44 24 08          	mov    0x8(%esp),%eax
55f908:	50                   	push   %eax
55f909:	8b 54 24 10          	mov    0x10(%esp),%edx
55f90d:	52                   	push   %edx
55f90e:	56                   	push   %esi
55f90f:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
55f913:	8b 51 04             	mov    0x4(%ecx),%edx
55f916:	8b 4c 24 10          	mov    0x10(%esp),%ecx
55f91a:	8b c5                	mov    %ebp,%eax
55f91c:	e8 6b 85 01 00       	call   0x577e8c
55f921:	8b c3                	mov    %ebx,%eax
55f923:	eb 09                	jmp    0x55f92e
55f925:	8b c3                	mov    %ebx,%eax
55f927:	e8 0c 00 00 00       	call   0x55f938
55f92c:	33 c0                	xor    %eax,%eax
55f92e:	83 c4 18             	add    $0x18,%esp
55f931:	5d                   	pop    %ebp
55f932:	5f                   	pop    %edi
55f933:	5e                   	pop    %esi
55f934:	5b                   	pop    %ebx
55f935:	c3                   	ret
55f936:	90                   	nop
55f937:	90                   	nop
55f938:	53                   	push   %ebx
55f939:	8b d8                	mov    %eax,%ebx
55f93b:	56                   	push   %esi
55f93c:	57                   	push   %edi
55f93d:	8b 43 04             	mov    0x4(%ebx),%eax
55f940:	85 c0                	test   %eax,%eax
55f942:	74 22                	je     0x55f966
55f944:	33 ff                	xor    %edi,%edi
55f946:	8b f0                	mov    %eax,%esi
55f948:	eb 0b                	jmp    0x55f955
55f94a:	8b c6                	mov    %esi,%eax
55f94c:	e8 4b 00 00 00       	call   0x55f99c
55f951:	47                   	inc    %edi
55f952:	83 c6 48             	add    $0x48,%esi
55f955:	0f b7 d7             	movzwl %di,%edx
55f958:	8b 0b                	mov    (%ebx),%ecx
55f95a:	3b d1                	cmp    %ecx,%edx
55f95c:	7c ec                	jl     0x55f94a
55f95e:	8b 43 04             	mov    0x4(%ebx),%eax
55f961:	e8 1e 8a 01 00       	call   0x578384
55f966:	8b 43 14             	mov    0x14(%ebx),%eax
55f969:	85 c0                	test   %eax,%eax
55f96b:	74 05                	je     0x55f972
55f96d:	e8 ca 8d 01 00       	call   0x57873c
55f972:	8b 43 18             	mov    0x18(%ebx),%eax
55f975:	85 c0                	test   %eax,%eax
55f977:	74 05                	je     0x55f97e
55f979:	e8 1a 27 01 00       	call   0x572098
55f97e:	8b 43 1c             	mov    0x1c(%ebx),%eax
55f981:	85 c0                	test   %eax,%eax
55f983:	74 05                	je     0x55f98a
55f985:	e8 0a 84 01 00       	call   0x577d94
55f98a:	8b 43 20             	mov    0x20(%ebx),%eax
55f98d:	85 c0                	test   %eax,%eax
55f98f:	74 05                	je     0x55f996
55f991:	e8 fe 83 01 00       	call   0x577d94
55f996:	5f                   	pop    %edi
55f997:	5e                   	pop    %esi
55f998:	5b                   	pop    %ebx
55f999:	c3                   	ret
55f99a:	90                   	nop
55f99b:	90                   	nop
55f99c:	c3                   	ret
55f99d:	90                   	nop
55f99e:	90                   	nop
55f99f:	90                   	nop
55f9a0:	53                   	push   %ebx
55f9a1:	56                   	push   %esi
55f9a2:	57                   	push   %edi
55f9a3:	55                   	push   %ebp
55f9a4:	83 c4 e8             	add    $0xffffffe8,%esp
55f9a7:	8b 40 0c             	mov    0xc(%eax),%eax
55f9aa:	89 04 24             	mov    %eax,(%esp)
55f9ad:	66 c7 44 24 0c 00 00 	movw   $0x0,0xc(%esp)
55f9b4:	8b 14 24             	mov    (%esp),%edx
55f9b7:	8b 4a 2c             	mov    0x2c(%edx),%ecx
55f9ba:	89 4c 24 04          	mov    %ecx,0x4(%esp)
55f9be:	e9 7e 01 00 00       	jmp    0x55fb41
55f9c3:	8b 44 24 04          	mov    0x4(%esp),%eax
55f9c7:	8b 40 08             	mov    0x8(%eax),%eax
55f9ca:	8b 50 10             	mov    0x10(%eax),%edx
55f9cd:	52                   	push   %edx
55f9ce:	8b 48 0c             	mov    0xc(%eax),%ecx
55f9d1:	51                   	push   %ecx
55f9d2:	8b 50 08             	mov    0x8(%eax),%edx
55f9d5:	52                   	push   %edx
55f9d6:	8b 40 04             	mov    0x4(%eax),%eax
55f9d9:	50                   	push   %eax
55f9da:	68 62 e4 69 00       	push   $0x69e462
55f9df:	68 80 2e 6a 00       	push   $0x6a2e80
55f9e4:	e8 e3 a6 01 00       	call   0x57a0cc
55f9e9:	83 c4 18             	add    $0x18,%esp
55f9ec:	66 c7 44 24 0e 00 00 	movw   $0x0,0xe(%esp)
55f9f3:	8b 4c 24 04          	mov    0x4(%esp),%ecx
55f9f7:	8b 41 04             	mov    0x4(%ecx),%eax
55f9fa:	89 44 24 08          	mov    %eax,0x8(%esp)
55f9fe:	e9 1f 01 00 00       	jmp    0x55fb22
55fa03:	8b 54 24 08          	mov    0x8(%esp),%edx
55fa07:	8b 4a 0c             	mov    0xc(%edx),%ecx
55fa0a:	51                   	push   %ecx
55fa0b:	8b 44 24 0c          	mov    0xc(%esp),%eax
55fa0f:	8b 50 08             	mov    0x8(%eax),%edx
55fa12:	52                   	push   %edx
55fa13:	8b 4c 24 10          	mov    0x10(%esp),%ecx
55fa17:	8b 41 04             	mov    0x4(%ecx),%eax
55fa1a:	50                   	push   %eax
55fa1b:	8b 54 24 14          	mov    0x14(%esp),%edx
55fa1f:	8b 0a                	mov    (%edx),%ecx
55fa21:	51                   	push   %ecx
55fa22:	68 7b e4 69 00       	push   $0x69e47b
55fa27:	68 80 2e 6a 00       	push   $0x6a2e80
55fa2c:	e8 9b a6 01 00       	call   0x57a0cc
55fa31:	83 c4 18             	add    $0x18,%esp
55fa34:	66 c7 44 24 10 00 00 	movw   $0x0,0x10(%esp)
55fa3b:	8b 44 24 08          	mov    0x8(%esp),%eax
55fa3f:	8b 78 34             	mov    0x34(%eax),%edi
55fa42:	e9 bd 00 00 00       	jmp    0x55fb04
55fa47:	8b 47 04             	mov    0x4(%edi),%eax
55fa4a:	85 c0                	test   %eax,%eax
55fa4c:	0f 84 aa 00 00 00    	je     0x55fafc
55fa52:	8b 50 10             	mov    0x10(%eax),%edx
55fa55:	52                   	push   %edx
55fa56:	8b 48 0c             	mov    0xc(%eax),%ecx
55fa59:	51                   	push   %ecx
55fa5a:	8b 50 08             	mov    0x8(%eax),%edx
55fa5d:	52                   	push   %edx
55fa5e:	8b 40 04             	mov    0x4(%eax),%eax
55fa61:	50                   	push   %eax
55fa62:	68 95 e4 69 00       	push   $0x69e495
55fa67:	68 80 2e 6a 00       	push   $0x6a2e80
55fa6c:	e8 5b a6 01 00       	call   0x57a0cc
55fa71:	83 c4 18             	add    $0x18,%esp
55fa74:	33 c9                	xor    %ecx,%ecx
55fa76:	89 4c 24 14          	mov    %ecx,0x14(%esp)
55fa7a:	8b 1f                	mov    (%edi),%ebx
55fa7c:	eb 6f                	jmp    0x55faed
55fa7e:	8b 73 0c             	mov    0xc(%ebx),%esi
55fa81:	8b ce                	mov    %esi,%ecx
55fa83:	8b 6b 04             	mov    0x4(%ebx),%ebp
55fa86:	2b cd                	sub    %ebp,%ecx
55fa88:	51                   	push   %ecx
55fa89:	8b 43 08             	mov    0x8(%ebx),%eax
55fa8c:	8b c8                	mov    %eax,%ecx
55fa8e:	8b 13                	mov    (%ebx),%edx
55fa90:	2b ca                	sub    %edx,%ecx
55fa92:	51                   	push   %ecx
55fa93:	56                   	push   %esi
55fa94:	50                   	push   %eax
55fa95:	55                   	push   %ebp
55fa96:	52                   	push   %edx
55fa97:	68 b1 e4 69 00       	push   $0x69e4b1
55fa9c:	68 80 2e 6a 00       	push   $0x6a2e80
55faa1:	e8 26 a6 01 00       	call   0x57a0cc
55faa6:	83 c4 20             	add    $0x20,%esp
55faa9:	8b 43 1c             	mov    0x1c(%ebx),%eax
55faac:	85 c0                	test   %eax,%eax
55faae:	74 36                	je     0x55fae6
55fab0:	33 ed                	xor    %ebp,%ebp
55fab2:	8b f0                	mov    %eax,%esi
55fab4:	eb 29                	jmp    0x55fadf
55fab6:	8b 46 1c             	mov    0x1c(%esi),%eax
55fab9:	8b 50 10             	mov    0x10(%eax),%edx
55fabc:	52                   	push   %edx
55fabd:	8b 48 0c             	mov    0xc(%eax),%ecx
55fac0:	51                   	push   %ecx
55fac1:	8b 50 08             	mov    0x8(%eax),%edx
55fac4:	52                   	push   %edx
55fac5:	8b 40 04             	mov    0x4(%eax),%eax
55fac8:	50                   	push   %eax
55fac9:	68 d8 e4 69 00       	push   $0x69e4d8
55face:	68 80 2e 6a 00       	push   $0x6a2e80
55fad3:	e8 f4 a5 01 00       	call   0x57a0cc
55fad8:	83 c4 18             	add    $0x18,%esp
55fadb:	45                   	inc    %ebp
55fadc:	83 c6 3c             	add    $0x3c,%esi
55fadf:	8b 4b 18             	mov    0x18(%ebx),%ecx
55fae2:	3b e9                	cmp    %ecx,%ebp
55fae4:	72 d0                	jb     0x55fab6
55fae6:	ff 44 24 14          	incl   0x14(%esp)
55faea:	83 c3 34             	add    $0x34,%ebx
55faed:	8b 44 24 08          	mov    0x8(%esp),%eax
55faf1:	8b 50 20             	mov    0x20(%eax),%edx
55faf4:	8b 4c 24 14          	mov    0x14(%esp),%ecx
55faf8:	3b d1                	cmp    %ecx,%edx
55fafa:	77 82                	ja     0x55fa7e
55fafc:	66 ff 44 24 10       	incw   0x10(%esp)
55fb01:	83 c7 24             	add    $0x24,%edi
55fb04:	0f b7 44 24 10       	movzwl 0x10(%esp),%eax
55fb09:	8b 54 24 08          	mov    0x8(%esp),%edx
55fb0d:	8b 4a 30             	mov    0x30(%edx),%ecx
55fb10:	3b c1                	cmp    %ecx,%eax
55fb12:	0f 8c 2f ff ff ff    	jl     0x55fa47
55fb18:	66 ff 44 24 0e       	incw   0xe(%esp)
55fb1d:	83 44 24 08 3c       	addl   $0x3c,0x8(%esp)
55fb22:	8b 44 24 04          	mov    0x4(%esp),%eax
55fb26:	66 8b 10             	mov    (%eax),%dx
55fb29:	66 3b 54 24 0e       	cmp    0xe(%esp),%dx
55fb2e:	0f 87 cf fe ff ff    	ja     0x55fa03
55fb34:	66 ff 44 24 0c       	incw   0xc(%esp)
55fb39:	81 44 24 04 04 02 00 	addl   $0x204,0x4(%esp)
55fb40:	00
55fb41:	0f b7 4c 24 0c       	movzwl 0xc(%esp),%ecx
55fb46:	8b 04 24             	mov    (%esp),%eax
55fb49:	8b 50 28             	mov    0x28(%eax),%edx
55fb4c:	3b ca                	cmp    %edx,%ecx
55fb4e:	0f 8c 6f fe ff ff    	jl     0x55f9c3
55fb54:	83 c4 18             	add    $0x18,%esp
55fb57:	5d                   	pop    %ebp
55fb58:	5f                   	pop    %edi
55fb59:	5e                   	pop    %esi
55fb5a:	5b                   	pop    %ebx
55fb5b:	c3                   	ret
55fb5c:	53                   	push   %ebx
55fb5d:	56                   	push   %esi
55fb5e:	83 c4 f4             	add    $0xfffffff4,%esp
55fb61:	8b f0                	mov    %eax,%esi
55fb63:	33 db                	xor    %ebx,%ebx
55fb65:	8b c4                	mov    %esp,%eax
55fb67:	8b c8                	mov    %eax,%ecx
55fb69:	8b c2                	mov    %edx,%eax
55fb6b:	8b d1                	mov    %ecx,%edx
55fb6d:	e8 8a 00 00 00       	call   0x55fbfc
55fb72:	85 c0                	test   %eax,%eax
55fb74:	75 73                	jne    0x55fbe9
55fb76:	e8 79 d4 00 00       	call   0x56cff4
55fb7b:	8b c4                	mov    %esp,%eax
55fb7d:	8b d6                	mov    %esi,%edx
55fb7f:	e8 58 29 00 00       	call   0x5624dc
55fb84:	8b d8                	mov    %eax,%ebx
55fb86:	85 c0                	test   %eax,%eax
55fb88:	74 5f                	je     0x55fbe9
55fb8a:	8b c3                	mov    %ebx,%eax
55fb8c:	e8 5b 01 00 00       	call   0x55fcec
55fb91:	85 c0                	test   %eax,%eax
55fb93:	75 54                	jne    0x55fbe9
55fb95:	8b 03                	mov    (%ebx),%eax
55fb97:	66 83 78 10 03       	cmpw   $0x3,0x10(%eax)
55fb9c:	72 27                	jb     0x55fbc5
55fb9e:	c7 40 18 02 00 00 00 	movl   $0x2,0x18(%eax)
55fba5:	8b 50 14             	mov    0x14(%eax),%edx
55fba8:	8b 0a                	mov    (%edx),%ecx
55fbaa:	33 c0                	xor    %eax,%eax
55fbac:	89 41 24             	mov    %eax,0x24(%ecx)
55fbaf:	8b 4a 04             	mov    0x4(%edx),%ecx
55fbb2:	c7 41 24 01 00 00 00 	movl   $0x1,0x24(%ecx)
55fbb9:	8b 52 08             	mov    0x8(%edx),%edx
55fbbc:	c7 42 24 02 00 00 00 	movl   $0x2,0x24(%edx)
55fbc3:	eb 13                	jmp    0x55fbd8
55fbc5:	8b 03                	mov    (%ebx),%eax
55fbc7:	c7 40 18 01 00 00 00 	movl   $0x1,0x18(%eax)
55fbce:	8b 50 14             	mov    0x14(%eax),%edx
55fbd1:	8b 0a                	mov    (%edx),%ecx
55fbd3:	33 c0                	xor    %eax,%eax
55fbd5:	89 41 24             	mov    %eax,0x24(%ecx)
55fbd8:	8b 33                	mov    (%ebx),%esi
55fbda:	33 c0                	xor    %eax,%eax
55fbdc:	89 03                	mov    %eax,(%ebx)
55fbde:	8b c3                	mov    %ebx,%eax
55fbe0:	e8 9f 29 00 00       	call   0x562584
55fbe5:	8b c6                	mov    %esi,%eax
55fbe7:	eb 0d                	jmp    0x55fbf6
55fbe9:	85 db                	test   %ebx,%ebx
55fbeb:	74 07                	je     0x55fbf4
55fbed:	8b c3                	mov    %ebx,%eax
55fbef:	e8 90 29 00 00       	call   0x562584
55fbf4:	33 c0                	xor    %eax,%eax
55fbf6:	83 c4 0c             	add    $0xc,%esp
55fbf9:	5e                   	pop    %esi
55fbfa:	5b                   	pop    %ebx
55fbfb:	c3                   	ret
55fbfc:	53                   	push   %ebx
55fbfd:	56                   	push   %esi
55fbfe:	57                   	push   %edi
55fbff:	8b f2                	mov    %edx,%esi
55fc01:	8b f8                	mov    %eax,%edi
55fc03:	33 c0                	xor    %eax,%eax
55fc05:	89 06                	mov    %eax,(%esi)
55fc07:	c7 46 04 00 40 00 00 	movl   $0x4000,0x4(%esi)
55fc0e:	c7 46 08 ff ff ff ff 	movl   $0xffffffff,0x8(%esi)
55fc15:	85 ff                	test   %edi,%edi
55fc17:	74 04                	je     0x55fc1d
55fc19:	8b c7                	mov    %edi,%eax
55fc1b:	eb 05                	jmp    0x55fc22
55fc1d:	b8 1e e6 69 00       	mov    $0x69e61e,%eax
55fc22:	e8 d9 3b 01 00       	call   0x573800
55fc27:	8b d8                	mov    %eax,%ebx
55fc29:	85 c0                	test   %eax,%eax
55fc2b:	0f 85 80 00 00 00    	jne    0x55fcb1
55fc31:	83 c8 ff             	or     $0xffffffff,%eax
55fc34:	e9 90 00 00 00       	jmp    0x55fcc9
55fc39:	8b c3                	mov    %ebx,%eax
55fc3b:	e8 30 3d 01 00       	call   0x573970
55fc40:	8b d0                	mov    %eax,%edx
55fc42:	b8 e8 e5 69 00       	mov    $0x69e5e8,%eax
55fc47:	e8 2c 3d 01 00       	call   0x573978
55fc4c:	e8 67 3d 01 00       	call   0x5739b8
55fc51:	8b 10                	mov    (%eax),%edx
55fc53:	83 ea 01             	sub    $0x1,%edx
55fc56:	72 07                	jb     0x55fc5f
55fc58:	74 2a                	je     0x55fc84
55fc5a:	4a                   	dec    %edx