405f8d:	56                   	push   %esi
405f8e:	8d 45 dc             	lea    -0x24(%ebp),%eax
405f91:	57                   	push   %edi
405f92:	50                   	push   %eax
405f93:	e8 d8 5c 01 00       	call   0x41bc70
405f98:	83 c4 0c             	add    $0xc,%esp
405f9b:	6a 01                	push   $0x1
405f9d:	56                   	push   %esi
405f9e:	57                   	push   %edi
405f9f:	e8 7e 6d 00 00       	call   0x40cd22
405fa4:	56                   	push   %esi
405fa5:	8d 83 38 01 00 00    	lea    0x138(%ebx),%eax
405fab:	50                   	push   %eax
405fac:	8d 45 bc             	lea    -0x44(%ebp),%eax
405faf:	50                   	push   %eax
405fb0:	e8 bb 5c 01 00       	call   0x41bc70
405fb5:	56                   	push   %esi
405fb6:	81 c3 58 01 00 00    	add    $0x158,%ebx
405fbc:	8d 45 9c             	lea    -0x64(%ebp),%eax
405fbf:	53                   	push   %ebx
405fc0:	50                   	push   %eax
405fc1:	e8 aa 5c 01 00       	call   0x41bc70
405fc6:	83 c4 18             	add    $0x18,%esp
405fc9:	e9 32 ff ff ff       	jmp    0x405f00
405fce:	56                   	push   %esi
405fcf:	8b f1                	mov    %ecx,%esi
405fd1:	e8 29 6f 00 00       	call   0x40ceff
405fd6:	8b c6                	mov    %esi,%eax
405fd8:	5e                   	pop    %esi
405fd9:	c3                   	ret
405fda:	e9 44 6f 00 00       	jmp    0x40cf23
405fdf:	b8 66 92 42 00       	mov    $0x429266,%eax
405fe4:	e8 cf 3e 01 00       	call   0x419eb8
405fe9:	51                   	push   %ecx
405fea:	89 4d f0             	mov    %ecx,-0x10(%ebp)
405fed:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
405ff1:	68 e0 05 00 00       	push   $0x5e0
405ff6:	51                   	push   %ecx
405ff7:	e8 cc 6d 00 00       	call   0x40cdc8
405ffc:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
406000:	68 da 5f 40 00       	push   $0x405fda
406005:	6a 04                	push   $0x4
406007:	68 78 01 00 00       	push   $0x178
40600c:	ff 75 f0             	push   -0x10(%ebp)
40600f:	e8 1f 60 01 00       	call   0x41c033
406014:	8b 4d f4             	mov    -0xc(%ebp),%ecx
406017:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40601e:	c9                   	leave
40601f:	c3                   	ret
406020:	8b 81 e4 05 00 00    	mov    0x5e4(%ecx),%eax
406026:	83 c0 fc             	add    $0xfffffffc,%eax
406029:	83 f8 01             	cmp    $0x1,%eax
40602c:	77 17                	ja     0x406045
40602e:	ff 74 24 04          	push   0x4(%esp)
406032:	81 c1 e8 05 00 00    	add    $0x5e8,%ecx
406038:	ff 74 24 0c          	push   0xc(%esp)
40603c:	ff 74 24 0c          	push   0xc(%esp)
406040:	e8 0b 69 00 00       	call   0x40c950
406045:	c2 08 00             	ret    $0x8
406048:	55                   	push   %ebp
406049:	8b ec                	mov    %esp,%ebp
40604b:	83 ec 20             	sub    $0x20,%esp
40604e:	56                   	push   %esi
40604f:	8b 75 08             	mov    0x8(%ebp),%esi
406052:	83 3e 02             	cmpl   $0x2,(%esi)
406055:	75 3d                	jne    0x406094
406057:	8b 46 04             	mov    0x4(%esi),%eax
40605a:	89 45 08             	mov    %eax,0x8(%ebp)
40605d:	8d 45 e0             	lea    -0x20(%ebp),%eax
406060:	50                   	push   %eax
406061:	6a 04                	push   $0x4
406063:	8d 45 08             	lea    0x8(%ebp),%eax
406066:	50                   	push   %eax
406067:	6a 20                	push   $0x20
406069:	ff 75 0c             	push   0xc(%ebp)
40606c:	e8 03 fb ff ff       	call   0x405b74
406071:	33 d2                	xor    %edx,%edx
406073:	89 56 04             	mov    %edx,0x4(%esi)
406076:	33 c0                	xor    %eax,%eax
406078:	53                   	push   %ebx
406079:	0f b6 5c 05 e0       	movzbl -0x20(%ebp,%eax,1),%ebx
40607e:	8b c8                	mov    %eax,%ecx
406080:	83 e1 03             	and    $0x3,%ecx
406083:	c1 e1 03             	shl    $0x3,%ecx
406086:	d3 e3                	shl    %cl,%ebx
406088:	33 d3                	xor    %ebx,%edx
40608a:	40                   	inc    %eax
40608b:	83 f8 20             	cmp    $0x20,%eax
40608e:	72 e9                	jb     0x406079
406090:	89 56 04             	mov    %edx,0x4(%esi)
406093:	5b                   	pop    %ebx
406094:	83 3e 03             	cmpl   $0x3,(%esi)
406097:	75 23                	jne    0x4060bc
406099:	8d 45 e0             	lea    -0x20(%ebp),%eax
40609c:	50                   	push   %eax
40609d:	6a 20                	push   $0x20
40609f:	83 c6 04             	add    $0x4,%esi
4060a2:	56                   	push   %esi
4060a3:	6a 20                	push   $0x20
4060a5:	ff 75 0c             	push   0xc(%ebp)
4060a8:	e8 c7 fa ff ff       	call   0x405b74
4060ad:	6a 20                	push   $0x20
4060af:	8d 45 e0             	lea    -0x20(%ebp),%eax
4060b2:	50                   	push   %eax
4060b3:	56                   	push   %esi
4060b4:	e8 b7 5b 01 00       	call   0x41bc70
4060b9:	83 c4 0c             	add    $0xc,%esp
4060bc:	5e                   	pop    %esi
4060bd:	c9                   	leave
4060be:	c2 08 00             	ret    $0x8
4060c1:	b8 66 92 42 00       	mov    $0x429266,%eax
4060c6:	e8 ed 3d 01 00       	call   0x419eb8
4060cb:	51                   	push   %ecx
4060cc:	56                   	push   %esi
4060cd:	57                   	push   %edi
4060ce:	68 da 5f 40 00       	push   $0x405fda
4060d3:	68 ce 5f 40 00       	push   $0x405fce
4060d8:	6a 04                	push   $0x4
4060da:	8b f1                	mov    %ecx,%esi
4060dc:	68 78 01 00 00       	push   $0x178
4060e1:	56                   	push   %esi
4060e2:	89 75 f0             	mov    %esi,-0x10(%ebp)
4060e5:	e8 ac 5f 01 00       	call   0x41c096
4060ea:	33 ff                	xor    %edi,%edi
4060ec:	8d 8e e8 05 00 00    	lea    0x5e8(%esi),%ecx
4060f2:	89 7d fc             	mov    %edi,-0x4(%ebp)
4060f5:	e8 6c 67 00 00       	call   0x40c866
4060fa:	68 e0 05 00 00       	push   $0x5e0
4060ff:	57                   	push   %edi
406100:	56                   	push   %esi
406101:	89 be e4 05 00 00    	mov    %edi,0x5e4(%esi)
406107:	e8 f4 40 01 00       	call   0x41a200
40610c:	68 00 04 00 00       	push   $0x400
406111:	8d 86 f0 06 00 00    	lea    0x6f0(%esi),%eax
406117:	57                   	push   %edi
406118:	50                   	push   %eax
406119:	89 be e0 05 00 00    	mov    %edi,0x5e0(%esi)
40611f:	e8 dc 40 01 00       	call   0x41a200
406124:	8b 4d f4             	mov    -0xc(%ebp),%ecx
406127:	83 c4 18             	add    $0x18,%esp
40612a:	5f                   	pop    %edi
40612b:	8b c6                	mov    %esi,%eax
40612d:	5e                   	pop    %esi
40612e:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
406135:	c9                   	leave
406136:	c3                   	ret
406137:	55                   	push   %ebp
406138:	8b ec                	mov    %esp,%ebp
40613a:	81 ec 80 01 00 00    	sub    $0x180,%esp
406140:	53                   	push   %ebx
406141:	8b d9                	mov    %ecx,%ebx
406143:	8b 4d 10             	mov    0x10(%ebp),%ecx
406146:	80 b9 00 01 00 00 00 	cmpb   $0x0,0x100(%ecx)
40614d:	57                   	push   %edi
40614e:	0f 84 9f 00 00 00    	je     0x4061f3
406154:	8b 7d 0c             	mov    0xc(%ebp),%edi
406157:	85 ff                	test   %edi,%edi
406159:	0f 84 94 00 00 00    	je     0x4061f3
40615f:	56                   	push   %esi
406160:	be 80 00 00 00       	mov    $0x80,%esi
406165:	56                   	push   %esi
406166:	8d 85 00 ff ff ff    	lea    -0x100(%ebp),%eax
40616c:	50                   	push   %eax
40616d:	89 bb e4 05 00 00    	mov    %edi,0x5e4(%ebx)
406173:	e8 9b 6c 00 00       	call   0x40ce13
406178:	56                   	push   %esi
406179:	8d 85 80 fe ff ff    	lea    -0x180(%ebp),%eax
40617f:	50                   	push   %eax
406180:	8d 85 00 ff ff ff    	lea    -0x100(%ebp),%eax
406186:	50                   	push   %eax
406187:	e8 a9 b5 00 00       	call   0x411735
40618c:	83 ef 04             	sub    $0x4,%edi
40618f:	74 28                	je     0x4061b9
406191:	4f                   	dec    %edi
406192:	75 3c                	jne    0x4061d0
406194:	ff 75 24             	push   0x24(%ebp)
406197:	8d 85 00 ff ff ff    	lea    -0x100(%ebp),%eax
40619d:	ff 75 20             	push   0x20(%ebp)
4061a0:	8b cb                	mov    %ebx,%ecx
4061a2:	ff 75 1c             	push   0x1c(%ebp)
4061a5:	ff 75 18             	push   0x18(%ebp)
4061a8:	ff 75 14             	push   0x14(%ebp)
4061ab:	50                   	push   %eax
4061ac:	ff 75 10             	push   0x10(%ebp)
4061af:	ff 75 08             	push   0x8(%ebp)
4061b2:	e8 15 fc ff ff       	call   0x405dcc
4061b7:	eb 17                	jmp    0x4061d0
4061b9:	ff 75 14             	push   0x14(%ebp)
4061bc:	8d 85 00 ff ff ff    	lea    -0x100(%ebp),%eax
4061c2:	50                   	push   %eax
4061c3:	ff 75 10             	push   0x10(%ebp)
4061c6:	8b cb                	mov    %ebx,%ecx
4061c8:	ff 75 08             	push   0x8(%ebp)
4061cb:	e8 11 f7 ff ff       	call   0x4058e1
4061d0:	56                   	push   %esi
4061d1:	8d 85 80 fe ff ff    	lea    -0x180(%ebp),%eax
4061d7:	50                   	push   %eax
4061d8:	e8 eb 6b 00 00       	call   0x40cdc8
4061dd:	68 00 01 00 00       	push   $0x100
4061e2:	8d 85 00 ff ff ff    	lea    -0x100(%ebp),%eax
4061e8:	50                   	push   %eax
4061e9:	e8 da 6b 00 00       	call   0x40cdc8
4061ee:	b0 01                	mov    $0x1,%al
4061f0:	5e                   	pop    %esi
4061f1:	eb 02                	jmp    0x4061f5
4061f3:	32 c0                	xor    %al,%al
4061f5:	5f                   	pop    %edi
4061f6:	5b                   	pop    %ebx
4061f7:	c9                   	leave
4061f8:	c2 20 00             	ret    $0x20
4061fb:	0f b6 44 24 0c       	movzbl 0xc(%esp),%eax
406200:	50                   	push   %eax
406201:	ff 74 24 0c          	push   0xc(%esp)
406205:	ff 74 24 0c          	push   0xc(%esp)
406209:	ff 15 88 a2 42 00    	call   *0x42a288
40620f:	50                   	push   %eax
406210:	ff 15 84 a2 42 00    	call   *0x42a284
406216:	c2 0c 00             	ret    $0xc
406219:	0f b6 44 24 0c       	movzbl 0xc(%esp),%eax
40621e:	f7 d8                	neg    %eax
406220:	1b c0                	sbb    %eax,%eax
406222:	83 e0 09             	and    $0x9,%eax
406225:	50                   	push   %eax
406226:	ff 74 24 0c          	push   0xc(%esp)
40622a:	ff 74 24 0c          	push   0xc(%esp)
40622e:	ff 15 88 a2 42 00    	call   *0x42a288
406234:	50                   	push   %eax
406235:	ff 15 8c a2 42 00    	call   *0x42a28c
40623b:	c2 0c 00             	ret    $0xc
40623e:	55                   	push   %ebp
40623f:	8b ec                	mov    %esp,%ebp
406241:	83 7d 0c 30          	cmpl   $0x30,0xc(%ebp)
406245:	74 24                	je     0x40626b
406247:	81 7d 0c 10 01 00 00 	cmpl   $0x110,0xc(%ebp)
40624e:	75 28                	jne    0x406278
406250:	8a 45 20             	mov    0x20(%ebp),%al
406253:	24 01                	and    $0x1,%al
406255:	0f b6 c0             	movzbl %al,%eax
406258:	50                   	push   %eax
406259:	ff 75 18             	push   0x18(%ebp)
40625c:	b9 84 2a 43 00       	mov    $0x432a84,%ecx
406261:	ff 75 08             	push   0x8(%ebp)
406264:	e8 20 5d 00 00       	call   0x40bf89
406269:	eb 0d                	jmp    0x406278
40626b:	ff 75 08             	push   0x8(%ebp)
40626e:	b9 84 2a 43 00       	mov    $0x432a84,%ecx
406273:	e8 c8 57 00 00       	call   0x40ba40
406278:	32 c0                	xor    %al,%al
40627a:	5d                   	pop    %ebp
40627b:	c2 1c 00             	ret    $0x1c
40627e:	8b c1                	mov    %ecx,%eax
406280:	33 c9                	xor    %ecx,%ecx
406282:	88 48 04             	mov    %cl,0x4(%eax)
406285:	89 48 08             	mov    %ecx,0x8(%eax)
406288:	89 48 0c             	mov    %ecx,0xc(%eax)
40628b:	89 48 10             	mov    %ecx,0x10(%eax)
40628e:	c3                   	ret
40628f:	55                   	push   %ebp
406290:	8b ec                	mov    %esp,%ebp
406292:	83 ec 0c             	sub    $0xc,%esp
406295:	53                   	push   %ebx
406296:	56                   	push   %esi
406297:	8b 75 0c             	mov    0xc(%ebp),%esi
40629a:	33 d2                	xor    %edx,%edx
40629c:	8b d9                	mov    %ecx,%ebx
40629e:	8a 0e                	mov    (%esi),%cl
4062a0:	42                   	inc    %edx
4062a1:	33 c0                	xor    %eax,%eax
4062a3:	57                   	push   %edi
4062a4:	8b 7d 14             	mov    0x14(%ebp),%edi
4062a7:	89 5d f8             	mov    %ebx,-0x8(%ebp)
4062aa:	88 4d 0f             	mov    %cl,0xf(%ebp)
4062ad:	39 55 10             	cmp    %edx,0x10(%ebp)
4062b0:	0f 86 ad 00 00 00    	jbe    0x406363
4062b6:	3b 45 18             	cmp    0x18(%ebp),%eax
4062b9:	0f 83 a9 00 00 00    	jae    0x406368
4062bf:	83 7b 08 00          	cmpl   $0x0,0x8(%ebx)
4062c3:	75 0e                	jne    0x4062d3
4062c5:	8a 0c 32             	mov    (%edx,%esi,1),%cl
4062c8:	88 4b 04             	mov    %cl,0x4(%ebx)
4062cb:	42                   	inc    %edx
4062cc:	c7 43 08 08 00 00 00 	movl   $0x8,0x8(%ebx)
4062d3:	0f b6 4b 04          	movzbl 0x4(%ebx),%ecx
4062d7:	c1 e9 06             	shr    $0x6,%ecx
4062da:	83 e9 00             	sub    $0x0,%ecx
4062dd:	0f 84 fa 00 00 00    	je     0x4063dd
4062e3:	49                   	dec    %ecx
4062e4:	0f 84 cf 00 00 00    	je     0x4063b9
4062ea:	49                   	dec    %ecx
4062eb:	0f 84 a8 00 00 00    	je     0x406399
4062f1:	49                   	dec    %ecx
4062f2:	75 5e                	jne    0x406352
4062f4:	0f b6 0c 32          	movzbl (%edx,%esi,1),%ecx
4062f8:	42                   	inc    %edx
4062f9:	84 c9                	test   %cl,%cl
4062fb:	79 7c                	jns    0x406379
4062fd:	8a 1c 32             	mov    (%edx,%esi,1),%bl
406300:	83 e1 7f             	and    $0x7f,%ecx
406303:	42                   	inc    %edx
406304:	41                   	inc    %ecx
406305:	41                   	inc    %ecx
406306:	88 5d ff             	mov    %bl,-0x1(%ebp)
406309:	89 4d f4             	mov    %ecx,-0xc(%ebp)
40630c:	85 c9                	test   %ecx,%ecx
40630e:	7e 3f                	jle    0x40634f
406310:	3b 45 18             	cmp    0x18(%ebp),%eax
406313:	73 3a                	jae    0x40634f
406315:	8b 4d 08             	mov    0x8(%ebp),%ecx
406318:	66 0f be 0c 08       	movsbw (%eax,%ecx,1),%cx
40631d:	66 0f b6 7d ff       	movzbw -0x1(%ebp),%di
406322:	66 03 cf             	add    %di,%cx
406325:	bf ff 00 00 00       	mov    $0xff,%edi
40632a:	66 23 cf             	and    %di,%cx
40632d:	66 0f b6 7d 0f       	movzbw 0xf(%ebp),%di
406332:	bb 00 01 00 00       	mov    $0x100,%ebx
406337:	66 0f af fb          	imul   %bx,%di
40633b:	66 03 cf             	add    %di,%cx
40633e:	8b 7d 14             	mov    0x14(%ebp),%edi
406341:	ff 4d f4             	decl   -0xc(%ebp)
406344:	66 89 0c 47          	mov    %cx,(%edi,%eax,2)
406348:	40                   	inc    %eax
406349:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
40634d:	7f c1                	jg     0x406310
40634f:	8b 5d f8             	mov    -0x8(%ebp),%ebx
406352:	c0 63 04 02          	shlb   $0x2,0x4(%ebx)
406356:	83 43 08 fe          	addl   $0xfffffffe,0x8(%ebx)
40635a:	3b 55 10             	cmp    0x10(%ebp),%edx
40635d:	0f 82 53 ff ff ff    	jb     0x4062b6
406363:	3b 45 18             	cmp    0x18(%ebp),%eax
406366:	72 04                	jb     0x40636c
406368:	8b 45 18             	mov    0x18(%ebp),%eax
40636b:	48                   	dec    %eax
40636c:	33 c9                	xor    %ecx,%ecx
40636e:	66 89 0c 47          	mov    %cx,(%edi,%eax,2)
406372:	5f                   	pop    %edi
406373:	5e                   	pop    %esi
406374:	5b                   	pop    %ebx
406375:	c9                   	leave
406376:	c2 14 00             	ret    $0x14
406379:	41                   	inc    %ecx
40637a:	41                   	inc    %ecx
40637b:	eb 16                	jmp    0x406393
40637d:	3b 45 18             	cmp    0x18(%ebp),%eax
406380:	73 d0                	jae    0x406352
406382:	8b 5d 08             	mov    0x8(%ebp),%ebx
406385:	66 0f be 1c 18       	movsbw (%eax,%ebx,1),%bx
40638a:	66 89 1c 47          	mov    %bx,(%edi,%eax,2)
40638e:	8b 5d f8             	mov    -0x8(%ebp),%ebx
406391:	49                   	dec    %ecx
406392:	40                   	inc    %eax