557e83:	3b f0                	cmp    %eax,%esi
557e85:	7c 8e                	jl     0x557e15
557e87:	8d 44 24 10          	lea    0x10(%esp),%eax
557e8b:	50                   	push   %eax
557e8c:	57                   	push   %edi
557e8d:	e8 6e f3 ff ff       	call   0x557200
557e92:	83 c4 04             	add    $0x4,%esp
557e95:	50                   	push   %eax
557e96:	53                   	push   %ebx
557e97:	e8 e4 02 00 00       	call   0x558180
557e9c:	83 c4 0c             	add    $0xc,%esp
557e9f:	eb 15                	jmp    0x557eb6
557ea1:	b8 38 00 00 00       	mov    $0x38,%eax
557ea6:	eb 36                	jmp    0x557ede
557ea8:	b8 3a 00 00 00       	mov    $0x3a,%eax
557ead:	eb 05                	jmp    0x557eb4
557eaf:	b8 39 00 00 00       	mov    $0x39,%eax
557eb4:	33 f6                	xor    %esi,%esi
557eb6:	85 c0                	test   %eax,%eax
557eb8:	74 2e                	je     0x557ee8
557eba:	83 f8 3b             	cmp    $0x3b,%eax
557ebd:	74 05                	je     0x557ec4
557ebf:	83 f8 3c             	cmp    $0x3c,%eax
557ec2:	75 1a                	jne    0x557ede
557ec4:	85 f6                	test   %esi,%esi
557ec6:	74 01                	je     0x557ec9
557ec8:	4e                   	dec    %esi
557ec9:	83 f8 3c             	cmp    $0x3c,%eax
557ecc:	75 10                	jne    0x557ede
557ece:	8b 4c 24 28          	mov    0x28(%esp),%ecx
557ed2:	ba 3d 00 00 00       	mov    $0x3d,%edx
557ed7:	3b 4c 24 10          	cmp    0x10(%esp),%ecx
557edb:	0f 45 c2             	cmovne %edx,%eax
557ede:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
557ee2:	85 c9                	test   %ecx,%ecx
557ee4:	74 02                	je     0x557ee8
557ee6:	89 31                	mov    %esi,(%ecx)
557ee8:	5f                   	pop    %edi
557ee9:	5e                   	pop    %esi
557eea:	5d                   	pop    %ebp
557eeb:	5b                   	pop    %ebx
557eec:	83 c4 08             	add    $0x8,%esp
557eef:	c3                   	ret
557ef0:	57                   	push   %edi
557ef1:	ff 74 24 08          	push   0x8(%esp)
557ef5:	e8 d6 ce f8 ff       	call   0x4e4dd0
557efa:	8b f8                	mov    %eax,%edi
557efc:	83 c4 04             	add    $0x4,%esp
557eff:	85 ff                	test   %edi,%edi
557f01:	75 02                	jne    0x557f05
557f03:	5f                   	pop    %edi
557f04:	c3                   	ret
557f05:	56                   	push   %esi
557f06:	57                   	push   %edi
557f07:	33 f6                	xor    %esi,%esi
557f09:	e8 b2 d1 f8 ff       	call   0x4e50c0
557f0e:	83 c4 04             	add    $0x4,%esp
557f11:	85 c0                	test   %eax,%eax
557f13:	7e 22                	jle    0x557f37
557f15:	56                   	push   %esi
557f16:	57                   	push   %edi
557f17:	e8 64 d3 f8 ff       	call   0x4e5280
557f1c:	50                   	push   %eax
557f1d:	e8 8e 8f fc ff       	call   0x520eb0
557f22:	83 c4 0c             	add    $0xc,%esp
557f25:	85 c0                	test   %eax,%eax
557f27:	74 13                	je     0x557f3c
557f29:	57                   	push   %edi
557f2a:	46                   	inc    %esi
557f2b:	e8 90 d1 f8 ff       	call   0x4e50c0
557f30:	83 c4 04             	add    $0x4,%esp
557f33:	3b f0                	cmp    %eax,%esi
557f35:	7c de                	jl     0x557f15
557f37:	5e                   	pop    %esi
557f38:	8b c7                	mov    %edi,%eax
557f3a:	5f                   	pop    %edi
557f3b:	c3                   	ret
557f3c:	85 f6                	test   %esi,%esi
557f3e:	7e 15                	jle    0x557f55
557f40:	4e                   	dec    %esi
557f41:	56                   	push   %esi
557f42:	57                   	push   %edi
557f43:	e8 38 d3 f8 ff       	call   0x4e5280
557f48:	50                   	push   %eax
557f49:	e8 92 f2 ff ff       	call   0x5571e0
557f4e:	83 c4 0c             	add    $0xc,%esp
557f51:	85 f6                	test   %esi,%esi
557f53:	7f eb                	jg     0x557f40
557f55:	57                   	push   %edi
557f56:	e8 c5 cf f8 ff       	call   0x4e4f20
557f5b:	83 c4 04             	add    $0x4,%esp
557f5e:	33 c0                	xor    %eax,%eax
557f60:	5e                   	pop    %esi
557f61:	5f                   	pop    %edi
557f62:	c3                   	ret
557f63:	cc                   	int3
557f64:	cc                   	int3
557f65:	cc                   	int3
557f66:	cc                   	int3
557f67:	cc                   	int3
557f68:	cc                   	int3
557f69:	cc                   	int3
557f6a:	cc                   	int3
557f6b:	cc                   	int3
557f6c:	cc                   	int3
557f6d:	cc                   	int3
557f6e:	cc                   	int3
557f6f:	cc                   	int3
557f70:	8b 44 24 04          	mov    0x4(%esp),%eax
557f74:	85 c0                	test   %eax,%eax
557f76:	74 6e                	je     0x557fe6
557f78:	ff 70 2c             	push   0x2c(%eax)
557f7b:	e8 f0 3d f8 ff       	call   0x4dbd70
557f80:	83 c4 04             	add    $0x4,%esp
557f83:	85 c0                	test   %eax,%eax
557f85:	74 5f                	je     0x557fe6
557f87:	ff 74 24 08          	push   0x8(%esp)
557f8b:	50                   	push   %eax
557f8c:	e8 df 8b f9 ff       	call   0x4f0b70
557f91:	83 c4 08             	add    $0x8,%esp
557f94:	83 f8 fe             	cmp    $0xfffffffe,%eax
557f97:	74 4d                	je     0x557fe6
557f99:	83 f8 ff             	cmp    $0xffffffff,%eax
557f9c:	74 2a                	je     0x557fc8
557f9e:	85 c0                	test   %eax,%eax
557fa0:	75 1e                	jne    0x557fc0
557fa2:	68 2b 01 00 00       	push   $0x12b
557fa7:	68 48 f0 64 00       	push   $0x64f048
557fac:	6a 74                	push   $0x74
557fae:	68 80 00 00 00       	push   $0x80
557fb3:	6a 0b                	push   $0xb
557fb5:	e8 c6 0f f8 ff       	call   0x4d8f80
557fba:	83 c4 14             	add    $0x14,%esp
557fbd:	33 c0                	xor    %eax,%eax
557fbf:	c3                   	ret
557fc0:	7e 3f                	jle    0x558001
557fc2:	b8 01 00 00 00       	mov    $0x1,%eax
557fc7:	c3                   	ret
557fc8:	68 2e 01 00 00       	push   $0x12e
557fcd:	68 48 f0 64 00       	push   $0x64f048
557fd2:	6a 73                	push   $0x73
557fd4:	68 80 00 00 00       	push   $0x80
557fd9:	6a 0b                	push   $0xb
557fdb:	e8 a0 0f f8 ff       	call   0x4d8f80
557fe0:	83 c4 14             	add    $0x14,%esp
557fe3:	33 c0                	xor    %eax,%eax
557fe5:	c3                   	ret
557fe6:	68 31 01 00 00       	push   $0x131
557feb:	68 48 f0 64 00       	push   $0x64f048
557ff0:	6a 75                	push   $0x75
557ff2:	68 80 00 00 00       	push   $0x80
557ff7:	6a 0b                	push   $0xb
557ff9:	e8 82 0f f8 ff       	call   0x4d8f80
557ffe:	83 c4 14             	add    $0x14,%esp
558001:	33 c0                	xor    %eax,%eax
558003:	c3                   	ret
558004:	cc                   	int3
558005:	cc                   	int3
558006:	cc                   	int3
558007:	cc                   	int3
558008:	cc                   	int3
558009:	cc                   	int3
55800a:	cc                   	int3
55800b:	cc                   	int3
55800c:	cc                   	int3
55800d:	cc                   	int3
55800e:	cc                   	int3
55800f:	cc                   	int3
558010:	53                   	push   %ebx
558011:	8b 5c 24 0c          	mov    0xc(%esp),%ebx
558015:	56                   	push   %esi
558016:	57                   	push   %edi
558017:	8b 7c 24 10          	mov    0x10(%esp),%edi
55801b:	3b fb                	cmp    %ebx,%edi
55801d:	0f 84 03 01 00 00    	je     0x558126
558023:	6a 00                	push   $0x0
558025:	6a ff                	push   $0xffffffff
558027:	57                   	push   %edi
558028:	e8 e3 44 00 00       	call   0x55c510
55802d:	83 c4 0c             	add    $0xc,%esp
558030:	83 f8 01             	cmp    $0x1,%eax
558033:	0f 85 e4 00 00 00    	jne    0x55811d
558039:	6a 00                	push   $0x0
55803b:	6a ff                	push   $0xffffffff
55803d:	53                   	push   %ebx
55803e:	e8 cd 44 00 00       	call   0x55c510
558043:	83 c4 0c             	add    $0xc,%esp
558046:	83 f8 01             	cmp    $0x1,%eax
558049:	0f 85 ce 00 00 00    	jne    0x55811d
55804f:	8d 93 b0 00 00 00    	lea    0xb0(%ebx),%edx
558055:	8d 8f b0 00 00 00    	lea    0xb0(%edi),%ecx
55805b:	8d 70 0f             	lea    0xf(%eax),%esi
55805e:	66 90                	xchg   %ax,%ax
558060:	8b 01                	mov    (%ecx),%eax
558062:	3b 02                	cmp    (%edx),%eax
558064:	75 0f                	jne    0x558075
558066:	83 c1 04             	add    $0x4,%ecx
558069:	83 c2 04             	add    $0x4,%edx
55806c:	83 ee 04             	sub    $0x4,%esi
55806f:	73 ef                	jae    0x558060
558071:	33 c0                	xor    %eax,%eax
558073:	eb 25                	jmp    0x55809a
558075:	3a 02                	cmp    (%edx),%al
558077:	75 1c                	jne    0x558095
558079:	8a 41 01             	mov    0x1(%ecx),%al
55807c:	3a 42 01             	cmp    0x1(%edx),%al
55807f:	75 14                	jne    0x558095
558081:	8a 41 02             	mov    0x2(%ecx),%al
558084:	3a 42 02             	cmp    0x2(%edx),%al
558087:	75 0c                	jne    0x558095
558089:	8a 41 03             	mov    0x3(%ecx),%al
55808c:	3a 42 03             	cmp    0x3(%edx),%al
55808f:	75 04                	jne    0x558095
558091:	33 c0                	xor    %eax,%eax
558093:	eb 05                	jmp    0x55809a
558095:	1b c0                	sbb    %eax,%eax
558097:	83 c8 01             	or     $0x1,%eax
55809a:	85 c0                	test   %eax,%eax
55809c:	0f 85 86 00 00 00    	jne    0x558128
5580a2:	39 47 44             	cmp    %eax,0x44(%edi)
5580a5:	75 7f                	jne    0x558126
5580a7:	39 43 44             	cmp    %eax,0x44(%ebx)
5580aa:	75 7a                	jne    0x558126
5580ac:	8b 4f 40             	mov    0x40(%edi),%ecx
5580af:	3b 4b 40             	cmp    0x40(%ebx),%ecx
5580b2:	7d 07                	jge    0x5580bb
5580b4:	5f                   	pop    %edi
5580b5:	5e                   	pop    %esi
5580b6:	83 c8 ff             	or     $0xffffffff,%eax
5580b9:	5b                   	pop    %ebx
5580ba:	c3                   	ret
5580bb:	7e 09                	jle    0x5580c6
5580bd:	5f                   	pop    %edi
5580be:	5e                   	pop    %esi
5580bf:	b8 01 00 00 00       	mov    $0x1,%eax
5580c4:	5b                   	pop    %ebx
5580c5:	c3                   	ret
5580c6:	8b 57 3c             	mov    0x3c(%edi),%edx
5580c9:	8b 73 3c             	mov    0x3c(%ebx),%esi
5580cc:	83 e9 04             	sub    $0x4,%ecx
5580cf:	72 11                	jb     0x5580e2
5580d1:	8b 02                	mov    (%edx),%eax
5580d3:	3b 06                	cmp    (%esi),%eax
5580d5:	75 10                	jne    0x5580e7
5580d7:	83 c2 04             	add    $0x4,%edx
5580da:	83 c6 04             	add    $0x4,%esi
5580dd:	83 e9 04             	sub    $0x4,%ecx
5580e0:	73 ef                	jae    0x5580d1
5580e2:	83 f9 fc             	cmp    $0xfffffffc,%ecx
5580e5:	74 3f                	je     0x558126
5580e7:	8a 02                	mov    (%edx),%al
5580e9:	3a 06                	cmp    (%esi),%al
5580eb:	75 27                	jne    0x558114
5580ed:	83 f9 fd             	cmp    $0xfffffffd,%ecx
5580f0:	74 34                	je     0x558126
5580f2:	8a 42 01             	mov    0x1(%edx),%al
5580f5:	3a 46 01             	cmp    0x1(%esi),%al
5580f8:	75 1a                	jne    0x558114
5580fa:	83 f9 fe             	cmp    $0xfffffffe,%ecx
5580fd:	74 27                	je     0x558126
5580ff:	8a 42 02             	mov    0x2(%edx),%al
558102:	3a 46 02             	cmp    0x2(%esi),%al
558105:	75 0d                	jne    0x558114
558107:	83 f9 ff             	cmp    $0xffffffff,%ecx
55810a:	74 1a                	je     0x558126
55810c:	8a 42 03             	mov    0x3(%edx),%al
55810f:	3a 46 03             	cmp    0x3(%esi),%al
558112:	74 12                	je     0x558126
558114:	5f                   	pop    %edi
558115:	1b c0                	sbb    %eax,%eax
558117:	5e                   	pop    %esi
558118:	83 c8 01             	or     $0x1,%eax
55811b:	5b                   	pop    %ebx
55811c:	c3                   	ret
55811d:	5f                   	pop    %edi
55811e:	5e                   	pop    %esi
55811f:	b8 fe ff ff ff       	mov    $0xfffffffe,%eax
558124:	5b                   	pop    %ebx
558125:	c3                   	ret
558126:	33 c0                	xor    %eax,%eax
558128:	5f                   	pop    %edi
558129:	5e                   	pop    %esi
55812a:	5b                   	pop    %ebx
55812b:	c3                   	ret
55812c:	cc                   	int3
55812d:	cc                   	int3
55812e:	cc                   	int3
55812f:	cc                   	int3
558130:	8b 44 24 04          	mov    0x4(%esp),%eax
558134:	85 c0                	test   %eax,%eax
558136:	75 01                	jne    0x558139
558138:	c3                   	ret
558139:	ff 70 2c             	push   0x2c(%eax)
55813c:	e8 2f 3c f8 ff       	call   0x4dbd70
558141:	83 c4 04             	add    $0x4,%esp
558144:	c3                   	ret
558145:	cc                   	int3
558146:	cc                   	int3
558147:	cc                   	int3
558148:	cc                   	int3
558149:	cc                   	int3
55814a:	cc                   	int3
55814b:	cc                   	int3
55814c:	cc                   	int3
55814d:	cc                   	int3
55814e:	cc                   	int3
55814f:	cc                   	int3
558150:	8b 44 24 04          	mov    0x4(%esp),%eax
558154:	83 c0 04             	add    $0x4,%eax
558157:	c3                   	ret
558158:	cc                   	int3
558159:	cc                   	int3
55815a:	cc                   	int3
55815b:	cc                   	int3
55815c:	cc                   	int3
55815d:	cc                   	int3
55815e:	cc                   	int3
55815f:	cc                   	int3
558160:	8b 44 24 08          	mov    0x8(%esp),%eax
558164:	ff 70 28             	push   0x28(%eax)
558167:	8b 44 24 08          	mov    0x8(%esp),%eax
55816b:	ff 70 28             	push   0x28(%eax)
55816e:	e8 dd f9 ff ff       	call   0x557b50
558173:	83 c4 08             	add    $0x8,%esp
558176:	c3                   	ret
558177:	cc                   	int3
558178:	cc                   	int3
558179:	cc                   	int3
55817a:	cc                   	int3
55817b:	cc                   	int3
55817c:	cc                   	int3
55817d:	cc                   	int3
55817e:	cc                   	int3
55817f:	cc                   	int3
558180:	56                   	push   %esi
558181:	8b 74 24 08          	mov    0x8(%esp),%esi
558185:	85 f6                	test   %esi,%esi
558187:	0f 84 97 00 00 00    	je     0x558224
55818d:	56                   	push   %esi
55818e:	e8 2d 7f f9 ff       	call   0x4f00c0
558193:	83 c4 04             	add    $0x4,%esp
558196:	3d 98 01 00 00       	cmp    $0x198,%eax
55819b:	0f 85 83 00 00 00    	jne    0x558224
5581a1:	56                   	push   %esi
5581a2:	e8 29 8c f9 ff       	call   0x4f0dd0
5581a7:	50                   	push   %eax
5581a8:	e8 93 f0 f8 ff       	call   0x4e7240
5581ad:	83 c4 08             	add    $0x8,%esp
5581b0:	85 c0                	test   %eax,%eax
5581b2:	74 70                	je     0x558224