405f64:	56                   	push   %esi
405f65:	8b 75 10             	mov    0x10(%ebp),%esi
405f68:	8d 45 10             	lea    0x10(%ebp),%eax
405f6b:	6a 00                	push   $0x0
405f6d:	50                   	push   %eax
405f6e:	56                   	push   %esi
405f6f:	ff 75 0c             	push   0xc(%ebp)
405f72:	ff 75 08             	push   0x8(%ebp)
405f75:	ff 15 48 81 40 00    	call   *0x408148
405f7b:	85 c0                	test   %eax,%eax
405f7d:	74 0a                	je     0x405f89
405f7f:	3b 75 10             	cmp    0x10(%ebp),%esi
405f82:	75 05                	jne    0x405f89
405f84:	33 c0                	xor    %eax,%eax
405f86:	40                   	inc    %eax
405f87:	eb 02                	jmp    0x405f8b
405f89:	33 c0                	xor    %eax,%eax
405f8b:	5e                   	pop    %esi
405f8c:	5d                   	pop    %ebp
405f8d:	c2 0c 00             	ret    $0xc
405f90:	55                   	push   %ebp
405f91:	8b ec                	mov    %esp,%ebp
405f93:	56                   	push   %esi
405f94:	8b 75 10             	mov    0x10(%ebp),%esi
405f97:	8d 45 10             	lea    0x10(%ebp),%eax
405f9a:	6a 00                	push   $0x0
405f9c:	50                   	push   %eax
405f9d:	56                   	push   %esi
405f9e:	ff 75 0c             	push   0xc(%ebp)
405fa1:	ff 75 08             	push   0x8(%ebp)
405fa4:	ff 15 e0 80 40 00    	call   *0x4080e0
405faa:	85 c0                	test   %eax,%eax
405fac:	74 0a                	je     0x405fb8
405fae:	3b 75 10             	cmp    0x10(%ebp),%esi
405fb1:	75 05                	jne    0x405fb8
405fb3:	33 c0                	xor    %eax,%eax
405fb5:	40                   	inc    %eax
405fb6:	eb 02                	jmp    0x405fba
405fb8:	33 c0                	xor    %eax,%eax
405fba:	5e                   	pop    %esi
405fbb:	5d                   	pop    %ebp
405fbc:	c2 0c 00             	ret    $0xc
405fbf:	55                   	push   %ebp
405fc0:	8b ec                	mov    %esp,%ebp
405fc2:	53                   	push   %ebx
405fc3:	8b 5d 08             	mov    0x8(%ebp),%ebx
405fc6:	56                   	push   %esi
405fc7:	8b 35 44 81 40 00    	mov    0x408144,%esi
405fcd:	57                   	push   %edi
405fce:	33 ff                	xor    %edi,%edi
405fd0:	6a 01                	push   $0x1
405fd2:	57                   	push   %edi
405fd3:	57                   	push   %edi
405fd4:	53                   	push   %ebx
405fd5:	ff d6                	call   *%esi
405fd7:	85 c0                	test   %eax,%eax
405fd9:	75 4f                	jne    0x40602a
405fdb:	8d 45 0a             	lea    0xa(%ebp),%eax
405fde:	6a 02                	push   $0x2
405fe0:	50                   	push   %eax
405fe1:	53                   	push   %ebx
405fe2:	e8 7a ff ff ff       	call   0x405f61
405fe7:	85 c0                	test   %eax,%eax
405fe9:	74 0c                	je     0x405ff7
405feb:	66 81 7d 0a ff fe    	cmpw   $0xfeff,0xa(%ebp)
405ff1:	75 04                	jne    0x405ff7
405ff3:	33 c0                	xor    %eax,%eax
405ff5:	eb 36                	jmp    0x40602d
405ff7:	39 7d 0c             	cmp    %edi,0xc(%ebp)
405ffa:	74 28                	je     0x406024
405ffc:	6a 01                	push   $0x1
405ffe:	57                   	push   %edi
405fff:	57                   	push   %edi
406000:	53                   	push   %ebx
406001:	ff d6                	call   *%esi
406003:	85 c0                	test   %eax,%eax
406005:	75 1d                	jne    0x406024
406007:	6a 02                	push   $0x2
406009:	68 1c 84 40 00       	push   $0x40841c
40600e:	53                   	push   %ebx
40600f:	e8 7c ff ff ff       	call   0x405f90
406014:	f7 d8                	neg    %eax
406016:	1b c0                	sbb    %eax,%eax
406018:	25 fb bf ff 7f       	and    $0x7fffbffb,%eax
40601d:	05 05 40 00 80       	add    $0x80004005,%eax
406022:	eb 09                	jmp    0x40602d
406024:	57                   	push   %edi
406025:	57                   	push   %edi
406026:	57                   	push   %edi
406027:	53                   	push   %ebx
406028:	ff d6                	call   *%esi
40602a:	33 c0                	xor    %eax,%eax
40602c:	40                   	inc    %eax
40602d:	5f                   	pop    %edi
40602e:	5e                   	pop    %esi
40602f:	5b                   	pop    %ebx
406030:	5d                   	pop    %ebp
406031:	c2 08 00             	ret    $0x8
406034:	53                   	push   %ebx
406035:	8b 1d bc 80 40 00    	mov    0x4080bc,%ebx
40603b:	55                   	push   %ebp
40603c:	56                   	push   %esi
40603d:	8b 74 24 14          	mov    0x14(%esp),%esi
406041:	57                   	push   %edi
406042:	85 f6                	test   %esi,%esi
406044:	c7 05 c8 6d 42 00 4e 	movl   $0x55004e,0x426dc8
40604b:	00 55 00
40604e:	c7 05 cc 6d 42 00 4c 	movl   $0x4c,0x426dcc
406055:	00 00 00
406058:	bf 00 04 00 00       	mov    $0x400,%edi
40605d:	bd c8 6d 42 00       	mov    $0x426dc8,%ebp
406062:	74 26                	je     0x40608a
406064:	6a 01                	push   $0x1
406066:	6a 00                	push   $0x0
406068:	56                   	push   %esi
406069:	e8 70 fe ff ff       	call   0x405ede
40606e:	50                   	push   %eax
40606f:	ff 15 20 81 40 00    	call   *0x408120
406075:	57                   	push   %edi
406076:	55                   	push   %ebp
406077:	56                   	push   %esi
406078:	ff d3                	call   *%ebx
40607a:	85 c0                	test   %eax,%eax
40607c:	0f 84 27 01 00 00    	je     0x4061a9
406082:	3b c7                	cmp    %edi,%eax
406084:	0f 8f 1f 01 00 00    	jg     0x4061a9
40608a:	be c8 75 42 00       	mov    $0x4275c8,%esi
40608f:	57                   	push   %edi
406090:	56                   	push   %esi
406091:	ff 74 24 1c          	push   0x1c(%esp)
406095:	ff d3                	call   *%ebx
406097:	85 c0                	test   %eax,%eax
406099:	0f 84 0a 01 00 00    	je     0x4061a9
40609f:	3b c7                	cmp    %edi,%eax
4060a1:	0f 8f 02 01 00 00    	jg     0x4061a9
4060a7:	56                   	push   %esi
4060a8:	55                   	push   %ebp
4060a9:	68 a0 a5 40 00       	push   $0x40a5a0
4060ae:	68 c8 69 42 00       	push   $0x4269c8
4060b3:	ff 15 00 82 40 00    	call   *0x408200
4060b9:	8b d8                	mov    %eax,%ebx
4060bb:	a1 54 a2 42 00       	mov    0x42a254,%eax
4060c0:	83 c4 10             	add    $0x10,%esp
4060c3:	ff b0 28 01 00 00    	push   0x128(%eax)
4060c9:	56                   	push   %esi
4060ca:	e8 3b 03 00 00       	call   0x40640a
4060cf:	6a 04                	push   $0x4
4060d1:	68 00 00 00 c0       	push   $0xc0000000
4060d6:	56                   	push   %esi
4060d7:	e8 02 fe ff ff       	call   0x405ede
4060dc:	8b e8                	mov    %eax,%ebp
4060de:	83 fd ff             	cmp    $0xffffffff,%ebp
4060e1:	89 6c 24 18          	mov    %ebp,0x18(%esp)
4060e5:	0f 84 be 00 00 00    	je     0x4061a9
4060eb:	6a 00                	push   $0x0
4060ed:	55                   	push   %ebp
4060ee:	ff 15 84 80 40 00    	call   *0x408084
4060f4:	8b f8                	mov    %eax,%edi
4060f6:	8d 44 1f 0a          	lea    0xa(%edi,%ebx,1),%eax
4060fa:	50                   	push   %eax
4060fb:	6a 40                	push   $0x40
4060fd:	ff 15 34 81 40 00    	call   *0x408134
406103:	8b f0                	mov    %eax,%esi
406105:	85 f6                	test   %esi,%esi
406107:	0f 84 95 00 00 00    	je     0x4061a2
40610d:	57                   	push   %edi
40610e:	56                   	push   %esi
40610f:	55                   	push   %ebp
406110:	e8 4c fe ff ff       	call   0x405f61
406115:	85 c0                	test   %eax,%eax
406117:	0f 84 85 00 00 00    	je     0x4061a2
40611d:	68 94 a5 40 00       	push   $0x40a594
406122:	56                   	push   %esi
406123:	e8 1b fd ff ff       	call   0x405e43
406128:	85 c0                	test   %eax,%eax
40612a:	75 14                	jne    0x406140
40612c:	8d 04 3e             	lea    (%esi,%edi,1),%eax
40612f:	68 94 a5 40 00       	push   $0x40a594
406134:	50                   	push   %eax
406135:	ff 15 e4 80 40 00    	call   *0x4080e4
40613b:	83 c7 0a             	add    $0xa,%edi
40613e:	eb 35                	jmp    0x406175
406140:	83 c0 0a             	add    $0xa,%eax
406143:	68 90 a5 40 00       	push   $0x40a590
406148:	50                   	push   %eax
406149:	e8 f5 fc ff ff       	call   0x405e43
40614e:	8b e8                	mov    %eax,%ebp
406150:	85 ed                	test   %ebp,%ebp
406152:	74 1d                	je     0x406171
406154:	8d 0c 3e             	lea    (%esi,%edi,1),%ecx
406157:	8d 04 19             	lea    (%ecx,%ebx,1),%eax
40615a:	eb 06                	jmp    0x406162
40615c:	8a 11                	mov    (%ecx),%dl
40615e:	88 10                	mov    %dl,(%eax)
406160:	48                   	dec    %eax
406161:	49                   	dec    %ecx
406162:	3b cd                	cmp    %ebp,%ecx
406164:	77 f6                	ja     0x40615c
406166:	2b ee                	sub    %esi,%ebp
406168:	45                   	inc    %ebp
406169:	8b c5                	mov    %ebp,%eax
40616b:	8b 6c 24 18          	mov    0x18(%esp),%ebp
40616f:	eb 06                	jmp    0x406177
406171:	8b 6c 24 18          	mov    0x18(%esp),%ebp
406175:	8b c7                	mov    %edi,%eax
406177:	53                   	push   %ebx
406178:	03 c6                	add    %esi,%eax
40617a:	68 c8 69 42 00       	push   $0x4269c8
40617f:	50                   	push   %eax
406180:	e8 14 fd ff ff       	call   0x405e99
406185:	33 c0                	xor    %eax,%eax
406187:	50                   	push   %eax
406188:	50                   	push   %eax
406189:	50                   	push   %eax
40618a:	55                   	push   %ebp
40618b:	ff 15 44 81 40 00    	call   *0x408144
406191:	03 fb                	add    %ebx,%edi
406193:	57                   	push   %edi
406194:	56                   	push   %esi
406195:	55                   	push   %ebp
406196:	e8 f5 fd ff ff       	call   0x405f90
40619b:	56                   	push   %esi
40619c:	ff 15 28 81 40 00    	call   *0x408128
4061a2:	55                   	push   %ebp
4061a3:	ff 15 20 81 40 00    	call   *0x408120
4061a9:	5f                   	pop    %edi
4061aa:	5e                   	pop    %esi
4061ab:	5d                   	pop    %ebp
4061ac:	5b                   	pop    %ebx
4061ad:	c3                   	ret
4061ae:	6a 05                	push   $0x5
4061b0:	ff 74 24 0c          	push   0xc(%esp)
4061b4:	ff 74 24 0c          	push   0xc(%esp)
4061b8:	ff 15 e8 80 40 00    	call   *0x4080e8
4061be:	85 c0                	test   %eax,%eax
4061c0:	75 0f                	jne    0x4061d1
4061c2:	ff 74 24 08          	push   0x8(%esp)
4061c6:	ff 74 24 08          	push   0x8(%esp)
4061ca:	e8 65 fe ff ff       	call   0x406034
4061cf:	59                   	pop    %ecx
4061d0:	59                   	pop    %ecx
4061d1:	ff 05 f0 a2 42 00    	incl   0x42a2f0
4061d7:	c2 08 00             	ret    $0x8
4061da:	8b 15 4c a2 42 00    	mov    0x42a24c,%edx
4061e0:	53                   	push   %ebx
4061e1:	8b 5c 24 08          	mov    0x8(%esp),%ebx
4061e5:	57                   	push   %edi
4061e6:	8b 7c 24 10          	mov    0x10(%esp),%edi
4061ea:	f7 d2                	not    %edx
4061ec:	8b 07                	mov    (%edi),%eax
4061ee:	c1 ea 16             	shr    $0x16,%edx
4061f1:	81 e2 00 01 00 00    	and    $0x100,%edx
4061f7:	a8 20                	test   $0x20,%al
4061f9:	74 34                	je     0x40622f
4061fb:	f7 c3 00 00 00 60    	test   $0x60000000,%ebx
406201:	74 2c                	je     0x40622f
406203:	8b cb                	mov    %ebx,%ecx
406205:	56                   	push   %esi
406206:	c1 e9 15             	shr    $0x15,%ecx
406209:	be 00 03 00 00       	mov    $0x300,%esi
40620e:	23 ce                	and    %esi,%ecx
406210:	3b ce                	cmp    %esi,%ecx
406212:	5e                   	pop    %esi
406213:	75 0a                	jne    0x40621f
406215:	8b ca                	mov    %edx,%ecx
406217:	f7 d1                	not    %ecx
406219:	23 0d 10 a3 42 00    	and    0x42a310,%ecx
40621f:	80 e4 fe             	and    $0xfe,%ah
406222:	0b c1                	or     %ecx,%eax
406224:	80 e4 fd             	and    $0xfd,%ah
406227:	81 e3 ff ff ff 9f    	and    $0x9fffffff,%ebx
40622d:	eb 0d                	jmp    0x40623c
40622f:	a9 00 00 10 00       	test   $0x100000,%eax
406234:	74 06                	je     0x40623c
406236:	0b 05 10 a3 42 00    	or     0x42a310,%eax
40623c:	8b c8                	mov    %eax,%ecx
40623e:	23 c2                	and    %edx,%eax
406240:	81 e1 df ff ef ff    	and    $0xffefffdf,%ecx
406246:	f7 d8                	neg    %eax
406248:	1b c0                	sbb    %eax,%eax
40624a:	89 0f                	mov    %ecx,(%edi)
40624c:	f7 d0                	not    %eax
40624e:	23 c3                	and    %ebx,%eax
406250:	5f                   	pop    %edi
406251:	5b                   	pop    %ebx
406252:	c2 08 00             	ret    $0x8
406255:	55                   	push   %ebp
406256:	8b ec                	mov    %esp,%ebp
406258:	8d 45 10             	lea    0x10(%ebp),%eax
40625b:	50                   	push   %eax
40625c:	ff 75 08             	push   0x8(%ebp)
40625f:	e8 76 ff ff ff       	call   0x4061da
406264:	85 c0                	test   %eax,%eax
406266:	75 05                	jne    0x40626d
406268:	6a 06                	push   $0x6
40626a:	58                   	pop    %eax
40626b:	eb 12                	jmp    0x40627f
40626d:	ff 75 14             	push   0x14(%ebp)
406270:	ff 75 10             	push   0x10(%ebp)
406273:	6a 00                	push   $0x0
406275:	ff 75 0c             	push   0xc(%ebp)
406278:	50                   	push   %eax
406279:	ff 15 08 80 40 00    	call   *0x408008
40627f:	5d                   	pop    %ebp
406280:	c2 10 00             	ret    $0x10
406283:	55                   	push   %ebp
406284:	8b ec                	mov    %esp,%ebp
406286:	8d 45 10             	lea    0x10(%ebp),%eax
406289:	50                   	push   %eax
40628a:	ff 75 08             	push   0x8(%ebp)
40628d:	e8 48 ff ff ff       	call   0x4061da
406292:	33 c9                	xor    %ecx,%ecx
406294:	3b c1                	cmp    %ecx,%eax
406296:	75 05                	jne    0x40629d
406298:	6a 06                	push   $0x6
40629a:	58                   	pop    %eax
40629b:	eb 15                	jmp    0x4062b2
40629d:	51                   	push   %ecx
40629e:	ff 75 14             	push   0x14(%ebp)
4062a1:	51                   	push   %ecx
4062a2:	ff 75 10             	push   0x10(%ebp)
4062a5:	51                   	push   %ecx
4062a6:	51                   	push   %ecx
4062a7:	51                   	push   %ecx
4062a8:	ff 75 0c             	push   0xc(%ebp)
4062ab:	50                   	push   %eax
4062ac:	ff 15 04 80 40 00    	call   *0x408004
4062b2:	5d                   	pop    %ebp
4062b3:	c2 10 00             	ret    $0x10
4062b6:	55                   	push   %ebp
4062b7:	8b ec                	mov    %esp,%ebp
4062b9:	51                   	push   %ecx
4062ba:	8d 45 18             	lea    0x18(%ebp),%eax
4062bd:	56                   	push   %esi
4062be:	50                   	push   %eax
4062bf:	8b 45 18             	mov    0x18(%ebp),%eax
4062c2:	f7 d8                	neg    %eax
4062c4:	1b c0                	sbb    %eax,%eax
4062c6:	c7 45 fc 00 08 00 00 	movl   $0x800,-0x4(%ebp)
4062cd:	25 00 01 00 00       	and    $0x100,%eax
4062d2:	0d 19 00 02 00       	or     $0x20019,%eax
4062d7:	50                   	push   %eax
4062d8:	ff 75 0c             	push   0xc(%ebp)
4062db:	ff 75 08             	push   0x8(%ebp)
4062de:	e8 72 ff ff ff       	call   0x406255
4062e3:	8b 75 14             	mov    0x14(%ebp),%esi
4062e6:	85 c0                	test   %eax,%eax
4062e8:	75 3c                	jne    0x406326
4062ea:	8d 45 fc             	lea    -0x4(%ebp),%eax
4062ed:	57                   	push   %edi