406edc:	d1 fe                	sar    $1,%esi
406ede:	5a                   	pop    %edx
406edf:	89 74 24 3c          	mov    %esi,0x3c(%esp)
406ee3:	e8 47 37 00 00       	call   0x40a62f
406ee8:	85 c0                	test   %eax,%eax
406eea:	75 71                	jne    0x406f5d
406eec:	6a 3f                	push   $0x3f
406eee:	5a                   	pop    %edx
406eef:	8b cb                	mov    %ebx,%ecx
406ef1:	e8 39 37 00 00       	call   0x40a62f
406ef6:	85 c0                	test   %eax,%eax
406ef8:	75 63                	jne    0x406f5d
406efa:	a1 3c 67 43 00       	mov    0x43673c,%eax
406eff:	8b 4c 24 20          	mov    0x20(%esp),%ecx
406f03:	8b 54 24 18          	mov    0x18(%esp),%edx
406f07:	89 1c 88             	mov    %ebx,(%eax,%ecx,4)
406f0a:	8b 44 24 14          	mov    0x14(%esp),%eax
406f0e:	8b 48 40             	mov    0x40(%eax),%ecx
406f11:	e8 a5 9c 00 00       	call   0x410bbb
406f16:	89 44 24 1c          	mov    %eax,0x1c(%esp)
406f1a:	85 ff                	test   %edi,%edi
406f1c:	75 36                	jne    0x406f54
406f1e:	8b 3d 78 67 43 00    	mov    0x436778,%edi
406f24:	33 d2                	xor    %edx,%edx
406f26:	89 54 24 18          	mov    %edx,0x18(%esp)
406f2a:	8d 1c 73             	lea    (%ebx,%esi,2),%ebx
406f2d:	83 c3 02             	add    $0x2,%ebx
406f30:	66 39 13             	cmp    %dx,(%ebx)
406f33:	0f 85 6e ff ff ff    	jne    0x406ea7
406f39:	8b 44 24 1c          	mov    0x1c(%esp),%eax
406f3d:	8b 8c 24 94 02 00 00 	mov    0x294(%esp),%ecx
406f44:	5f                   	pop    %edi
406f45:	5e                   	pop    %esi
406f46:	5b                   	pop    %ebx
406f47:	33 cc                	xor    %esp,%ecx
406f49:	e8 e2 fb 00 00       	call   0x416b30
406f4e:	8b e5                	mov    %ebp,%esp
406f50:	5d                   	pop    %ebp
406f51:	c2 0c 00             	ret    $0xc
406f54:	8b cf                	mov    %edi,%ecx
406f56:	e8 34 aa 00 00       	call   0x41198f
406f5b:	eb c7                	jmp    0x406f24
406f5d:	8b cb                	mov    %ebx,%ecx
406f5f:	e8 fc 90 00 00       	call   0x410060
406f64:	8b c8                	mov    %eax,%ecx
406f66:	e8 45 3d 00 00       	call   0x40acb0
406f6b:	8b d0                	mov    %eax,%edx
406f6d:	8b 44 24 14          	mov    0x14(%esp),%eax
406f71:	89 54 24 34          	mov    %edx,0x34(%esp)
406f75:	8b 48 48             	mov    0x48(%eax),%ecx
406f78:	80 e1 02             	and    $0x2,%cl
406f7b:	0f b6 c1             	movzbl %cl,%eax
406f7e:	8d 4c 24 30          	lea    0x30(%esp),%ecx
406f82:	51                   	push   %ecx
406f83:	f7 d8                	neg    %eax
406f85:	8d 4c 24 44          	lea    0x44(%esp),%ecx
406f89:	51                   	push   %ecx
406f8a:	1b c0                	sbb    %eax,%eax
406f8c:	33 c9                	xor    %ecx,%ecx
406f8e:	25 10 10 00 00       	and    $0x1010,%eax
406f93:	83 c0 25             	add    $0x25,%eax
406f96:	51                   	push   %ecx
406f97:	50                   	push   %eax
406f98:	b9 d0 59 41 00       	mov    $0x4159d0,%ecx
406f9d:	89 44 24 48          	mov    %eax,0x48(%esp)
406fa1:	e8 f4 e8 00 00       	call   0x41589a
406fa6:	84 c0                	test   %al,%al
406fa8:	0f 84 6f 01 00 00    	je     0x40711d
406fae:	8b 74 24 24          	mov    0x24(%esp),%esi
406fb2:	8b ce                	mov    %esi,%ecx
406fb4:	8b 44 24 34          	mov    0x34(%esp),%eax
406fb8:	89 06                	mov    %eax,(%esi)
406fba:	e8 62 1f 00 00       	call   0x408f21
406fbf:	8b 46 0c             	mov    0xc(%esi),%eax
406fc2:	8b 16                	mov    (%esi),%edx
406fc4:	85 c0                	test   %eax,%eax
406fc6:	0f 84 86 37 01 00    	je     0x41a752
406fcc:	2b c2                	sub    %edx,%eax
406fce:	d1 f8                	sar    $1,%eax
406fd0:	8d 04 45 02 00 00 00 	lea    0x2(,%eax,2),%eax
406fd7:	8b ca                	mov    %edx,%ecx
406fd9:	89 44 24 2c          	mov    %eax,0x2c(%esp)
406fdd:	8d 71 02             	lea    0x2(%ecx),%esi
406fe0:	66 8b 01             	mov    (%ecx),%ax
406fe3:	83 c1 02             	add    $0x2,%ecx
406fe6:	66 3b 44 24 28       	cmp    0x28(%esp),%ax
406feb:	75 f3                	jne    0x406fe0
406fed:	2b ce                	sub    %esi,%ecx
406fef:	d1 f9                	sar    $1,%ecx
406ff1:	0f 84 0f 38 01 00    	je     0x41a806
406ff7:	8d 4a 02             	lea    0x2(%edx),%ecx
406ffa:	33 f6                	xor    %esi,%esi
406ffc:	66 8b 02             	mov    (%edx),%ax
406fff:	83 c2 02             	add    $0x2,%edx
407002:	66 3b c6             	cmp    %si,%ax
407005:	75 f5                	jne    0x406ffc
407007:	2b d1                	sub    %ecx,%edx
407009:	d1 fa                	sar    $1,%edx
40700b:	8d 42 01             	lea    0x1(%edx),%eax
40700e:	8d 0c 00             	lea    (%eax,%eax,1),%ecx
407011:	89 44 24 10          	mov    %eax,0x10(%esp)
407015:	e8 b6 6c 00 00       	call   0x40dcd0
40701a:	8b f0                	mov    %eax,%esi
40701c:	85 f6                	test   %esi,%esi
40701e:	0f 84 e2 37 01 00    	je     0x41a806
407024:	8b 54 24 24          	mov    0x24(%esp),%edx
407028:	8b ce                	mov    %esi,%ecx
40702a:	ff 32                	push   (%edx)
40702c:	8b 54 24 14          	mov    0x14(%esp),%edx
407030:	e8 6b 83 00 00       	call   0x40f3a0
407035:	e8 06 b0 00 00       	call   0x412040
40703a:	8d 4c 24 6c          	lea    0x6c(%esp),%ecx
40703e:	8d 51 02             	lea    0x2(%ecx),%edx
407041:	66 8b 01             	mov    (%ecx),%ax
407044:	83 c1 02             	add    $0x2,%ecx
407047:	66 3b 44 24 28       	cmp    0x28(%esp),%ax
40704c:	75 f3                	jne    0x407041
40704e:	2b ca                	sub    %edx,%ecx
407050:	8b 54 24 10          	mov    0x10(%esp),%edx
407054:	d1 f9                	sar    $1,%ecx
407056:	8d 04 11             	lea    (%ecx,%edx,1),%eax
407059:	3b d0                	cmp    %eax,%edx
40705b:	73 2c                	jae    0x407089
40705d:	89 44 24 10          	mov    %eax,0x10(%esp)
407061:	8d 14 00             	lea    (%eax,%eax,1),%edx
407064:	85 f6                	test   %esi,%esi
407066:	0f 84 ed 36 01 00    	je     0x41a759
40706c:	8b ce                	mov    %esi,%ecx
40706e:	e8 ad 6c 00 00       	call   0x40dd20
407073:	85 c0                	test   %eax,%eax
407075:	0f 84 84 37 01 00    	je     0x41a7ff
40707b:	8b f0                	mov    %eax,%esi
40707d:	85 f6                	test   %esi,%esi
40707f:	0f 84 81 37 01 00    	je     0x41a806
407085:	8b 54 24 10          	mov    0x10(%esp),%edx
407089:	8b 44 24 2c          	mov    0x2c(%esp),%eax
40708d:	33 c9                	xor    %ecx,%ecx
40708f:	66 89 0c 30          	mov    %cx,(%eax,%esi,1)
407093:	8d 44 24 6c          	lea    0x6c(%esp),%eax
407097:	50                   	push   %eax
407098:	8b ce                	mov    %esi,%ecx
40709a:	e8 a1 8b 00 00       	call   0x40fc40
40709f:	8b 44 24 14          	mov    0x14(%esp),%eax
4070a3:	f6 40 48 02          	testb  $0x2,0x48(%eax)
4070a7:	0f 85 b8 36 01 00    	jne    0x41a765
4070ad:	a1 3c 67 43 00       	mov    0x43673c,%eax
4070b2:	8b 4c 24 20          	mov    0x20(%esp),%ecx
4070b6:	8b 54 24 18          	mov    0x18(%esp),%edx
4070ba:	89 34 88             	mov    %esi,(%eax,%ecx,4)
4070bd:	8b 44 24 14          	mov    0x14(%esp),%eax
4070c1:	8b 48 40             	mov    0x40(%eax),%ecx
4070c4:	e8 f2 9a 00 00       	call   0x410bbb
4070c9:	8b 4c 24 20          	mov    0x20(%esp),%ecx
4070cd:	33 d2                	xor    %edx,%edx
4070cf:	89 44 24 1c          	mov    %eax,0x1c(%esp)
4070d3:	a1 3c 67 43 00       	mov    0x43673c,%eax
4070d8:	89 54 24 18          	mov    %edx,0x18(%esp)
4070dc:	89 14 88             	mov    %edx,(%eax,%ecx,4)
4070df:	83 3d 9c 25 43 00 00 	cmpl   $0x0,0x43259c
4070e6:	75 45                	jne    0x40712d
4070e8:	ff 74 24 30          	push   0x30(%esp)
4070ec:	8d 54 24 44          	lea    0x44(%esp),%edx
4070f0:	b9 d0 59 41 00       	mov    $0x4159d0,%ecx
4070f5:	ff 74 24 3c          	push   0x3c(%esp)
4070f9:	e8 53 e7 00 00       	call   0x415851
4070fe:	84 c0                	test   %al,%al
407100:	0f 85 e7 36 01 00    	jne    0x41a7ed
407106:	85 ff                	test   %edi,%edi
407108:	75 2a                	jne    0x407134
40710a:	8b 3d 78 67 43 00    	mov    0x436778,%edi
407110:	8b 4c 24 30          	mov    0x30(%esp),%ecx
407114:	e8 34 1a 00 00       	call   0x408b4d
407119:	8b 74 24 3c          	mov    0x3c(%esp),%esi
40711d:	8b 4c 24 34          	mov    0x34(%esp),%ecx
407121:	e8 3a 6b 00 00       	call   0x40dc60
407126:	33 d2                	xor    %edx,%edx
407128:	e9 fd fd ff ff       	jmp    0x406f2a
40712d:	e8 83 27 02 00       	call   0x4298b5
407132:	eb b4                	jmp    0x4070e8
407134:	8b cf                	mov    %edi,%ecx
407136:	e8 54 a8 00 00       	call   0x41198f
40713b:	eb d3                	jmp    0x407110
40713d:	cc                   	int3
40713e:	cc                   	int3
40713f:	cc                   	int3
407140:	8b 0d 48 67 43 00    	mov    0x436748,%ecx
407146:	e8 d6 00 00 00       	call   0x407221
40714b:	33 c0                	xor    %eax,%eax
40714d:	c2 04 00             	ret    $0x4
407150:	8b ff                	mov    %edi,%edi
407152:	55                   	push   %ebp
407153:	8b ec                	mov    %esp,%ebp
407155:	51                   	push   %ecx
407156:	51                   	push   %ecx
407157:	53                   	push   %ebx
407158:	56                   	push   %esi
407159:	57                   	push   %edi
40715a:	8b 7d 08             	mov    0x8(%ebp),%edi
40715d:	33 db                	xor    %ebx,%ebx
40715f:	8b 77 3c             	mov    0x3c(%edi),%esi
407162:	85 f6                	test   %esi,%esi
407164:	0f 84 83 00 00 00    	je     0x4071ed
40716a:	6a 20                	push   $0x20
40716c:	59                   	pop    %ecx
40716d:	0f b7 06             	movzwl (%esi),%eax
407170:	66 85 c0             	test   %ax,%ax
407173:	74 09                	je     0x40717e
407175:	66 3b c1             	cmp    %cx,%ax
407178:	0f 86 94 00 00 00    	jbe    0x407212
40717e:	85 f6                	test   %esi,%esi
407180:	74 6b                	je     0x4071ed
407182:	6a 02                	push   $0x2
407184:	68 a4 1f 40 00       	push   $0x401fa4
407189:	56                   	push   %esi
40718a:	ff 15 28 a4 44 00    	call   *0x44a428
407190:	83 c4 0c             	add    $0xc,%esp
407193:	85 c0                	test   %eax,%eax
407195:	75 28                	jne    0x4071bf
407197:	c7 07 14 00 00 00    	movl   $0x14,(%edi)
40719d:	c7 47 3c 8c 22 40 00 	movl   $0x40228c,0x3c(%edi)
4071a4:	83 c6 04             	add    $0x4,%esi
4071a7:	74 4d                	je     0x4071f6
4071a9:	6a 20                	push   $0x20
4071ab:	59                   	pop    %ecx
4071ac:	0f b7 06             	movzwl (%esi),%eax
4071af:	66 85 c0             	test   %ax,%ax
4071b2:	74 0b                	je     0x4071bf
4071b4:	66 3b c1             	cmp    %cx,%ax
4071b7:	77 06                	ja     0x4071bf
4071b9:	46                   	inc    %esi
4071ba:	83 c6 01             	add    $0x1,%esi
4071bd:	75 ed                	jne    0x4071ac
4071bf:	85 f6                	test   %esi,%esi
4071c1:	74 2a                	je     0x4071ed
4071c3:	8d 45 fc             	lea    -0x4(%ebp),%eax
4071c6:	50                   	push   %eax
4071c7:	68 50 20 40 00       	push   $0x402050
4071cc:	56                   	push   %esi
4071cd:	ff 15 8c a3 44 00    	call   *0x44a38c
4071d3:	83 c4 0c             	add    $0xc,%esp
4071d6:	83 f8 01             	cmp    $0x1,%eax
4071d9:	75 12                	jne    0x4071ed
4071db:	8b 45 fc             	mov    -0x4(%ebp),%eax
4071de:	a3 dc 65 43 00       	mov    %eax,0x4365dc
4071e3:	39 1d 58 67 43 00    	cmp    %ebx,0x436758
4071e9:	74 02                	je     0x4071ed
4071eb:	8b d8                	mov    %eax,%ebx
4071ed:	83 3f 14             	cmpl   $0x14,(%edi)
4071f0:	0f 85 23 36 01 00    	jne    0x41a819
4071f6:	83 3d 48 67 43 00 00 	cmpl   $0x0,0x436748
4071fd:	0f 84 16 36 01 00    	je     0x41a819
407203:	57                   	push   %edi
407204:	e8 b7 54 00 00       	call   0x40c6c0
407209:	5f                   	pop    %edi
40720a:	5e                   	pop    %esi
40720b:	8b c3                	mov    %ebx,%eax
40720d:	5b                   	pop    %ebx
40720e:	c9                   	leave
40720f:	c2 04 00             	ret    $0x4
407212:	46                   	inc    %esi
407213:	83 c6 01             	add    $0x1,%esi
407216:	0f 85 51 ff ff ff    	jne    0x40716d
40721c:	e9 5d ff ff ff       	jmp    0x40717e
407221:	8b ff                	mov    %edi,%edi
407223:	56                   	push   %esi
407224:	57                   	push   %edi
407225:	85 c9                	test   %ecx,%ecx
407227:	0f 84 8f 00 00 00    	je     0x4072bc
40722d:	8b 41 14             	mov    0x14(%ecx),%eax
407230:	85 c0                	test   %eax,%eax
407232:	0f 84 84 00 00 00    	je     0x4072bc
407238:	48                   	dec    %eax
407239:	89 41 14             	mov    %eax,0x14(%ecx)
40723c:	8b b4 81 90 00 00 00 	mov    0x90(%ecx,%eax,4),%esi
407243:	83 a4 81 90 00 00 00 	andl   $0x0,0x90(%ecx,%eax,4)
40724a:	00
40724b:	85 f6                	test   %esi,%esi
40724d:	74 6d                	je     0x4072bc
40724f:	8b 3e                	mov    (%esi),%edi
407251:	0f b7 07             	movzwl (%edi),%eax
407254:	83 f8 61             	cmp    $0x61,%eax
407257:	0f 83 e0 35 01 00    	jae    0x41a83d
40725d:	8b c8                	mov    %eax,%ecx
40725f:	a1 f8 8d 44 00       	mov    0x448df8,%eax
407264:	85 c0                	test   %eax,%eax
407266:	74 57                	je     0x4072bf
407268:	66 39 08             	cmp    %cx,(%eax)
40726b:	0f 85 e0 35 01 00    	jne    0x41a851
407271:	33 d2                	xor    %edx,%edx
407273:	8b cf                	mov    %edi,%ecx
407275:	42                   	inc    %edx
407276:	e8 4c 19 00 00       	call   0x408bc7
40727b:	ff 36                	push   (%esi)
40727d:	6a 00                	push   $0x0
40727f:	ff 15 34 a1 44 00    	call   *0x44a134
407285:	50                   	push   %eax
407286:	ff 15 3c a1 44 00    	call   *0x44a13c
40728c:	8b 4e 04             	mov    0x4(%esi),%ecx
40728f:	e8 5a 00 00 00       	call   0x4072ee
407294:	8b 4e 04             	mov    0x4(%esi),%ecx
407297:	e8 2a 00 00 00       	call   0x4072c6
40729c:	8a 46 08             	mov    0x8(%esi),%al
40729f:	a2 55 67 43 00       	mov    %al,0x436755
4072a4:	8a 46 09             	mov    0x9(%esi),%al
4072a7:	56                   	push   %esi
4072a8:	6a 00                	push   $0x0
4072aa:	a2 54 67 43 00       	mov    %al,0x436754
4072af:	ff 15 34 a1 44 00    	call   *0x44a134
4072b5:	50                   	push   %eax
4072b6:	ff 15 3c a1 44 00    	call   *0x44a13c
4072bc:	5f                   	pop    %edi
4072bd:	5e                   	pop    %esi
4072be:	c3                   	ret
4072bf:	b8 f0 8b 44 00       	mov    $0x448bf0,%eax
4072c4:	eb a2                	jmp    0x407268
4072c6:	8b ff                	mov    %edi,%edi
4072c8:	56                   	push   %esi
4072c9:	8b f1                	mov    %ecx,%esi
4072cb:	ff 36                	push   (%esi)
4072cd:	6a 00                	push   $0x0
4072cf:	ff 15 34 a1 44 00    	call   *0x44a134
4072d5:	50                   	push   %eax
4072d6:	ff 15 3c a1 44 00    	call   *0x44a13c
4072dc:	56                   	push   %esi
4072dd:	6a 00                	push   $0x0
4072df:	ff 15 34 a1 44 00    	call   *0x44a134
4072e5:	50                   	push   %eax
4072e6:	ff 15 3c a1 44 00    	call   *0x44a13c
4072ec:	5e                   	pop    %esi
4072ed:	c3                   	ret
4072ee:	ff 31                	push   (%ecx)
4072f0:	ff 15 b8 a1 44 00    	call   *0x44a1b8
4072f6:	ff 35 94 25 43 00    	push   0x432594
4072fc:	6a 00                	push   $0x0
4072fe:	ff 15 34 a1 44 00    	call   *0x44a134
407304:	50                   	push   %eax
407305:	ff 15 3c a1 44 00    	call   *0x44a13c
40730b:	e8 c4 36 00 00       	call   0x40a9d4
407310:	a3 94 25 43 00       	mov    %eax,0x432594
407315:	c3                   	ret
407316:	cc                   	int3
407317:	cc                   	int3
407318:	cc                   	int3
407319:	cc                   	int3
40731a:	cc                   	int3
40731b:	cc                   	int3
40731c:	cc                   	int3
40731d:	cc                   	int3
40731e:	cc                   	int3
40731f:	cc                   	int3