405f45:	8b ec                	mov    %esp,%ebp
405f47:	83 ec 20             	sub    $0x20,%esp
405f4a:	53                   	push   %ebx
405f4b:	33 db                	xor    %ebx,%ebx
405f4d:	39 5d 0c             	cmp    %ebx,0xc(%ebp)
405f50:	75 1d                	jne    0x405f6f
405f52:	e8 a3 34 00 00       	call   0x4093fa
405f57:	53                   	push   %ebx
405f58:	53                   	push   %ebx
405f59:	53                   	push   %ebx
405f5a:	53                   	push   %ebx
405f5b:	53                   	push   %ebx
405f5c:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
405f62:	e8 e9 16 00 00       	call   0x407650
405f67:	83 c4 14             	add    $0x14,%esp
405f6a:	83 c8 ff             	or     $0xffffffff,%eax
405f6d:	eb 4d                	jmp    0x405fbc
405f6f:	8b 45 08             	mov    0x8(%ebp),%eax
405f72:	3b c3                	cmp    %ebx,%eax
405f74:	74 dc                	je     0x405f52
405f76:	56                   	push   %esi
405f77:	89 45 e8             	mov    %eax,-0x18(%ebp)
405f7a:	89 45 e0             	mov    %eax,-0x20(%ebp)
405f7d:	8d 45 10             	lea    0x10(%ebp),%eax
405f80:	50                   	push   %eax
405f81:	53                   	push   %ebx
405f82:	ff 75 0c             	push   0xc(%ebp)
405f85:	8d 45 e0             	lea    -0x20(%ebp),%eax
405f88:	50                   	push   %eax
405f89:	c7 45 e4 ff ff ff 7f 	movl   $0x7fffffff,-0x1c(%ebp)
405f90:	c7 45 ec 42 00 00 00 	movl   $0x42,-0x14(%ebp)
405f97:	e8 c5 58 00 00       	call   0x40b861
405f9c:	83 c4 10             	add    $0x10,%esp
405f9f:	ff 4d e4             	decl   -0x1c(%ebp)
405fa2:	8b f0                	mov    %eax,%esi
405fa4:	78 07                	js     0x405fad
405fa6:	8b 45 e0             	mov    -0x20(%ebp),%eax
405fa9:	88 18                	mov    %bl,(%eax)
405fab:	eb 0c                	jmp    0x405fb9
405fad:	8d 45 e0             	lea    -0x20(%ebp),%eax
405fb0:	50                   	push   %eax
405fb1:	53                   	push   %ebx
405fb2:	e8 a9 56 00 00       	call   0x40b660
405fb7:	59                   	pop    %ecx
405fb8:	59                   	pop    %ecx
405fb9:	8b c6                	mov    %esi,%eax
405fbb:	5e                   	pop    %esi
405fbc:	5b                   	pop    %ebx
405fbd:	c9                   	leave
405fbe:	c3                   	ret
405fbf:	56                   	push   %esi
405fc0:	6a 01                	push   $0x1
405fc2:	68 28 c5 41 00       	push   $0x41c528
405fc7:	8b f1                	mov    %ecx,%esi
405fc9:	e8 0f f9 ff ff       	call   0x4058dd
405fce:	c7 06 34 72 41 00    	movl   $0x417234,(%esi)
405fd4:	8b c6                	mov    %esi,%eax
405fd6:	5e                   	pop    %esi
405fd7:	c3                   	ret
405fd8:	55                   	push   %ebp
405fd9:	8b ec                	mov    %esp,%ebp
405fdb:	83 ec 0c             	sub    $0xc,%esp
405fde:	eb 0d                	jmp    0x405fed
405fe0:	ff 75 08             	push   0x8(%ebp)
405fe3:	e8 1b 62 00 00       	call   0x40c203
405fe8:	85 c0                	test   %eax,%eax
405fea:	59                   	pop    %ecx
405feb:	74 0f                	je     0x405ffc
405fed:	ff 75 08             	push   0x8(%ebp)
405ff0:	e8 5a 4d 00 00       	call   0x40ad4f
405ff5:	85 c0                	test   %eax,%eax
405ff7:	59                   	pop    %ecx
405ff8:	74 e6                	je     0x405fe0
405ffa:	c9                   	leave
405ffb:	c3                   	ret
405ffc:	f6 05 e4 d9 41 00 01 	testb  $0x1,0x41d9e4
406003:	be d8 d9 41 00       	mov    $0x41d9d8,%esi
406008:	75 19                	jne    0x406023
40600a:	83 0d e4 d9 41 00 01 	orl    $0x1,0x41d9e4
406011:	8b ce                	mov    %esi,%ecx
406013:	e8 a7 ff ff ff       	call   0x405fbf
406018:	68 79 60 41 00       	push   $0x416079
40601d:	e8 fa 27 00 00       	call   0x40881c
406022:	59                   	pop    %ecx
406023:	56                   	push   %esi
406024:	8d 4d f4             	lea    -0xc(%ebp),%ecx
406027:	e8 c9 f8 ff ff       	call   0x4058f5
40602c:	68 a8 9f 41 00       	push   $0x419fa8
406031:	8d 45 f4             	lea    -0xc(%ebp),%eax
406034:	50                   	push   %eax
406035:	c7 45 f4 34 72 41 00 	movl   $0x417234,-0xc(%ebp)
40603c:	e8 01 00 00 00       	call   0x406042
406041:	cc                   	int3
406042:	55                   	push   %ebp
406043:	8b ec                	mov    %esp,%ebp
406045:	83 ec 20             	sub    $0x20,%esp
406048:	8b 45 08             	mov    0x8(%ebp),%eax
40604b:	56                   	push   %esi
40604c:	57                   	push   %edi
40604d:	6a 08                	push   $0x8
40604f:	59                   	pop    %ecx
406050:	be 48 76 41 00       	mov    $0x417648,%esi
406055:	8d 7d e0             	lea    -0x20(%ebp),%edi
406058:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
40605a:	89 45 f8             	mov    %eax,-0x8(%ebp)
40605d:	8b 45 0c             	mov    0xc(%ebp),%eax
406060:	85 c0                	test   %eax,%eax
406062:	5f                   	pop    %edi
406063:	89 45 fc             	mov    %eax,-0x4(%ebp)
406066:	5e                   	pop    %esi
406067:	74 0c                	je     0x406075
406069:	f6 00 08             	testb  $0x8,(%eax)
40606c:	74 07                	je     0x406075
40606e:	c7 45 f4 00 40 99 01 	movl   $0x1994000,-0xc(%ebp)
406075:	8d 45 f4             	lea    -0xc(%ebp),%eax
406078:	50                   	push   %eax
406079:	ff 75 f0             	push   -0x10(%ebp)
40607c:	ff 75 e4             	push   -0x1c(%ebp)
40607f:	ff 75 e0             	push   -0x20(%ebp)
406082:	ff 15 a8 70 41 00    	call   *0x4170a8
406088:	c9                   	leave
406089:	c2 08 00             	ret    $0x8
40608c:	55                   	push   %ebp
40608d:	8b ec                	mov    %esp,%ebp
40608f:	51                   	push   %ecx
406090:	53                   	push   %ebx
406091:	8b 45 0c             	mov    0xc(%ebp),%eax
406094:	83 c0 0c             	add    $0xc,%eax
406097:	89 45 fc             	mov    %eax,-0x4(%ebp)
40609a:	64 8b 1d 00 00 00 00 	mov    %fs:0x0,%ebx
4060a1:	8b 03                	mov    (%ebx),%eax
4060a3:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
4060a9:	8b 45 08             	mov    0x8(%ebp),%eax
4060ac:	8b 5d 0c             	mov    0xc(%ebp),%ebx
4060af:	8b 6d fc             	mov    -0x4(%ebp),%ebp
4060b2:	8b 63 fc             	mov    -0x4(%ebx),%esp
4060b5:	ff e0                	jmp    *%eax
4060b7:	5b                   	pop    %ebx
4060b8:	c9                   	leave
4060b9:	c2 08 00             	ret    $0x8
4060bc:	58                   	pop    %eax
4060bd:	59                   	pop    %ecx
4060be:	87 04 24             	xchg   %eax,(%esp)
4060c1:	ff e0                	jmp    *%eax
4060c3:	55                   	push   %ebp
4060c4:	8b ec                	mov    %esp,%ebp
4060c6:	51                   	push   %ecx
4060c7:	51                   	push   %ecx
4060c8:	53                   	push   %ebx
4060c9:	56                   	push   %esi
4060ca:	57                   	push   %edi
4060cb:	64 8b 35 00 00 00 00 	mov    %fs:0x0,%esi
4060d2:	89 75 fc             	mov    %esi,-0x4(%ebp)
4060d5:	c7 45 f8 ec 60 40 00 	movl   $0x4060ec,-0x8(%ebp)
4060dc:	6a 00                	push   $0x0
4060de:	ff 75 0c             	push   0xc(%ebp)
4060e1:	ff 75 f8             	push   -0x8(%ebp)
4060e4:	ff 75 08             	push   0x8(%ebp)
4060e7:	e8 56 f8 00 00       	call   0x415942
4060ec:	8b 45 0c             	mov    0xc(%ebp),%eax
4060ef:	8b 40 04             	mov    0x4(%eax),%eax
4060f2:	83 e0 fd             	and    $0xfffffffd,%eax
4060f5:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4060f8:	89 41 04             	mov    %eax,0x4(%ecx)
4060fb:	64 8b 3d 00 00 00 00 	mov    %fs:0x0,%edi
406102:	8b 5d fc             	mov    -0x4(%ebp),%ebx
406105:	89 3b                	mov    %edi,(%ebx)
406107:	64 89 1d 00 00 00 00 	mov    %ebx,%fs:0x0
40610e:	5f                   	pop    %edi
40610f:	5e                   	pop    %esi
406110:	5b                   	pop    %ebx
406111:	c9                   	leave
406112:	c2 08 00             	ret    $0x8
406115:	55                   	push   %ebp
406116:	8b ec                	mov    %esp,%ebp
406118:	83 ec 08             	sub    $0x8,%esp
40611b:	53                   	push   %ebx
40611c:	56                   	push   %esi
40611d:	57                   	push   %edi
40611e:	fc                   	cld
40611f:	89 45 fc             	mov    %eax,-0x4(%ebp)
406122:	33 c0                	xor    %eax,%eax
406124:	50                   	push   %eax
406125:	50                   	push   %eax
406126:	50                   	push   %eax
406127:	ff 75 fc             	push   -0x4(%ebp)
40612a:	ff 75 14             	push   0x14(%ebp)
40612d:	ff 75 10             	push   0x10(%ebp)
406130:	ff 75 0c             	push   0xc(%ebp)
406133:	ff 75 08             	push   0x8(%ebp)
406136:	e8 2b 13 00 00       	call   0x407466
40613b:	83 c4 20             	add    $0x20,%esp
40613e:	89 45 f8             	mov    %eax,-0x8(%ebp)
406141:	5f                   	pop    %edi
406142:	5e                   	pop    %esi
406143:	5b                   	pop    %ebx
406144:	8b 45 f8             	mov    -0x8(%ebp),%eax
406147:	8b e5                	mov    %ebp,%esp
406149:	5d                   	pop    %ebp
40614a:	c3                   	ret
40614b:	56                   	push   %esi
40614c:	fc                   	cld
40614d:	8b 74 24 0c          	mov    0xc(%esp),%esi
406151:	8b 4e 08             	mov    0x8(%esi),%ecx
406154:	33 ce                	xor    %esi,%ecx
406156:	e8 da fd ff ff       	call   0x405f35
40615b:	6a 00                	push   $0x0
40615d:	56                   	push   %esi
40615e:	ff 76 14             	push   0x14(%esi)
406161:	ff 76 0c             	push   0xc(%esi)
406164:	6a 00                	push   $0x0
406166:	ff 74 24 24          	push   0x24(%esp)
40616a:	ff 76 10             	push   0x10(%esi)
40616d:	ff 74 24 24          	push   0x24(%esp)
406171:	e8 f0 12 00 00       	call   0x407466
406176:	83 c4 20             	add    $0x20,%esp
406179:	5e                   	pop    %esi
40617a:	c3                   	ret
40617b:	55                   	push   %ebp
40617c:	8b ec                	mov    %esp,%ebp
40617e:	83 ec 38             	sub    $0x38,%esp
406181:	53                   	push   %ebx
406182:	81 7d 08 23 01 00 00 	cmpl   $0x123,0x8(%ebp)
406189:	75 12                	jne    0x40619d
40618b:	b8 24 62 40 00       	mov    $0x406224,%eax
406190:	8b 4d 0c             	mov    0xc(%ebp),%ecx
406193:	89 01                	mov    %eax,(%ecx)
406195:	33 c0                	xor    %eax,%eax
406197:	40                   	inc    %eax
406198:	e9 b0 00 00 00       	jmp    0x40624d
40619d:	83 65 d8 00          	andl   $0x0,-0x28(%ebp)
4061a1:	c7 45 dc 50 62 40 00 	movl   $0x406250,-0x24(%ebp)
4061a8:	a1 20 c5 41 00       	mov    0x41c520,%eax
4061ad:	8d 4d d8             	lea    -0x28(%ebp),%ecx
4061b0:	33 c1                	xor    %ecx,%eax
4061b2:	89 45 e0             	mov    %eax,-0x20(%ebp)
4061b5:	8b 45 18             	mov    0x18(%ebp),%eax
4061b8:	89 45 e4             	mov    %eax,-0x1c(%ebp)
4061bb:	8b 45 0c             	mov    0xc(%ebp),%eax
4061be:	89 45 e8             	mov    %eax,-0x18(%ebp)
4061c1:	8b 45 1c             	mov    0x1c(%ebp),%eax
4061c4:	89 45 ec             	mov    %eax,-0x14(%ebp)
4061c7:	8b 45 20             	mov    0x20(%ebp),%eax
4061ca:	89 45 f0             	mov    %eax,-0x10(%ebp)
4061cd:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
4061d1:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
4061d5:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4061d9:	89 65 f4             	mov    %esp,-0xc(%ebp)
4061dc:	89 6d f8             	mov    %ebp,-0x8(%ebp)
4061df:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
4061e5:	89 45 d8             	mov    %eax,-0x28(%ebp)
4061e8:	8d 45 d8             	lea    -0x28(%ebp),%eax
4061eb:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
4061f1:	c7 45 c8 01 00 00 00 	movl   $0x1,-0x38(%ebp)
4061f8:	8b 45 08             	mov    0x8(%ebp),%eax
4061fb:	89 45 cc             	mov    %eax,-0x34(%ebp)
4061fe:	8b 45 10             	mov    0x10(%ebp),%eax
406201:	89 45 d0             	mov    %eax,-0x30(%ebp)
406204:	e8 43 63 00 00       	call   0x40c54c
406209:	8b 80 80 00 00 00    	mov    0x80(%eax),%eax
40620f:	89 45 d4             	mov    %eax,-0x2c(%ebp)
406212:	8d 45 cc             	lea    -0x34(%ebp),%eax
406215:	50                   	push   %eax
406216:	8b 45 08             	mov    0x8(%ebp),%eax
406219:	ff 30                	push   (%eax)
40621b:	ff 55 d4             	call   *-0x2c(%ebp)
40621e:	59                   	pop    %ecx
40621f:	59                   	pop    %ecx
406220:	83 65 c8 00          	andl   $0x0,-0x38(%ebp)
406224:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
406228:	74 17                	je     0x406241
40622a:	64 8b 1d 00 00 00 00 	mov    %fs:0x0,%ebx
406231:	8b 03                	mov    (%ebx),%eax
406233:	8b 5d d8             	mov    -0x28(%ebp),%ebx
406236:	89 03                	mov    %eax,(%ebx)
406238:	64 89 1d 00 00 00 00 	mov    %ebx,%fs:0x0
40623f:	eb 09                	jmp    0x40624a
406241:	8b 45 d8             	mov    -0x28(%ebp),%eax
406244:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40624a:	8b 45 c8             	mov    -0x38(%ebp),%eax
40624d:	5b                   	pop    %ebx
40624e:	c9                   	leave
40624f:	c3                   	ret
406250:	55                   	push   %ebp
406251:	8b ec                	mov    %esp,%ebp
406253:	51                   	push   %ecx
406254:	53                   	push   %ebx
406255:	fc                   	cld
406256:	8b 45 0c             	mov    0xc(%ebp),%eax
406259:	8b 48 08             	mov    0x8(%eax),%ecx
40625c:	33 4d 0c             	xor    0xc(%ebp),%ecx
40625f:	e8 d1 fc ff ff       	call   0x405f35
406264:	8b 45 08             	mov    0x8(%ebp),%eax
406267:	8b 40 04             	mov    0x4(%eax),%eax
40626a:	83 e0 66             	and    $0x66,%eax
40626d:	74 11                	je     0x406280
40626f:	8b 45 0c             	mov    0xc(%ebp),%eax
406272:	c7 40 24 01 00 00 00 	movl   $0x1,0x24(%eax)
406279:	33 c0                	xor    %eax,%eax
40627b:	40                   	inc    %eax
40627c:	eb 6c                	jmp    0x4062ea
40627e:	eb 6a                	jmp    0x4062ea
406280:	6a 01                	push   $0x1
406282:	8b 45 0c             	mov    0xc(%ebp),%eax
406285:	ff 70 18             	push   0x18(%eax)
406288:	8b 45 0c             	mov    0xc(%ebp),%eax
40628b:	ff 70 14             	push   0x14(%eax)
40628e:	8b 45 0c             	mov    0xc(%ebp),%eax
406291:	ff 70 0c             	push   0xc(%eax)
406294:	6a 00                	push   $0x0
406296:	ff 75 10             	push   0x10(%ebp)
406299:	8b 45 0c             	mov    0xc(%ebp),%eax
40629c:	ff 70 10             	push   0x10(%eax)
40629f:	ff 75 08             	push   0x8(%ebp)
4062a2:	e8 bf 11 00 00       	call   0x407466
4062a7:	83 c4 20             	add    $0x20,%esp
4062aa:	8b 45 0c             	mov    0xc(%ebp),%eax
4062ad:	83 78 24 00          	cmpl   $0x0,0x24(%eax)
4062b1:	75 0b                	jne    0x4062be
4062b3:	ff 75 08             	push   0x8(%ebp)
4062b6:	ff 75 0c             	push   0xc(%ebp)
4062b9:	e8 05 fe ff ff       	call   0x4060c3
4062be:	6a 00                	push   $0x0
4062c0:	6a 00                	push   $0x0
4062c2:	6a 00                	push   $0x0
4062c4:	6a 00                	push   $0x0
4062c6:	6a 00                	push   $0x0
4062c8:	8d 45 fc             	lea    -0x4(%ebp),%eax
4062cb:	50                   	push   %eax
4062cc:	68 23 01 00 00       	push   $0x123
4062d1:	e8 a5 fe ff ff       	call   0x40617b
4062d6:	83 c4 1c             	add    $0x1c,%esp
4062d9:	8b 45 fc             	mov    -0x4(%ebp),%eax
4062dc:	8b 5d 0c             	mov    0xc(%ebp),%ebx
4062df:	8b 63 1c             	mov    0x1c(%ebx),%esp
4062e2:	8b 6b 20             	mov    0x20(%ebx),%ebp
4062e5:	ff e0                	jmp    *%eax
4062e7:	33 c0                	xor    %eax,%eax
4062e9:	40                   	inc    %eax
4062ea:	5b                   	pop    %ebx
4062eb:	c9                   	leave
4062ec:	c3                   	ret
4062ed:	55                   	push   %ebp
4062ee:	8b ec                	mov    %esp,%ebp
4062f0:	51                   	push   %ecx
4062f1:	53                   	push   %ebx
4062f2:	56                   	push   %esi
4062f3:	57                   	push   %edi
4062f4:	8b 7d 08             	mov    0x8(%ebp),%edi
4062f7:	8b 47 10             	mov    0x10(%edi),%eax