406f34:	8b 7d d0             	mov    -0x30(%ebp),%edi
406f37:	85 c0                	test   %eax,%eax
406f39:	0f 85 91 00 00 00    	jne    0x406fd0
406f3f:	8b 8e a0 9b 00 00    	mov    0x9ba0(%esi),%ecx
406f45:	3b f9                	cmp    %ecx,%edi
406f47:	75 23                	jne    0x406f6c
406f49:	8b 86 a4 9b 00 00    	mov    0x9ba4(%esi),%eax
406f4f:	8d 96 a0 1b 00 00    	lea    0x1ba0(%esi),%edx
406f55:	3b c2                	cmp    %edx,%eax
406f57:	74 13                	je     0x406f6c
406f59:	8b fa                	mov    %edx,%edi
406f5b:	3b f8                	cmp    %eax,%edi
406f5d:	73 05                	jae    0x406f64
406f5f:	2b c7                	sub    %edi,%eax
406f61:	48                   	dec    %eax
406f62:	eb 04                	jmp    0x406f68
406f64:	2b cf                	sub    %edi,%ecx
406f66:	8b c1                	mov    %ecx,%eax
406f68:	85 c0                	test   %eax,%eax
406f6a:	75 64                	jne    0x406fd0
406f6c:	ff 75 08             	push   0x8(%ebp)
406f6f:	89 be a8 9b 00 00    	mov    %edi,0x9ba8(%esi)
406f75:	e8 38 01 00 00       	call   0x4070b2
406f7a:	8b be a8 9b 00 00    	mov    0x9ba8(%esi),%edi
406f80:	8b 8e a4 9b 00 00    	mov    0x9ba4(%esi),%ecx
406f86:	3b f9                	cmp    %ecx,%edi
406f88:	89 7d d0             	mov    %edi,-0x30(%ebp)
406f8b:	73 07                	jae    0x406f94
406f8d:	8b c1                	mov    %ecx,%eax
406f8f:	2b c7                	sub    %edi,%eax
406f91:	48                   	dec    %eax
406f92:	eb 08                	jmp    0x406f9c
406f94:	8b 86 a0 9b 00 00    	mov    0x9ba0(%esi),%eax
406f9a:	2b c7                	sub    %edi,%eax
406f9c:	8b 96 a0 9b 00 00    	mov    0x9ba0(%esi),%edx
406fa2:	3b fa                	cmp    %edx,%edi
406fa4:	89 55 f8             	mov    %edx,-0x8(%ebp)
406fa7:	75 1f                	jne    0x406fc8
406fa9:	8d 96 a0 1b 00 00    	lea    0x1ba0(%esi),%edx
406faf:	3b ca                	cmp    %edx,%ecx
406fb1:	74 15                	je     0x406fc8
406fb3:	8b fa                	mov    %edx,%edi
406fb5:	3b f9                	cmp    %ecx,%edi
406fb7:	89 7d d0             	mov    %edi,-0x30(%ebp)
406fba:	73 07                	jae    0x406fc3
406fbc:	2b cf                	sub    %edi,%ecx
406fbe:	49                   	dec    %ecx
406fbf:	8b c1                	mov    %ecx,%eax
406fc1:	eb 05                	jmp    0x406fc8
406fc3:	8b 45 f8             	mov    -0x8(%ebp),%eax
406fc6:	2b c7                	sub    %edi,%eax
406fc8:	85 c0                	test   %eax,%eax
406fca:	0f 84 93 00 00 00    	je     0x407063
406fd0:	8a 4e 08             	mov    0x8(%esi),%cl
406fd3:	88 0f                	mov    %cl,(%edi)
406fd5:	47                   	inc    %edi
406fd6:	48                   	dec    %eax
406fd7:	89 7d d0             	mov    %edi,-0x30(%ebp)
406fda:	89 45 d4             	mov    %eax,-0x2c(%ebp)
406fdd:	e9 11 f8 ff ff       	jmp    0x4067f3
406fe2:	83 fb 07             	cmp    $0x7,%ebx
406fe5:	76 09                	jbe    0x406ff0
406fe7:	83 eb 08             	sub    $0x8,%ebx
406fea:	ff 45 cc             	incl   -0x34(%ebp)
406fed:	ff 4d c8             	decl   -0x38(%ebp)
406ff0:	8b 45 d0             	mov    -0x30(%ebp),%eax
406ff3:	ff 75 08             	push   0x8(%ebp)
406ff6:	89 86 a8 9b 00 00    	mov    %eax,0x9ba8(%esi)
406ffc:	e8 b1 00 00 00       	call   0x4070b2
407001:	8b 8e a8 9b 00 00    	mov    0x9ba8(%esi),%ecx
407007:	8b 96 a4 9b 00 00    	mov    0x9ba4(%esi),%edx
40700d:	3b ca                	cmp    %edx,%ecx
40700f:	89 4d d0             	mov    %ecx,-0x30(%ebp)
407012:	73 07                	jae    0x40701b
407014:	8b c2                	mov    %edx,%eax
407016:	2b c1                	sub    %ecx,%eax
407018:	48                   	dec    %eax
407019:	eb 08                	jmp    0x407023
40701b:	8b 86 a0 9b 00 00    	mov    0x9ba0(%esi),%eax
407021:	2b c1                	sub    %ecx,%eax
407023:	3b ca                	cmp    %edx,%ecx
407025:	89 45 d4             	mov    %eax,-0x2c(%ebp)
407028:	75 39                	jne    0x407063
40702a:	8b 86 14 05 00 00    	mov    0x514(%esi),%eax
407030:	83 f8 08             	cmp    $0x8,%eax
407033:	89 06                	mov    %eax,(%esi)
407035:	75 33                	jne    0x40706a
407037:	8b 06                	mov    (%esi),%eax
407039:	83 f8 0f             	cmp    $0xf,%eax
40703c:	0f 86 32 f6 ff ff    	jbe    0x406674
407042:	e9 93 f6 ff ff       	jmp    0x4066da
407047:	8b 45 c0             	mov    -0x40(%ebp),%eax
40704a:	33 ff                	xor    %edi,%edi
40704c:	89 86 1c 05 00 00    	mov    %eax,0x51c(%esi)
407052:	8b 45 08             	mov    0x8(%ebp),%eax
407055:	89 9e 18 05 00 00    	mov    %ebx,0x518(%esi)
40705b:	89 78 04             	mov    %edi,0x4(%eax)
40705e:	e9 98 f6 ff ff       	jmp    0x4066fb
407063:	33 ff                	xor    %edi,%edi
407065:	e9 79 f6 ff ff       	jmp    0x4066e3
40706a:	33 ff                	xor    %edi,%edi
40706c:	47                   	inc    %edi
40706d:	e9 71 f6 ff ff       	jmp    0x4066e3
407072:	6f                   	outsl  %ds:(%esi),(%dx)
407073:	6c                   	insb   (%dx),%es:(%edi)
407074:	40                   	inc    %eax
407075:	00 82 6c 40 00 18    	add    %al,0x1800406c(%edx)
40707b:	6d                   	insl   (%dx),%es:(%edi)
40707c:	40                   	inc    %eax
40707d:	00 69 6d             	add    %ch,0x6d(%ecx)
407080:	40                   	inc    %eax
407081:	00 e7                	add    %ah,%bh
407083:	6d                   	insl   (%dx),%es:(%edi)
407084:	40                   	inc    %eax
407085:	00 2b                	add    %ch,(%ebx)
407087:	6e                   	outsb  %ds:(%esi),(%dx)
407088:	40                   	inc    %eax
407089:	00 31                	add    %dh,(%ecx)
40708b:	6f                   	outsl  %ds:(%esi),(%dx)
40708c:	40                   	inc    %eax
40708d:	00 e2                	add    %ah,%dl
40708f:	6f                   	outsl  %ds:(%esi),(%dx)
407090:	40                   	inc    %eax
407091:	00 9b 66 40 00 30    	add    %bl,0x30004066(%ebx)
407097:	68 40 00 55 68       	push   $0x68550040
40709c:	40                   	inc    %eax
40709d:	00 63 69             	add    %ah,0x69(%ebx)
4070a0:	40                   	inc    %eax
4070a1:	00 a2 69 40 00 85    	add    %ah,-0x7affbf97(%edx)
4070a7:	6b 40 00 da          	imul   $0xffffffda,0x0(%eax),%eax
4070ab:	66 40                	inc    %ax
4070ad:	00 f0                	add    %dh,%al
4070af:	6f                   	outsl  %ds:(%esi),(%dx)
4070b0:	40                   	inc    %eax
4070b1:	00 53 56             	add    %dl,0x56(%ebx)
4070b4:	8b 74 24 0c          	mov    0xc(%esp),%esi
4070b8:	57                   	push   %edi
4070b9:	8b be b4 9b 00 00    	mov    0x9bb4(%esi),%edi
4070bf:	8b 9e b8 9b 00 00    	mov    0x9bb8(%esi),%ebx
4070c5:	3b fb                	cmp    %ebx,%edi
4070c7:	76 06                	jbe    0x4070cf
4070c9:	8b 9e b0 9b 00 00    	mov    0x9bb0(%esi),%ebx
4070cf:	8b 46 0c             	mov    0xc(%esi),%eax
4070d2:	2b df                	sub    %edi,%ebx
4070d4:	3b d8                	cmp    %eax,%ebx
4070d6:	72 02                	jb     0x4070da
4070d8:	8b d8                	mov    %eax,%ebx
4070da:	53                   	push   %ebx
4070db:	57                   	push   %edi
4070dc:	ff 76 08             	push   0x8(%esi)
4070df:	2b c3                	sub    %ebx,%eax
4070e1:	89 46 0c             	mov    %eax,0xc(%esi)
4070e4:	e8 d1 eb ff ff       	call   0x405cba
4070e9:	01 5e 08             	add    %ebx,0x8(%esi)
4070ec:	8b 86 b0 9b 00 00    	mov    0x9bb0(%esi),%eax
4070f2:	03 fb                	add    %ebx,%edi
4070f4:	3b f8                	cmp    %eax,%edi
4070f6:	75 16                	jne    0x40710e
4070f8:	39 86 b8 9b 00 00    	cmp    %eax,0x9bb8(%esi)
4070fe:	8d be b0 1b 00 00    	lea    0x1bb0(%esi),%edi
407104:	75 b9                	jne    0x4070bf
407106:	89 be b8 9b 00 00    	mov    %edi,0x9bb8(%esi)
40710c:	eb b1                	jmp    0x4070bf
40710e:	89 be b4 9b 00 00    	mov    %edi,0x9bb4(%esi)
407114:	5f                   	pop    %edi
407115:	5e                   	pop    %esi
407116:	5b                   	pop    %ebx
407117:	c2 04 00             	ret    $0x4
40711a:	55                   	push   %ebp
40711b:	8b ec                	mov    %esp,%ebp
40711d:	81 ec ec 00 00 00    	sub    $0xec,%esp
407123:	53                   	push   %ebx
407124:	56                   	push   %esi
407125:	8b 75 0c             	mov    0xc(%ebp),%esi
407128:	57                   	push   %edi
407129:	6a 10                	push   $0x10
40712b:	33 c0                	xor    %eax,%eax
40712d:	59                   	pop    %ecx
40712e:	8d 7d 90             	lea    -0x70(%ebp),%edi
407131:	f3 ab                	rep stos %eax,%es:(%edi)
407133:	8b 4d 08             	mov    0x8(%ebp),%ecx
407136:	8b d6                	mov    %esi,%edx
407138:	8b 01                	mov    (%ecx),%eax
40713a:	83 c1 04             	add    $0x4,%ecx
40713d:	8d 44 85 90          	lea    -0x70(%ebp,%eax,4),%eax
407141:	ff 00                	incl   (%eax)
407143:	4a                   	dec    %edx
407144:	75 f2                	jne    0x407138
407146:	39 75 90             	cmp    %esi,-0x70(%ebp)
407149:	75 13                	jne    0x40715e
40714b:	8b 45 1c             	mov    0x1c(%ebp),%eax
40714e:	83 20 00             	andl   $0x0,(%eax)
407151:	8b 45 20             	mov    0x20(%ebp),%eax
407154:	83 20 00             	andl   $0x0,(%eax)
407157:	33 c0                	xor    %eax,%eax
407159:	e9 f0 02 00 00       	jmp    0x40744e
40715e:	8b 75 20             	mov    0x20(%ebp),%esi
407161:	33 db                	xor    %ebx,%ebx
407163:	43                   	inc    %ebx
407164:	6a 0f                	push   $0xf
407166:	8b 3e                	mov    (%esi),%edi
407168:	8b cb                	mov    %ebx,%ecx
40716a:	89 7d 20             	mov    %edi,0x20(%ebp)
40716d:	5a                   	pop    %edx
40716e:	33 c0                	xor    %eax,%eax
407170:	39 44 8d 90          	cmp    %eax,-0x70(%ebp,%ecx,4)
407174:	75 05                	jne    0x40717b
407176:	41                   	inc    %ecx
407177:	3b ca                	cmp    %edx,%ecx
407179:	76 f3                	jbe    0x40716e
40717b:	3b f9                	cmp    %ecx,%edi
40717d:	89 4d fc             	mov    %ecx,-0x4(%ebp)
407180:	73 03                	jae    0x407185
407182:	89 4d 20             	mov    %ecx,0x20(%ebp)
407185:	39 44 95 90          	cmp    %eax,-0x70(%ebp,%edx,4)
407189:	75 03                	jne    0x40718e
40718b:	4a                   	dec    %edx
40718c:	75 f7                	jne    0x407185
40718e:	39 55 20             	cmp    %edx,0x20(%ebp)
407191:	89 55 e8             	mov    %edx,-0x18(%ebp)
407194:	76 03                	jbe    0x407199
407196:	89 55 20             	mov    %edx,0x20(%ebp)
407199:	8b 7d 20             	mov    0x20(%ebp),%edi
40719c:	89 3e                	mov    %edi,(%esi)
40719e:	d3 e3                	shl    %cl,%ebx
4071a0:	eb 0d                	jmp    0x4071af
4071a2:	2b 5c 8d 90          	sub    -0x70(%ebp,%ecx,4),%ebx
4071a6:	0f 88 9f 02 00 00    	js     0x40744b
4071ac:	41                   	inc    %ecx
4071ad:	03 db                	add    %ebx,%ebx
4071af:	3b ca                	cmp    %edx,%ecx
4071b1:	72 ef                	jb     0x4071a2
4071b3:	8b f2                	mov    %edx,%esi
4071b5:	c1 e6 02             	shl    $0x2,%esi
4071b8:	8d 4c 35 90          	lea    -0x70(%ebp,%esi,1),%ecx
4071bc:	8b 39                	mov    (%ecx),%edi
4071be:	2b df                	sub    %edi,%ebx
4071c0:	89 5d d0             	mov    %ebx,-0x30(%ebp)
4071c3:	0f 88 82 02 00 00    	js     0x40744b
4071c9:	03 fb                	add    %ebx,%edi
4071cb:	89 85 54 ff ff ff    	mov    %eax,-0xac(%ebp)
4071d1:	89 39                	mov    %edi,(%ecx)
4071d3:	33 c9                	xor    %ecx,%ecx
4071d5:	4a                   	dec    %edx
4071d6:	74 13                	je     0x4071eb
4071d8:	33 ff                	xor    %edi,%edi
4071da:	03 4c 3d 94          	add    -0x6c(%ebp,%edi,1),%ecx
4071de:	83 c7 04             	add    $0x4,%edi
4071e1:	4a                   	dec    %edx
4071e2:	89 8c 3d 54 ff ff ff 	mov    %ecx,-0xac(%ebp,%edi,1)
4071e9:	75 ef                	jne    0x4071da
4071eb:	8b 5d 08             	mov    0x8(%ebp),%ebx
4071ee:	33 ff                	xor    %edi,%edi
4071f0:	8b 0b                	mov    (%ebx),%ecx
4071f2:	83 c3 04             	add    $0x4,%ebx
4071f5:	3b c8                	cmp    %eax,%ecx
4071f7:	74 13                	je     0x40720c
4071f9:	8d 8c 8d 50 ff ff ff 	lea    -0xb0(%ebp,%ecx,4),%ecx
407200:	8b 11                	mov    (%ecx),%edx
407202:	89 3c 95 b0 d6 42 00 	mov    %edi,0x42d6b0(,%edx,4)
407209:	42                   	inc    %edx
40720a:	89 11                	mov    %edx,(%ecx)
40720c:	47                   	inc    %edi
40720d:	3b 7d 0c             	cmp    0xc(%ebp),%edi
407210:	72 de                	jb     0x4071f0
407212:	8b 8c 35 50 ff ff ff 	mov    -0xb0(%ebp,%esi,1),%ecx
407219:	8b 5d 20             	mov    0x20(%ebp),%ebx
40721c:	83 4d f4 ff          	orl    $0xffffffff,-0xc(%ebp)
407220:	83 65 dc 00          	andl   $0x0,-0x24(%ebp)
407224:	89 4d 0c             	mov    %ecx,0xc(%ebp)
407227:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40722a:	f7 db                	neg    %ebx
40722c:	3b 4d e8             	cmp    -0x18(%ebp),%ecx
40722f:	89 45 f8             	mov    %eax,-0x8(%ebp)
407232:	89 85 50 ff ff ff    	mov    %eax,-0xb0(%ebp)
407238:	c7 45 e0 b0 d6 42 00 	movl   $0x42d6b0,-0x20(%ebp)
40723f:	89 85 14 ff ff ff    	mov    %eax,-0xec(%ebp)
407245:	0f 8f f3 01 00 00    	jg     0x40743e
40724b:	8d 51 ff             	lea    -0x1(%ecx),%edx
40724e:	8d 4c 8d 90          	lea    -0x70(%ebp,%ecx,4),%ecx
407252:	89 55 d8             	mov    %edx,-0x28(%ebp)
407255:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
407258:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
40725b:	8b 31                	mov    (%ecx),%esi
40725d:	85 f6                	test   %esi,%esi
40725f:	0f 84 c3 01 00 00    	je     0x407428
407265:	eb 03                	jmp    0x40726a
407267:	8b 75 d4             	mov    -0x2c(%ebp),%esi
40726a:	8b 4d 20             	mov    0x20(%ebp),%ecx
40726d:	4e                   	dec    %esi
40726e:	03 cb                	add    %ebx,%ecx
407270:	89 75 d4             	mov    %esi,-0x2c(%ebp)
407273:	39 4d fc             	cmp    %ecx,-0x4(%ebp)
407276:	89 4d ec             	mov    %ecx,-0x14(%ebp)
407279:	0f 8e cc 00 00 00    	jle    0x40734b
40727f:	46                   	inc    %esi
407280:	89 75 f0             	mov    %esi,-0x10(%ebp)
407283:	8b 75 e8             	mov    -0x18(%ebp),%esi
407286:	ff 45 f4             	incl   -0xc(%ebp)
407289:	2b 75 ec             	sub    -0x14(%ebp),%esi
40728c:	3b 75 20             	cmp    0x20(%ebp),%esi
40728f:	76 03                	jbe    0x407294
407291:	8b 75 20             	mov    0x20(%ebp),%esi
407294:	8b 4d fc             	mov    -0x4(%ebp),%ecx
407297:	33 d2                	xor    %edx,%edx
407299:	2b 4d ec             	sub    -0x14(%ebp),%ecx
40729c:	42                   	inc    %edx
40729d:	d3 e2                	shl    %cl,%edx
40729f:	3b 55 f0             	cmp    -0x10(%ebp),%edx
4072a2:	76 23                	jbe    0x4072c7
4072a4:	8b 7d e4             	mov    -0x1c(%ebp),%edi
4072a7:	83 c8 ff             	or     $0xffffffff,%eax
4072aa:	2b 45 d4             	sub    -0x2c(%ebp),%eax
4072ad:	03 d0                	add    %eax,%edx
4072af:	3b ce                	cmp    %esi,%ecx
4072b1:	73 14                	jae    0x4072c7
4072b3:	eb 0d                	jmp    0x4072c2
4072b5:	83 c7 04             	add    $0x4,%edi
4072b8:	03 d2                	add    %edx,%edx
4072ba:	8b 07                	mov    (%edi),%eax
4072bc:	3b d0                	cmp    %eax,%edx
4072be:	76 07                	jbe    0x4072c7
4072c0:	2b d0                	sub    %eax,%edx
4072c2:	41                   	inc    %ecx
4072c3:	3b ce                	cmp    %esi,%ecx
4072c5:	72 ee                	jb     0x4072b5
4072c7:	8b 55 28             	mov    0x28(%ebp),%edx
4072ca:	33 c0                	xor    %eax,%eax
4072cc:	40                   	inc    %eax
4072cd:	8b 12                	mov    (%edx),%edx
4072cf:	d3 e0                	shl    %cl,%eax
4072d1:	89 45 dc             	mov    %eax,-0x24(%ebp)
4072d4:	8d 3c 02             	lea    (%edx,%eax,1),%edi
4072d7:	81 ff a0 05 00 00    	cmp    $0x5a0,%edi
4072dd:	0f 87 68 01 00 00    	ja     0x40744b
4072e3:	8b 45 24             	mov    0x24(%ebp),%eax
4072e6:	8d 04 90             	lea    (%eax,%edx,4),%eax
4072e9:	8b 55 f4             	mov    -0xc(%ebp),%edx
4072ec:	8d b4 95 14 ff ff ff 	lea    -0xec(%ebp,%edx,4),%esi
4072f3:	8b 55 28             	mov    0x28(%ebp),%edx
4072f6:	89 3a                	mov    %edi,(%edx)
4072f8:	8b 55 f4             	mov    -0xc(%ebp),%edx
4072fb:	85 d2                	test   %edx,%edx
4072fd:	89 06                	mov    %eax,(%esi)
4072ff:	74 31                	je     0x407332
407301:	8b 7d f8             	mov    -0x8(%ebp),%edi
407304:	8b 76 fc             	mov    -0x4(%esi),%esi
407307:	89 bc 95 50 ff ff ff 	mov    %edi,-0xb0(%ebp,%edx,4)
40730e:	8a 55 20             	mov    0x20(%ebp),%dl
407311:	88 55 09             	mov    %dl,0x9(%ebp)