405f02:	8b 6c 24 18          	mov    0x18(%esp),%ebp
405f06:	eb 06                	jmp    0x405f0e
405f08:	8b 6c 24 18          	mov    0x18(%esp),%ebp
405f0c:	8b c7                	mov    %edi,%eax
405f0e:	53                   	push   %ebx
405f0f:	03 c6                	add    %esi,%eax
405f11:	68 28 c2 42 00       	push   $0x42c228
405f16:	50                   	push   %eax
405f17:	e8 9e fd ff ff       	call   0x405cba
405f1c:	33 c0                	xor    %eax,%eax
405f1e:	50                   	push   %eax
405f1f:	50                   	push   %eax
405f20:	50                   	push   %eax
405f21:	55                   	push   %ebp
405f22:	ff 15 38 81 40 00    	call   *0x408138
405f28:	03 fb                	add    %ebx,%edi
405f2a:	57                   	push   %edi
405f2b:	56                   	push   %esi
405f2c:	55                   	push   %ebp
405f2d:	e8 74 fe ff ff       	call   0x405da6
405f32:	56                   	push   %esi
405f33:	ff 15 5c 81 40 00    	call   *0x40815c
405f39:	55                   	push   %ebp
405f3a:	ff 15 14 81 40 00    	call   *0x408114
405f40:	5f                   	pop    %edi
405f41:	5e                   	pop    %esi
405f42:	5d                   	pop    %ebp
405f43:	5b                   	pop    %ebx
405f44:	c3                   	ret
405f45:	6a 05                	push   $0x5
405f47:	ff 74 24 0c          	push   0xc(%esp)
405f4b:	ff 74 24 0c          	push   0xc(%esp)
405f4f:	ff 15 dc 80 40 00    	call   *0x4080dc
405f55:	85 c0                	test   %eax,%eax
405f57:	75 0f                	jne    0x405f68
405f59:	ff 74 24 08          	push   0x8(%esp)
405f5d:	ff 74 24 08          	push   0x8(%esp)
405f61:	e8 6f fe ff ff       	call   0x405dd5
405f66:	59                   	pop    %ecx
405f67:	59                   	pop    %ecx
405f68:	ff 05 d0 f4 42 00    	incl   0x42f4d0
405f6e:	c2 08 00             	ret    $0x8
405f71:	8b 15 2c f4 42 00    	mov    0x42f42c,%edx
405f77:	53                   	push   %ebx
405f78:	8b 5c 24 08          	mov    0x8(%esp),%ebx
405f7c:	57                   	push   %edi
405f7d:	8b 7c 24 10          	mov    0x10(%esp),%edi
405f81:	f7 d2                	not    %edx
405f83:	8b 07                	mov    (%edi),%eax
405f85:	c1 ea 16             	shr    $0x16,%edx
405f88:	81 e2 00 01 00 00    	and    $0x100,%edx
405f8e:	a8 20                	test   $0x20,%al
405f90:	74 34                	je     0x405fc6
405f92:	f7 c3 00 00 00 60    	test   $0x60000000,%ebx
405f98:	74 2c                	je     0x405fc6
405f9a:	8b cb                	mov    %ebx,%ecx
405f9c:	56                   	push   %esi
405f9d:	c1 e9 15             	shr    $0x15,%ecx
405fa0:	be 00 03 00 00       	mov    $0x300,%esi
405fa5:	23 ce                	and    %esi,%ecx
405fa7:	3b ce                	cmp    %esi,%ecx
405fa9:	5e                   	pop    %esi
405faa:	75 0a                	jne    0x405fb6
405fac:	8b ca                	mov    %edx,%ecx
405fae:	f7 d1                	not    %ecx
405fb0:	23 0d f0 f4 42 00    	and    0x42f4f0,%ecx
405fb6:	80 e4 fe             	and    $0xfe,%ah
405fb9:	0b c1                	or     %ecx,%eax
405fbb:	80 e4 fd             	and    $0xfd,%ah
405fbe:	81 e3 ff ff ff 9f    	and    $0x9fffffff,%ebx
405fc4:	eb 0d                	jmp    0x405fd3
405fc6:	a9 00 00 10 00       	test   $0x100000,%eax
405fcb:	74 06                	je     0x405fd3
405fcd:	0b 05 f0 f4 42 00    	or     0x42f4f0,%eax
405fd3:	8b c8                	mov    %eax,%ecx
405fd5:	23 c2                	and    %edx,%eax
405fd7:	81 e1 df ff ef ff    	and    $0xffefffdf,%ecx
405fdd:	f7 d8                	neg    %eax
405fdf:	1b c0                	sbb    %eax,%eax
405fe1:	89 0f                	mov    %ecx,(%edi)
405fe3:	f7 d0                	not    %eax
405fe5:	23 c3                	and    %ebx,%eax
405fe7:	5f                   	pop    %edi
405fe8:	5b                   	pop    %ebx
405fe9:	c2 08 00             	ret    $0x8
405fec:	55                   	push   %ebp
405fed:	8b ec                	mov    %esp,%ebp
405fef:	8d 45 10             	lea    0x10(%ebp),%eax
405ff2:	50                   	push   %eax
405ff3:	ff 75 08             	push   0x8(%ebp)
405ff6:	e8 76 ff ff ff       	call   0x405f71
405ffb:	85 c0                	test   %eax,%eax
405ffd:	75 05                	jne    0x406004
405fff:	6a 06                	push   $0x6
406001:	58                   	pop    %eax
406002:	eb 12                	jmp    0x406016
406004:	ff 75 14             	push   0x14(%ebp)
406007:	ff 75 10             	push   0x10(%ebp)
40600a:	6a 00                	push   $0x0
40600c:	ff 75 0c             	push   0xc(%ebp)
40600f:	50                   	push   %eax
406010:	ff 15 08 80 40 00    	call   *0x408008
406016:	5d                   	pop    %ebp
406017:	c2 10 00             	ret    $0x10
40601a:	55                   	push   %ebp
40601b:	8b ec                	mov    %esp,%ebp
40601d:	8d 45 10             	lea    0x10(%ebp),%eax
406020:	50                   	push   %eax
406021:	ff 75 08             	push   0x8(%ebp)
406024:	e8 48 ff ff ff       	call   0x405f71
406029:	33 c9                	xor    %ecx,%ecx
40602b:	3b c1                	cmp    %ecx,%eax
40602d:	75 05                	jne    0x406034
40602f:	6a 06                	push   $0x6
406031:	58                   	pop    %eax
406032:	eb 15                	jmp    0x406049
406034:	51                   	push   %ecx
406035:	ff 75 14             	push   0x14(%ebp)
406038:	51                   	push   %ecx
406039:	ff 75 10             	push   0x10(%ebp)
40603c:	51                   	push   %ecx
40603d:	51                   	push   %ecx
40603e:	51                   	push   %ecx
40603f:	ff 75 0c             	push   0xc(%ebp)
406042:	50                   	push   %eax
406043:	ff 15 04 80 40 00    	call   *0x408004
406049:	5d                   	pop    %ebp
40604a:	c2 10 00             	ret    $0x10
40604d:	55                   	push   %ebp
40604e:	8b ec                	mov    %esp,%ebp
406050:	51                   	push   %ecx
406051:	8d 45 18             	lea    0x18(%ebp),%eax
406054:	56                   	push   %esi
406055:	50                   	push   %eax
406056:	8b 45 18             	mov    0x18(%ebp),%eax
406059:	f7 d8                	neg    %eax
40605b:	1b c0                	sbb    %eax,%eax
40605d:	c7 45 fc 00 04 00 00 	movl   $0x400,-0x4(%ebp)
406064:	25 00 01 00 00       	and    $0x100,%eax
406069:	0d 19 00 02 00       	or     $0x20019,%eax
40606e:	50                   	push   %eax
40606f:	ff 75 0c             	push   0xc(%ebp)
406072:	ff 75 08             	push   0x8(%ebp)
406075:	e8 72 ff ff ff       	call   0x405fec
40607a:	8b 75 14             	mov    0x14(%ebp),%esi
40607d:	85 c0                	test   %eax,%eax
40607f:	75 3b                	jne    0x4060bc
406081:	8d 45 fc             	lea    -0x4(%ebp),%eax
406084:	57                   	push   %edi
406085:	50                   	push   %eax
406086:	8d 45 0c             	lea    0xc(%ebp),%eax
406089:	56                   	push   %esi
40608a:	50                   	push   %eax
40608b:	6a 00                	push   $0x0
40608d:	ff 75 10             	push   0x10(%ebp)
406090:	ff 75 18             	push   0x18(%ebp)
406093:	ff 15 2c 80 40 00    	call   *0x40802c
406099:	ff 75 18             	push   0x18(%ebp)
40609c:	8b f8                	mov    %eax,%edi
40609e:	ff 15 24 80 40 00    	call   *0x408024
4060a4:	80 a6 ff 03 00 00 00 	andb   $0x0,0x3ff(%esi)
4060ab:	85 ff                	test   %edi,%edi
4060ad:	5f                   	pop    %edi
4060ae:	75 0c                	jne    0x4060bc
4060b0:	83 7d 0c 01          	cmpl   $0x1,0xc(%ebp)
4060b4:	74 09                	je     0x4060bf
4060b6:	83 7d 0c 02          	cmpl   $0x2,0xc(%ebp)
4060ba:	74 03                	je     0x4060bf
4060bc:	80 26 00             	andb   $0x0,(%esi)
4060bf:	5e                   	pop    %esi
4060c0:	c9                   	leave
4060c1:	c2 14 00             	ret    $0x14
4060c4:	ff 74 24 08          	push   0x8(%esp)
4060c8:	68 a4 83 40 00       	push   $0x4083a4
4060cd:	ff 74 24 0c          	push   0xc(%esp)
4060d1:	ff 15 74 82 40 00    	call   *0x408274
4060d7:	83 c4 0c             	add    $0xc,%esp
4060da:	c2 08 00             	ret    $0x8
4060dd:	55                   	push   %ebp
4060de:	8b ec                	mov    %esp,%ebp
4060e0:	51                   	push   %ecx
4060e1:	8b 4d 08             	mov    0x8(%ebp),%ecx
4060e4:	53                   	push   %ebx
4060e5:	56                   	push   %esi
4060e6:	57                   	push   %edi
4060e7:	33 ff                	xor    %edi,%edi
4060e9:	80 39 2d             	cmpb   $0x2d,(%ecx)
4060ec:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
4060f3:	b0 0a                	mov    $0xa,%al
4060f5:	b3 39                	mov    $0x39,%bl
4060f7:	75 05                	jne    0x4060fe
4060f9:	41                   	inc    %ecx
4060fa:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
4060fe:	80 39 30             	cmpb   $0x30,(%ecx)
406101:	75 1c                	jne    0x40611f
406103:	41                   	inc    %ecx
406104:	8a 11                	mov    (%ecx),%dl
406106:	80 fa 30             	cmp    $0x30,%dl
406109:	7c 09                	jl     0x406114
40610b:	80 fa 37             	cmp    $0x37,%dl
40610e:	7f 04                	jg     0x406114
406110:	b0 08                	mov    $0x8,%al
406112:	b3 37                	mov    $0x37,%bl
406114:	80 e2 df             	and    $0xdf,%dl
406117:	80 fa 58             	cmp    $0x58,%dl
40611a:	75 03                	jne    0x40611f
40611c:	b0 10                	mov    $0x10,%al
40611e:	41                   	inc    %ecx
40611f:	0f be 11             	movsbl (%ecx),%edx
406122:	41                   	inc    %ecx
406123:	83 fa 30             	cmp    $0x30,%edx
406126:	7c 0c                	jl     0x406134
406128:	0f be f3             	movsbl %bl,%esi
40612b:	3b d6                	cmp    %esi,%edx
40612d:	7f 05                	jg     0x406134
40612f:	83 ea 30             	sub    $0x30,%edx
406132:	eb 19                	jmp    0x40614d
406134:	3c 10                	cmp    $0x10,%al
406136:	75 21                	jne    0x406159
406138:	8b f2                	mov    %edx,%esi
40613a:	83 e6 df             	and    $0xffffffdf,%esi
40613d:	83 fe 41             	cmp    $0x41,%esi
406140:	7c 17                	jl     0x406159
406142:	83 fe 46             	cmp    $0x46,%esi
406145:	7f 12                	jg     0x406159
406147:	83 e2 07             	and    $0x7,%edx
40614a:	83 c2 09             	add    $0x9,%edx
40614d:	0f be f0             	movsbl %al,%esi
406150:	0f af f7             	imul   %edi,%esi
406153:	03 f2                	add    %edx,%esi
406155:	8b fe                	mov    %esi,%edi
406157:	eb c6                	jmp    0x40611f
406159:	8b 45 fc             	mov    -0x4(%ebp),%eax
40615c:	0f af c7             	imul   %edi,%eax
40615f:	5f                   	pop    %edi
406160:	5e                   	pop    %esi
406161:	5b                   	pop    %ebx
406162:	c9                   	leave
406163:	c2 04 00             	ret    $0x4
406166:	68 00 04 00 00       	push   $0x400
40616b:	ff 74 24 0c          	push   0xc(%esp)
40616f:	ff 74 24 0c          	push   0xc(%esp)
406173:	ff 15 ac 80 40 00    	call   *0x4080ac
406179:	c2 08 00             	ret    $0x8
40617c:	ff 25 a0 80 40 00    	jmp    *0x4080a0
406182:	ff 25 e0 80 40 00    	jmp    *0x4080e0
406188:	55                   	push   %ebp
406189:	8b ec                	mov    %esp,%ebp
40618b:	83 ec 18             	sub    $0x18,%esp
40618e:	8b 45 0c             	mov    0xc(%ebp),%eax
406191:	85 c0                	test   %eax,%eax
406193:	7d 11                	jge    0x4061a6
406195:	8b 0d fc eb 42 00    	mov    0x42ebfc,%ecx
40619b:	8d 04 85 04 00 00 00 	lea    0x4(,%eax,4),%eax
4061a2:	2b c8                	sub    %eax,%ecx
4061a4:	8b 01                	mov    (%ecx),%eax
4061a6:	8b 0d 78 f4 42 00    	mov    0x42f478,%ecx
4061ac:	53                   	push   %ebx
4061ad:	56                   	push   %esi
4061ae:	57                   	push   %edi
4061af:	8d 1c 08             	lea    (%eax,%ecx,1),%ebx
4061b2:	b8 c0 e3 42 00       	mov    $0x42e3c0,%eax
4061b7:	39 45 08             	cmp    %eax,0x8(%ebp)
4061ba:	8b f8                	mov    %eax,%edi
4061bc:	0f 82 eb 01 00 00    	jb     0x4063ad
4061c2:	8b 4d 08             	mov    0x8(%ebp),%ecx
4061c5:	2b c8                	sub    %eax,%ecx
4061c7:	81 f9 00 08 00 00    	cmp    $0x800,%ecx
4061cd:	0f 83 da 01 00 00    	jae    0x4063ad
4061d3:	8b 7d 08             	mov    0x8(%ebp),%edi
4061d6:	83 65 08 00          	andl   $0x0,0x8(%ebp)
4061da:	e9 ce 01 00 00       	jmp    0x4063ad
4061df:	8b cf                	mov    %edi,%ecx
4061e1:	2b c8                	sub    %eax,%ecx
4061e3:	81 f9 00 04 00 00    	cmp    $0x400,%ecx
4061e9:	0f 8d c8 01 00 00    	jge    0x4063b7
4061ef:	43                   	inc    %ebx
4061f0:	80 fa 04             	cmp    $0x4,%dl
4061f3:	89 5d 0c             	mov    %ebx,0xc(%ebp)
4061f6:	0f 83 a4 01 00 00    	jae    0x4063a0
4061fc:	0f be 43 01          	movsbl 0x1(%ebx),%eax
406200:	0f be 0b             	movsbl (%ebx),%ecx
406203:	8b f0                	mov    %eax,%esi
406205:	8b d9                	mov    %ecx,%ebx
406207:	83 e6 7f             	and    $0x7f,%esi
40620a:	83 e3 7f             	and    $0x7f,%ebx
40620d:	c1 e6 07             	shl    $0x7,%esi
406210:	0b f3                	or     %ebx,%esi
406212:	8b d9                	mov    %ecx,%ebx
406214:	80 cf 80             	or     $0x80,%bh
406217:	89 4d ec             	mov    %ecx,-0x14(%ebp)
40621a:	89 5d e8             	mov    %ebx,-0x18(%ebp)
40621d:	8b d8                	mov    %eax,%ebx
40621f:	80 cf 80             	or     $0x80,%bh
406222:	89 45 f4             	mov    %eax,-0xc(%ebp)
406225:	89 5d f0             	mov    %ebx,-0x10(%ebp)
406228:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40622b:	43                   	inc    %ebx
40622c:	43                   	inc    %ebx
40622d:	80 fa 02             	cmp    $0x2,%dl
406230:	0f 85 17 01 00 00    	jne    0x40634d
406236:	a1 2c f4 42 00       	mov    0x42f42c,%eax
40623b:	6a 02                	push   $0x2
40623d:	85 c0                	test   %eax,%eax
40623f:	5e                   	pop    %esi
406240:	79 18                	jns    0x40625a
406242:	66 3d 04 5a          	cmp    $0x5a04,%ax
406246:	74 12                	je     0x40625a
406248:	83 7d f4 23          	cmpl   $0x23,-0xc(%ebp)
40624c:	74 0c                	je     0x40625a
40624e:	83 7d f4 2e          	cmpl   $0x2e,-0xc(%ebp)
406252:	74 06                	je     0x40625a
406254:	83 65 0c 00          	andl   $0x0,0xc(%ebp)
406258:	eb 07                	jmp    0x406261
40625a:	c7 45 0c 01 00 00 00 	movl   $0x1,0xc(%ebp)
406261:	83 3d c4 f4 42 00 00 	cmpl   $0x0,0x42f4c4
406268:	74 03                	je     0x40626d
40626a:	6a 04                	push   $0x4
40626c:	5e                   	pop    %esi
40626d:	84 c9                	test   %cl,%cl
40626f:	79 37                	jns    0x4062a8
406271:	8b c1                	mov    %ecx,%eax
406273:	83 e1 3f             	and    $0x3f,%ecx
406276:	03 0d 78 f4 42 00    	add    0x42f478,%ecx
40627c:	83 e0 40             	and    $0x40,%eax
40627f:	50                   	push   %eax
406280:	57                   	push   %edi
406281:	51                   	push   %ecx
406282:	68 a8 83 40 00       	push   $0x4083a8
406287:	68 02 00 00 80       	push   $0x80000002
40628c:	e8 bc fd ff ff       	call   0x40604d
406291:	80 3f 00             	cmpb   $0x0,(%edi)
406294:	0f 85 9a 00 00 00    	jne    0x406334
40629a:	ff 75 f4             	push   -0xc(%ebp)
40629d:	57                   	push   %edi
40629e:	e8 e5 fe ff ff       	call   0x406188
4062a3:	e9 87 00 00 00       	jmp    0x40632f
4062a8:	83 f9 25             	cmp    $0x25,%ecx
4062ab:	75 0e                	jne    0x4062bb
4062ad:	68 00 04 00 00       	push   $0x400
4062b2:	57                   	push   %edi
4062b3:	ff 15 e4 80 40 00    	call   *0x4080e4
4062b9:	eb 74                	jmp    0x40632f
4062bb:	83 f9 24             	cmp    $0x24,%ecx
4062be:	75 6b                	jne    0x40632b
4062c0:	68 00 04 00 00       	push   $0x400
4062c5:	57                   	push   %edi
4062c6:	ff 15 94 80 40 00    	call   *0x408094
4062cc:	33 f6                	xor    %esi,%esi
4062ce:	eb 5b                	jmp    0x40632b