405db3:	50                   	push   %eax
405db4:	e8 0f 70 00 00       	call   0x40cdc8
405db9:	56                   	push   %esi
405dba:	8d 45 9c             	lea    -0x64(%ebp),%eax
405dbd:	50                   	push   %eax
405dbe:	e8 05 70 00 00       	call   0x40cdc8
405dc3:	5f                   	pop    %edi
405dc4:	5e                   	pop    %esi
405dc5:	83 c5 58             	add    $0x58,%ebp
405dc8:	c9                   	leave
405dc9:	c2 20 00             	ret    $0x20
405dcc:	55                   	push   %ebp
405dcd:	8b ec                	mov    %esp,%ebp
405dcf:	81 ec 64 02 00 00    	sub    $0x264,%esp
405dd5:	53                   	push   %ebx
405dd6:	57                   	push   %edi
405dd7:	8b 7d 1c             	mov    0x1c(%ebp),%edi
405dda:	8b d9                	mov    %ecx,%ebx
405ddc:	89 5d fc             	mov    %ebx,-0x4(%ebp)
405ddf:	83 ff 18             	cmp    $0x18,%edi
405de2:	0f 87 8d 01 00 00    	ja     0x405f75
405de8:	83 65 1c 00          	andl   $0x0,0x1c(%ebp)
405dec:	56                   	push   %esi
405ded:	8d b3 02 01 00 00    	lea    0x102(%ebx),%esi
405df3:	39 7e 12             	cmp    %edi,0x12(%esi)
405df6:	75 24                	jne    0x405e1c
405df8:	ff 75 0c             	push   0xc(%ebp)
405dfb:	8b cb                	mov    %ebx,%ecx
405dfd:	e8 95 70 00 00       	call   0x40ce97
405e02:	84 c0                	test   %al,%al
405e04:	74 16                	je     0x405e1c
405e06:	6a 10                	push   $0x10
405e08:	ff 75 14             	push   0x14(%ebp)
405e0b:	56                   	push   %esi
405e0c:	e8 d3 47 01 00       	call   0x41a5e4
405e11:	83 c4 0c             	add    $0xc,%esp
405e14:	85 c0                	test   %eax,%eax
405e16:	0f 84 5f 01 00 00    	je     0x405f7b
405e1c:	ff 45 1c             	incl   0x1c(%ebp)
405e1f:	81 c3 78 01 00 00    	add    $0x178,%ebx
405e25:	83 7d 1c 04          	cmpl   $0x4,0x1c(%ebp)
405e29:	72 c2                	jb     0x405ded
405e2b:	be 00 02 00 00       	mov    $0x200,%esi
405e30:	56                   	push   %esi
405e31:	8d 85 9c fd ff ff    	lea    -0x264(%ebp),%eax
405e37:	50                   	push   %eax
405e38:	ff 75 10             	push   0x10(%ebp)
405e3b:	e8 df b9 00 00       	call   0x41181f
405e40:	33 c0                	xor    %eax,%eax
405e42:	40                   	inc    %eax
405e43:	8b cf                	mov    %edi,%ecx
405e45:	d3 e0                	shl    %cl,%eax
405e47:	50                   	push   %eax
405e48:	8d 45 bc             	lea    -0x44(%ebp),%eax
405e4b:	50                   	push   %eax
405e4c:	8d 45 9c             	lea    -0x64(%ebp),%eax
405e4f:	50                   	push   %eax
405e50:	8d 45 dc             	lea    -0x24(%ebp),%eax
405e53:	50                   	push   %eax
405e54:	6a 10                	push   $0x10
405e56:	ff 75 14             	push   0x14(%ebp)
405e59:	8d 85 9c fd ff ff    	lea    -0x264(%ebp),%eax
405e5f:	50                   	push   %eax
405e60:	e8 db 45 01 00       	call   0x41a440
405e65:	59                   	pop    %ecx
405e66:	50                   	push   %eax
405e67:	8d 85 9c fd ff ff    	lea    -0x264(%ebp),%eax
405e6d:	50                   	push   %eax
405e6e:	e8 3e fe ff ff       	call   0x405cb1
405e73:	56                   	push   %esi
405e74:	8d 85 9c fd ff ff    	lea    -0x264(%ebp),%eax
405e7a:	50                   	push   %eax
405e7b:	e8 48 6f 00 00       	call   0x40cdc8
405e80:	8b 55 fc             	mov    -0x4(%ebp),%edx
405e83:	8b 75 0c             	mov    0xc(%ebp),%esi
405e86:	8d 82 e0 05 00 00    	lea    0x5e0(%edx),%eax
405e8c:	8b 08                	mov    (%eax),%ecx
405e8e:	8b d9                	mov    %ecx,%ebx
405e90:	83 e3 03             	and    $0x3,%ebx
405e93:	69 db 78 01 00 00    	imul   $0x178,%ebx,%ebx
405e99:	03 da                	add    %edx,%ebx
405e9b:	41                   	inc    %ecx
405e9c:	89 08                	mov    %ecx,(%eax)
405e9e:	6a 40                	push   $0x40
405ea0:	89 bb 14 01 00 00    	mov    %edi,0x114(%ebx)
405ea6:	59                   	pop    %ecx
405ea7:	8b fb                	mov    %ebx,%edi
405ea9:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
405eab:	6a 10                	push   $0x10
405ead:	ff 75 14             	push   0x14(%ebp)
405eb0:	8d 83 02 01 00 00    	lea    0x102(%ebx),%eax
405eb6:	50                   	push   %eax
405eb7:	66 a5                	movsw  %ds:(%esi),%es:(%edi)
405eb9:	e8 b2 5d 01 00       	call   0x41bc70
405ebe:	6a 20                	push   $0x20
405ec0:	5e                   	pop    %esi
405ec1:	56                   	push   %esi
405ec2:	8d 45 dc             	lea    -0x24(%ebp),%eax
405ec5:	50                   	push   %eax
405ec6:	8d bb 18 01 00 00    	lea    0x118(%ebx),%edi
405ecc:	57                   	push   %edi
405ecd:	e8 9e 5d 01 00       	call   0x41bc70
405ed2:	56                   	push   %esi
405ed3:	8d 45 bc             	lea    -0x44(%ebp),%eax
405ed6:	50                   	push   %eax
405ed7:	8d 83 38 01 00 00    	lea    0x138(%ebx),%eax
405edd:	50                   	push   %eax
405ede:	e8 8d 5d 01 00       	call   0x41bc70
405ee3:	56                   	push   %esi
405ee4:	8d 45 9c             	lea    -0x64(%ebp),%eax
405ee7:	50                   	push   %eax
405ee8:	81 c3 58 01 00 00    	add    $0x158,%ebx
405eee:	53                   	push   %ebx
405eef:	e8 7c 5d 01 00       	call   0x41bc70
405ef4:	83 c4 30             	add    $0x30,%esp
405ef7:	6a 01                	push   $0x1
405ef9:	56                   	push   %esi
405efa:	57                   	push   %edi
405efb:	e8 22 6e 00 00       	call   0x40cd22
405f00:	33 db                	xor    %ebx,%ebx
405f02:	39 5d 20             	cmp    %ebx,0x20(%ebp)
405f05:	74 10                	je     0x405f17
405f07:	56                   	push   %esi
405f08:	8d 45 9c             	lea    -0x64(%ebp),%eax
405f0b:	50                   	push   %eax
405f0c:	ff 75 20             	push   0x20(%ebp)
405f0f:	e8 5c 5d 01 00       	call   0x41bc70
405f14:	83 c4 0c             	add    $0xc,%esp
405f17:	8b 7d 24             	mov    0x24(%ebp),%edi
405f1a:	3b fb                	cmp    %ebx,%edi
405f1c:	74 2a                	je     0x405f48
405f1e:	6a 08                	push   $0x8
405f20:	53                   	push   %ebx
405f21:	57                   	push   %edi
405f22:	e8 d9 42 01 00       	call   0x41a200
405f27:	83 c4 0c             	add    $0xc,%esp
405f2a:	33 c9                	xor    %ecx,%ecx
405f2c:	8a 54 0d bc          	mov    -0x44(%ebp,%ecx,1),%dl
405f30:	8b c1                	mov    %ecx,%eax
405f32:	83 e0 07             	and    $0x7,%eax
405f35:	03 c7                	add    %edi,%eax
405f37:	30 10                	xor    %dl,(%eax)
405f39:	41                   	inc    %ecx
405f3a:	3b ce                	cmp    %esi,%ecx
405f3c:	72 ee                	jb     0x405f2c
405f3e:	56                   	push   %esi
405f3f:	8d 45 bc             	lea    -0x44(%ebp),%eax
405f42:	50                   	push   %eax
405f43:	e8 80 6e 00 00       	call   0x40cdc8
405f48:	39 5d 18             	cmp    %ebx,0x18(%ebp)
405f4b:	74 1d                	je     0x405f6a
405f4d:	ff 75 18             	push   0x18(%ebp)
405f50:	8b 4d fc             	mov    -0x4(%ebp),%ecx
405f53:	68 00 01 00 00       	push   $0x100
405f58:	8d 45 dc             	lea    -0x24(%ebp),%eax
405f5b:	50                   	push   %eax
405f5c:	ff 75 08             	push   0x8(%ebp)
405f5f:	81 c1 e8 05 00 00    	add    $0x5e8,%ecx
405f65:	e8 15 69 00 00       	call   0x40c87f
405f6a:	56                   	push   %esi
405f6b:	8d 45 dc             	lea    -0x24(%ebp),%eax
405f6e:	50                   	push   %eax
405f6f:	e8 54 6e 00 00       	call   0x40cdc8
405f74:	5e                   	pop    %esi
405f75:	5f                   	pop    %edi
405f76:	5b                   	pop    %ebx
405f77:	c9                   	leave
405f78:	c2 20 00             	ret    $0x20
405f7b:	6a 00                	push   $0x0
405f7d:	6a 20                	push   $0x20
405f7f:	5e                   	pop    %esi
405f80:	56                   	push   %esi
405f81:	8d bb 18 01 00 00    	lea    0x118(%ebx),%edi
405f87:	57                   	push   %edi
405f88:	e8 95 6d 00 00       	call   0x40cd22
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