5a3f76:	01 77 0c             	add    %esi,0xc(%edi)
5a3f79:	01 77 08             	add    %esi,0x8(%edi)
5a3f7c:	56                   	push   %esi
5a3f7d:	ff 74 24 14          	push   0x14(%esp)
5a3f81:	ff 74 24 1c          	push   0x1c(%esp)
5a3f85:	e8 e6 ec 02 00       	call   0x5d2c70
5a3f8a:	83 c4 0c             	add    $0xc,%esp
5a3f8d:	b8 01 00 00 00       	mov    $0x1,%eax
5a3f92:	5f                   	pop    %edi
5a3f93:	5e                   	pop    %esi
5a3f94:	c3                   	ret
5a3f95:	5f                   	pop    %edi
5a3f96:	33 c0                	xor    %eax,%eax
5a3f98:	5e                   	pop    %esi
5a3f99:	c3                   	ret
5a3f9a:	cc                   	int3
5a3f9b:	cc                   	int3
5a3f9c:	cc                   	int3
5a3f9d:	cc                   	int3
5a3f9e:	cc                   	int3
5a3f9f:	cc                   	int3
5a3fa0:	56                   	push   %esi
5a3fa1:	8b 74 24 10          	mov    0x10(%esp),%esi
5a3fa5:	57                   	push   %edi
5a3fa6:	83 fe 04             	cmp    $0x4,%esi
5a3fa9:	77 45                	ja     0x5a3ff0
5a3fab:	8b 7c 24 0c          	mov    0xc(%esp),%edi
5a3faf:	8d 44 24 14          	lea    0x14(%esp),%eax
5a3fb3:	50                   	push   %eax
5a3fb4:	56                   	push   %esi
5a3fb5:	57                   	push   %edi
5a3fb6:	e8 45 00 00 00       	call   0x5a4000
5a3fbb:	83 c4 0c             	add    $0xc,%esp
5a3fbe:	85 c0                	test   %eax,%eax
5a3fc0:	74 2e                	je     0x5a3ff0
5a3fc2:	8b 4c 24 14          	mov    0x14(%esp),%ecx
5a3fc6:	01 77 0c             	add    %esi,0xc(%edi)
5a3fc9:	49                   	dec    %ecx
5a3fca:	01 77 08             	add    %esi,0x8(%edi)
5a3fcd:	03 ce                	add    %esi,%ecx
5a3fcf:	8b 44 24 10          	mov    0x10(%esp),%eax
5a3fd3:	85 f6                	test   %esi,%esi
5a3fd5:	74 0d                	je     0x5a3fe4
5a3fd7:	88 01                	mov    %al,(%ecx)
5a3fd9:	8d 49 ff             	lea    -0x1(%ecx),%ecx
5a3fdc:	c1 e8 08             	shr    $0x8,%eax
5a3fdf:	83 ee 01             	sub    $0x1,%esi
5a3fe2:	75 f3                	jne    0x5a3fd7
5a3fe4:	85 c0                	test   %eax,%eax
5a3fe6:	75 08                	jne    0x5a3ff0
5a3fe8:	5f                   	pop    %edi
5a3fe9:	b8 01 00 00 00       	mov    $0x1,%eax
5a3fee:	5e                   	pop    %esi
5a3fef:	c3                   	ret
5a3ff0:	5f                   	pop    %edi
5a3ff1:	33 c0                	xor    %eax,%eax
5a3ff3:	5e                   	pop    %esi
5a3ff4:	c3                   	ret
5a3ff5:	cc                   	int3
5a3ff6:	cc                   	int3
5a3ff7:	cc                   	int3
5a3ff8:	cc                   	int3
5a3ff9:	cc                   	int3
5a3ffa:	cc                   	int3
5a3ffb:	cc                   	int3
5a3ffc:	cc                   	int3
5a3ffd:	cc                   	int3
5a3ffe:	cc                   	int3
5a3fff:	cc                   	int3
5a4000:	53                   	push   %ebx
5a4001:	56                   	push   %esi
5a4002:	8b 74 24 0c          	mov    0xc(%esp),%esi
5a4006:	83 7e 14 00          	cmpl   $0x0,0x14(%esi)
5a400a:	74 74                	je     0x5a4080
5a400c:	8b 4c 24 10          	mov    0x10(%esp),%ecx
5a4010:	85 c9                	test   %ecx,%ecx
5a4012:	74 6c                	je     0x5a4080
5a4014:	8b 46 10             	mov    0x10(%esi),%eax
5a4017:	2b 46 0c             	sub    0xc(%esi),%eax
5a401a:	3b c1                	cmp    %ecx,%eax
5a401c:	72 62                	jb     0x5a4080
5a401e:	83 7e 04 00          	cmpl   $0x0,0x4(%esi)
5a4022:	75 39                	jne    0x5a405d
5a4024:	8b 1e                	mov    (%esi),%ebx
5a4026:	8b 13                	mov    (%ebx),%edx
5a4028:	8b c2                	mov    %edx,%eax
5a402a:	2b 46 0c             	sub    0xc(%esi),%eax
5a402d:	3b c1                	cmp    %ecx,%eax
5a402f:	73 2c                	jae    0x5a405d
5a4031:	3b ca                	cmp    %edx,%ecx
5a4033:	0f 47 d1             	cmova  %ecx,%edx
5a4036:	81 fa ff ff ff 7f    	cmp    $0x7fffffff,%edx
5a403c:	76 05                	jbe    0x5a4043
5a403e:	83 ca ff             	or     $0xffffffff,%edx
5a4041:	eb 0c                	jmp    0x5a404f
5a4043:	03 d2                	add    %edx,%edx
5a4045:	b8 00 01 00 00       	mov    $0x100,%eax
5a404a:	3b d0                	cmp    %eax,%edx
5a404c:	0f 42 d0             	cmovb  %eax,%edx
5a404f:	52                   	push   %edx
5a4050:	53                   	push   %ebx
5a4051:	e8 8a 75 f6 ff       	call   0x50b5e0
5a4056:	83 c4 08             	add    $0x8,%esp
5a4059:	85 c0                	test   %eax,%eax
5a405b:	74 23                	je     0x5a4080
5a405d:	8b 54 24 14          	mov    0x14(%esp),%edx
5a4061:	85 d2                	test   %edx,%edx
5a4063:	74 13                	je     0x5a4078
5a4065:	8b 4e 04             	mov    0x4(%esi),%ecx
5a4068:	85 c9                	test   %ecx,%ecx
5a406a:	75 05                	jne    0x5a4071
5a406c:	8b 06                	mov    (%esi),%eax
5a406e:	8b 48 04             	mov    0x4(%eax),%ecx
5a4071:	8b 46 08             	mov    0x8(%esi),%eax
5a4074:	03 c1                	add    %ecx,%eax
5a4076:	89 02                	mov    %eax,(%edx)
5a4078:	5e                   	pop    %esi
5a4079:	b8 01 00 00 00       	mov    $0x1,%eax
5a407e:	5b                   	pop    %ebx
5a407f:	c3                   	ret
5a4080:	5e                   	pop    %esi
5a4081:	33 c0                	xor    %eax,%eax
5a4083:	5b                   	pop    %ebx
5a4084:	c3                   	ret
5a4085:	cc                   	int3
5a4086:	cc                   	int3
5a4087:	cc                   	int3
5a4088:	cc                   	int3
5a4089:	cc                   	int3
5a408a:	cc                   	int3
5a408b:	cc                   	int3
5a408c:	cc                   	int3
5a408d:	cc                   	int3
5a408e:	cc                   	int3
5a408f:	cc                   	int3
5a4090:	8b 44 24 04          	mov    0x4(%esp),%eax
5a4094:	8b 48 14             	mov    0x14(%eax),%ecx
5a4097:	85 c9                	test   %ecx,%ecx
5a4099:	75 03                	jne    0x5a409e
5a409b:	33 c0                	xor    %eax,%eax
5a409d:	c3                   	ret
5a409e:	8b 44 24 08          	mov    0x8(%esp),%eax
5a40a2:	89 41 10             	mov    %eax,0x10(%ecx)
5a40a5:	b8 01 00 00 00       	mov    $0x1,%eax
5a40aa:	c3                   	ret
5a40ab:	cc                   	int3
5a40ac:	cc                   	int3
5a40ad:	cc                   	int3
5a40ae:	cc                   	int3
5a40af:	cc                   	int3
5a40b0:	56                   	push   %esi
5a40b1:	8b 74 24 08          	mov    0x8(%esp),%esi
5a40b5:	83 7e 14 00          	cmpl   $0x0,0x14(%esi)
5a40b9:	74 35                	je     0x5a40f0
5a40bb:	68 19 01 00 00       	push   $0x119
5a40c0:	68 bc 7c 66 00       	push   $0x667cbc
5a40c5:	6a 14                	push   $0x14
5a40c7:	e8 74 c9 f3 ff       	call   0x4e0a40
5a40cc:	8b c8                	mov    %eax,%ecx
5a40ce:	83 c4 0c             	add    $0xc,%esp
5a40d1:	85 c9                	test   %ecx,%ecx
5a40d3:	75 1f                	jne    0x5a40f4
5a40d5:	68 1a 01 00 00       	push   $0x11a
5a40da:	68 bc 7c 66 00       	push   $0x667cbc
5a40df:	6a 41                	push   $0x41
5a40e1:	68 7a 02 00 00       	push   $0x27a
5a40e6:	6a 14                	push   $0x14
5a40e8:	e8 93 4e f3 ff       	call   0x4d8f80
5a40ed:	83 c4 14             	add    $0x14,%esp
5a40f0:	33 c0                	xor    %eax,%eax
5a40f2:	5e                   	pop    %esi
5a40f3:	c3                   	ret
5a40f4:	8b 46 14             	mov    0x14(%esi),%eax
5a40f7:	89 01                	mov    %eax,(%ecx)
5a40f9:	8b 46 0c             	mov    0xc(%esi),%eax
5a40fc:	89 4e 14             	mov    %ecx,0x14(%esi)
5a40ff:	89 41 0c             	mov    %eax,0xc(%ecx)
5a4102:	b8 01 00 00 00       	mov    $0x1,%eax
5a4107:	c7 41 08 00 00 00 00 	movl   $0x0,0x8(%ecx)
5a410e:	c7 41 04 00 00 00 00 	movl   $0x0,0x4(%ecx)
5a4115:	5e                   	pop    %esi
5a4116:	c3                   	ret
5a4117:	cc                   	int3
5a4118:	cc                   	int3
5a4119:	cc                   	int3
5a411a:	cc                   	int3
5a411b:	cc                   	int3
5a411c:	cc                   	int3
5a411d:	cc                   	int3
5a411e:	cc                   	int3
5a411f:	cc                   	int3
5a4120:	53                   	push   %ebx
5a4121:	56                   	push   %esi
5a4122:	8b 74 24 0c          	mov    0xc(%esp),%esi
5a4126:	57                   	push   %edi
5a4127:	83 7e 14 00          	cmpl   $0x0,0x14(%esi)
5a412b:	74 35                	je     0x5a4162
5a412d:	68 19 01 00 00       	push   $0x119
5a4132:	68 bc 7c 66 00       	push   $0x667cbc
5a4137:	6a 14                	push   $0x14
5a4139:	e8 02 c9 f3 ff       	call   0x4e0a40
5a413e:	8b f8                	mov    %eax,%edi
5a4140:	83 c4 0c             	add    $0xc,%esp
5a4143:	85 ff                	test   %edi,%edi
5a4145:	75 21                	jne    0x5a4168
5a4147:	68 1a 01 00 00       	push   $0x11a
5a414c:	68 bc 7c 66 00       	push   $0x667cbc
5a4151:	6a 41                	push   $0x41
5a4153:	68 7a 02 00 00       	push   $0x27a
5a4158:	6a 14                	push   $0x14
5a415a:	e8 21 4e f3 ff       	call   0x4d8f80
5a415f:	83 c4 14             	add    $0x14,%esp
5a4162:	5f                   	pop    %edi
5a4163:	5e                   	pop    %esi
5a4164:	33 c0                	xor    %eax,%eax
5a4166:	5b                   	pop    %ebx
5a4167:	c3                   	ret
5a4168:	8b 46 14             	mov    0x14(%esi),%eax
5a416b:	8b 5c 24 14          	mov    0x14(%esp),%ebx
5a416f:	89 07                	mov    %eax,(%edi)
5a4171:	8b 46 0c             	mov    0xc(%esi),%eax
5a4174:	03 c3                	add    %ebx,%eax
5a4176:	89 7e 14             	mov    %edi,0x14(%esi)
5a4179:	89 47 0c             	mov    %eax,0xc(%edi)
5a417c:	89 5f 08             	mov    %ebx,0x8(%edi)
5a417f:	85 db                	test   %ebx,%ebx
5a4181:	75 0a                	jne    0x5a418d
5a4183:	89 5f 04             	mov    %ebx,0x4(%edi)
5a4186:	8d 43 01             	lea    0x1(%ebx),%eax
5a4189:	5f                   	pop    %edi
5a418a:	5e                   	pop    %esi
5a418b:	5b                   	pop    %ebx
5a418c:	c3                   	ret
5a418d:	8d 44 24 10          	lea    0x10(%esp),%eax
5a4191:	50                   	push   %eax
5a4192:	53                   	push   %ebx
5a4193:	56                   	push   %esi
5a4194:	e8 67 fe ff ff       	call   0x5a4000
5a4199:	83 c4 0c             	add    $0xc,%esp
5a419c:	85 c0                	test   %eax,%eax
5a419e:	74 c2                	je     0x5a4162
5a41a0:	01 5e 0c             	add    %ebx,0xc(%esi)
5a41a3:	01 5e 08             	add    %ebx,0x8(%esi)
5a41a6:	8b 4e 04             	mov    0x4(%esi),%ecx
5a41a9:	85 c9                	test   %ecx,%ecx
5a41ab:	75 05                	jne    0x5a41b2
5a41ad:	8b 06                	mov    (%esi),%eax
5a41af:	8b 48 04             	mov    0x4(%eax),%ecx
5a41b2:	8b 44 24 10          	mov    0x10(%esp),%eax
5a41b6:	2b c1                	sub    %ecx,%eax
5a41b8:	89 47 04             	mov    %eax,0x4(%edi)
5a41bb:	b8 01 00 00 00       	mov    $0x1,%eax
5a41c0:	5f                   	pop    %edi
5a41c1:	5e                   	pop    %esi
5a41c2:	5b                   	pop    %ebx
5a41c3:	c3                   	ret
5a41c4:	cc                   	int3
5a41c5:	cc                   	int3
5a41c6:	cc                   	int3
5a41c7:	cc                   	int3
5a41c8:	cc                   	int3
5a41c9:	cc                   	int3
5a41ca:	cc                   	int3
5a41cb:	cc                   	int3
5a41cc:	cc                   	int3
5a41cd:	cc                   	int3
5a41ce:	cc                   	int3
5a41cf:	cc                   	int3
5a41d0:	56                   	push   %esi
5a41d1:	8b 74 24 08          	mov    0x8(%esp),%esi
5a41d5:	57                   	push   %edi
5a41d6:	ff 74 24 18          	push   0x18(%esp)
5a41da:	56                   	push   %esi
5a41db:	e8 40 ff ff ff       	call   0x5a4120
5a41e0:	83 c4 08             	add    $0x8,%esp
5a41e3:	85 c0                	test   %eax,%eax
5a41e5:	74 40                	je     0x5a4227
5a41e7:	ff 74 24 14          	push   0x14(%esp)
5a41eb:	8b 7c 24 14          	mov    0x14(%esp),%edi
5a41ef:	57                   	push   %edi
5a41f0:	56                   	push   %esi
5a41f1:	e8 0a fe ff ff       	call   0x5a4000
5a41f6:	83 c4 0c             	add    $0xc,%esp
5a41f9:	85 c0                	test   %eax,%eax
5a41fb:	74 2a                	je     0x5a4227
5a41fd:	01 7e 0c             	add    %edi,0xc(%esi)
5a4200:	01 7e 08             	add    %edi,0x8(%esi)
5a4203:	8b 46 14             	mov    0x14(%esi),%eax
5a4206:	85 c0                	test   %eax,%eax
5a4208:	74 1d                	je     0x5a4227
5a420a:	83 38 00             	cmpl   $0x0,(%eax)
5a420d:	74 18                	je     0x5a4227
5a420f:	6a 01                	push   $0x1
5a4211:	50                   	push   %eax
5a4212:	56                   	push   %esi
5a4213:	e8 c8 00 00 00       	call   0x5a42e0
5a4218:	83 c4 0c             	add    $0xc,%esp
5a421b:	85 c0                	test   %eax,%eax
5a421d:	74 08                	je     0x5a4227
5a421f:	5f                   	pop    %edi
5a4220:	b8 01 00 00 00       	mov    $0x1,%eax
5a4225:	5e                   	pop    %esi
5a4226:	c3                   	ret
5a4227:	5f                   	pop    %edi
5a4228:	33 c0                	xor    %eax,%eax
5a422a:	5e                   	pop    %esi
5a422b:	c3                   	ret
5a422c:	cc                   	int3
5a422d:	cc                   	int3
5a422e:	cc                   	int3
5a422f:	cc                   	int3
5a4230:	b8 04 00 00 00       	mov    $0x4,%eax
5a4235:	e8 76 d5 02 00       	call   0x5d17b0
5a423a:	56                   	push   %esi
5a423b:	8b 74 24 0c          	mov    0xc(%esp),%esi
5a423f:	57                   	push   %edi
5a4240:	ff 74 24 1c          	push   0x1c(%esp)
5a4244:	56                   	push   %esi
5a4245:	e8 d6 fe ff ff       	call   0x5a4120
5a424a:	83 c4 08             	add    $0x8,%esp
5a424d:	85 c0                	test   %eax,%eax
5a424f:	74 57                	je     0x5a42a8
5a4251:	8b 7c 24 18          	mov    0x18(%esp),%edi
5a4255:	85 ff                	test   %edi,%edi
5a4257:	74 2a                	je     0x5a4283
5a4259:	8d 44 24 08          	lea    0x8(%esp),%eax
5a425d:	50                   	push   %eax
5a425e:	57                   	push   %edi
5a425f:	56                   	push   %esi
5a4260:	e8 9b fd ff ff       	call   0x5a4000
5a4265:	83 c4 0c             	add    $0xc,%esp
5a4268:	85 c0                	test   %eax,%eax
5a426a:	74 3c                	je     0x5a42a8
5a426c:	01 7e 0c             	add    %edi,0xc(%esi)
5a426f:	01 7e 08             	add    %edi,0x8(%esi)
5a4272:	57                   	push   %edi
5a4273:	ff 74 24 18          	push   0x18(%esp)
5a4277:	ff 74 24 10          	push   0x10(%esp)
5a427b:	e8 50 eb 02 00       	call   0x5d2dd0
5a4280:	83 c4 0c             	add    $0xc,%esp
5a4283:	8b 46 14             	mov    0x14(%esi),%eax
5a4286:	85 c0                	test   %eax,%eax
5a4288:	74 1e                	je     0x5a42a8
5a428a:	83 38 00             	cmpl   $0x0,(%eax)
5a428d:	74 19                	je     0x5a42a8
5a428f:	6a 01                	push   $0x1
5a4291:	50                   	push   %eax
5a4292:	56                   	push   %esi
5a4293:	e8 48 00 00 00       	call   0x5a42e0
5a4298:	83 c4 0c             	add    $0xc,%esp