420fc3:	85 ff                	test   %edi,%edi
420fc5:	78 09                	js     0x420fd0
420fc7:	85 f6                	test   %esi,%esi
420fc9:	75 09                	jne    0x420fd4
420fcb:	bf 90 04 07 80       	mov    $0x80070490,%edi
420fd0:	33 db                	xor    %ebx,%ebx
420fd2:	eb 64                	jmp    0x421038
420fd4:	33 db                	xor    %ebx,%ebx
420fd6:	53                   	push   %ebx
420fd7:	ff 15 90 63 42 00    	call   *0x426390
420fdd:	89 5d d0             	mov    %ebx,-0x30(%ebp)
420fe0:	8d 4d d0             	lea    -0x30(%ebp),%ecx
420fe3:	8b 06                	mov    (%esi),%eax
420fe5:	51                   	push   %ecx
420fe6:	56                   	push   %esi
420fe7:	8b 70 28             	mov    0x28(%eax),%esi
420fea:	8b ce                	mov    %esi,%ecx
420fec:	ff 15 78 64 42 00    	call   *0x426478
420ff2:	ff d6                	call   *%esi
420ff4:	8b f8                	mov    %eax,%edi
420ff6:	8b 45 d0             	mov    -0x30(%ebp),%eax
420ff9:	85 ff                	test   %edi,%edi
420ffb:	78 2d                	js     0x42102a
420ffd:	85 c0                	test   %eax,%eax
420fff:	75 07                	jne    0x421008
421001:	bf 90 04 07 80       	mov    $0x80070490,%edi
421006:	eb 22                	jmp    0x42102a
421008:	53                   	push   %ebx
421009:	50                   	push   %eax
42100a:	ff 15 98 63 42 00    	call   *0x426398
421010:	6a 22                	push   $0x22
421012:	53                   	push   %ebx
421013:	50                   	push   %eax
421014:	ff 15 10 63 42 00    	call   *0x426310
42101a:	8b 4d cc             	mov    -0x34(%ebp),%ecx
42101d:	89 01                	mov    %eax,(%ecx)
42101f:	ff 15 88 63 42 00    	call   *0x426388
421025:	8b 45 d0             	mov    -0x30(%ebp),%eax
421028:	8b fb                	mov    %ebx,%edi
42102a:	85 c0                	test   %eax,%eax
42102c:	74 07                	je     0x421035
42102e:	50                   	push   %eax
42102f:	ff 15 90 63 42 00    	call   *0x426390
421035:	8b 75 e0             	mov    -0x20(%ebp),%esi
421038:	85 f6                	test   %esi,%esi
42103a:	74 13                	je     0x42104f
42103c:	89 5d e0             	mov    %ebx,-0x20(%ebp)
42103f:	8b 06                	mov    (%esi),%eax
421041:	56                   	push   %esi
421042:	8b 70 08             	mov    0x8(%eax),%esi
421045:	8b ce                	mov    %esi,%ecx
421047:	ff 15 78 64 42 00    	call   *0x426478
42104d:	ff d6                	call   *%esi
42104f:	8b 5d dc             	mov    -0x24(%ebp),%ebx
421052:	85 db                	test   %ebx,%ebx
421054:	74 14                	je     0x42106a
421056:	83 65 dc 00          	andl   $0x0,-0x24(%ebp)
42105a:	8b 03                	mov    (%ebx),%eax
42105c:	53                   	push   %ebx
42105d:	8b 70 08             	mov    0x8(%eax),%esi
421060:	8b ce                	mov    %esi,%ecx
421062:	ff 15 78 64 42 00    	call   *0x426478
421068:	ff d6                	call   *%esi
42106a:	33 db                	xor    %ebx,%ebx
42106c:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
42106f:	85 c9                	test   %ecx,%ecx
421071:	74 13                	je     0x421086
421073:	89 5d d4             	mov    %ebx,-0x2c(%ebp)
421076:	8b 01                	mov    (%ecx),%eax
421078:	51                   	push   %ecx
421079:	8b 70 08             	mov    0x8(%eax),%esi
42107c:	8b ce                	mov    %esi,%ecx
42107e:	ff 15 78 64 42 00    	call   *0x426478
421084:	ff d6                	call   *%esi
421086:	8b 45 d8             	mov    -0x28(%ebp),%eax
421089:	85 c0                	test   %eax,%eax
42108b:	74 13                	je     0x4210a0
42108d:	89 5d d8             	mov    %ebx,-0x28(%ebp)
421090:	8b 08                	mov    (%eax),%ecx
421092:	50                   	push   %eax
421093:	8b 71 08             	mov    0x8(%ecx),%esi
421096:	8b ce                	mov    %esi,%ecx
421098:	ff 15 78 64 42 00    	call   *0x426478
42109e:	ff d6                	call   *%esi
4210a0:	8b c7                	mov    %edi,%eax
4210a2:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4210a5:	5f                   	pop    %edi
4210a6:	5e                   	pop    %esi
4210a7:	33 cd                	xor    %ebp,%ecx
4210a9:	5b                   	pop    %ebx
4210aa:	e8 c1 07 00 00       	call   0x421870
4210af:	c9                   	leave
4210b0:	c3                   	ret
4210b1:	8b ff                	mov    %edi,%edi
4210b3:	55                   	push   %ebp
4210b4:	8b ec                	mov    %esp,%ebp
4210b6:	a1 3c 00 40 00       	mov    0x40003c,%eax
4210bb:	56                   	push   %esi
4210bc:	8b f2                	mov    %edx,%esi
4210be:	ba 0b 01 00 00       	mov    $0x10b,%edx
4210c3:	0f b7 88 18 00 40 00 	movzwl 0x400018(%eax),%ecx
4210ca:	66 3b ca             	cmp    %dx,%cx
4210cd:	74 0a                	je     0x4210d9
4210cf:	ba 0b 02 00 00       	mov    $0x20b,%edx
4210d4:	66 3b ca             	cmp    %dx,%cx
4210d7:	75 0e                	jne    0x4210e7
4210d9:	8b 88 50 00 40 00    	mov    0x400050(%eax),%ecx
4210df:	8b 90 08 00 40 00    	mov    0x400008(%eax),%edx
4210e5:	eb 04                	jmp    0x4210eb
4210e7:	33 c9                	xor    %ecx,%ecx
4210e9:	8b d1                	mov    %ecx,%edx
4210eb:	8b 45 0c             	mov    0xc(%ebp),%eax
4210ee:	68 04 01 00 00       	push   $0x104
4210f3:	56                   	push   %esi
4210f4:	68 00 00 40 00       	push   $0x400000
4210f9:	89 10                	mov    %edx,(%eax)
4210fb:	8b 45 10             	mov    0x10(%ebp),%eax
4210fe:	89 08                	mov    %ecx,(%eax)
421100:	ff 15 b0 61 42 00    	call   *0x4261b0
421106:	85 c0                	test   %eax,%eax
421108:	74 32                	je     0x42113c
42110a:	83 e8 01             	sub    $0x1,%eax
42110d:	8b c8                	mov    %eax,%ecx
42110f:	74 0f                	je     0x421120
421111:	80 3c 31 5c          	cmpb   $0x5c,(%ecx,%esi,1)
421115:	74 07                	je     0x42111e
421117:	83 e9 01             	sub    $0x1,%ecx
42111a:	75 f5                	jne    0x421111
42111c:	eb 02                	jmp    0x421120
42111e:	8b c1                	mov    %ecx,%eax
421120:	b9 03 01 00 00       	mov    $0x103,%ecx
421125:	3b c1                	cmp    %ecx,%eax
421127:	74 10                	je     0x421139
421129:	2b c8                	sub    %eax,%ecx
42112b:	40                   	inc    %eax
42112c:	51                   	push   %ecx
42112d:	03 c6                	add    %esi,%eax
42112f:	50                   	push   %eax
421130:	56                   	push   %esi
421131:	e8 53 1a 00 00       	call   0x422b89
421136:	83 c4 0c             	add    $0xc,%esp
421139:	33 c0                	xor    %eax,%eax
42113b:	40                   	inc    %eax
42113c:	5e                   	pop    %esi
42113d:	5d                   	pop    %ebp
42113e:	c2 0c 00             	ret    $0xc
421141:	8b ff                	mov    %edi,%edi
421143:	55                   	push   %ebp
421144:	8b ec                	mov    %esp,%ebp
421146:	81 ec 4c 01 00 00    	sub    $0x14c,%esp
42114c:	a1 10 42 42 00       	mov    0x424210,%eax
421151:	33 c5                	xor    %ebp,%eax
421153:	89 45 fc             	mov    %eax,-0x4(%ebp)
421156:	53                   	push   %ebx
421157:	56                   	push   %esi
421158:	57                   	push   %edi
421159:	33 db                	xor    %ebx,%ebx
42115b:	8b f9                	mov    %ecx,%edi
42115d:	21 9d cc fe ff ff    	and    %ebx,-0x134(%ebp)
421163:	68 38 5e 42 00       	push   $0x425e38
421168:	ff 15 60 61 42 00    	call   *0x426160
42116e:	8b 35 3c 5e 42 00    	mov    0x425e3c,%esi
421174:	85 f6                	test   %esi,%esi
421176:	74 14                	je     0x42118c
421178:	39 3e                	cmp    %edi,(%esi)
42117a:	75 05                	jne    0x421181
42117c:	39 5e 04             	cmp    %ebx,0x4(%esi)
42117f:	74 07                	je     0x421188
421181:	8b 76 14             	mov    0x14(%esi),%esi
421184:	85 f6                	test   %esi,%esi
421186:	75 f0                	jne    0x421178
421188:	85 f6                	test   %esi,%esi
42118a:	75 3b                	jne    0x4211c7
42118c:	6a 18                	push   $0x18
42118e:	6a 40                	push   $0x40
421190:	ff 15 bc 60 42 00    	call   *0x4260bc
421196:	8b f0                	mov    %eax,%esi
421198:	85 f6                	test   %esi,%esi
42119a:	0f 84 e8 02 00 00    	je     0x421488
4211a0:	21 5e 04             	and    %ebx,0x4(%esi)
4211a3:	89 3e                	mov    %edi,(%esi)
4211a5:	ff 15 64 63 42 00    	call   *0x426364
4211ab:	21 5e 0c             	and    %ebx,0xc(%esi)
4211ae:	2d 61 ea 00 00       	sub    $0xea61,%eax
4211b3:	21 5e 10             	and    %ebx,0x10(%esi)
4211b6:	89 46 08             	mov    %eax,0x8(%esi)
4211b9:	a1 3c 5e 42 00       	mov    0x425e3c,%eax
4211be:	89 46 14             	mov    %eax,0x14(%esi)
4211c1:	89 35 3c 5e 42 00    	mov    %esi,0x425e3c
4211c7:	ff 46 0c             	incl   0xc(%esi)
4211ca:	ff 46 10             	incl   0x10(%esi)
4211cd:	ff 15 64 63 42 00    	call   *0x426364
4211d3:	2b 46 08             	sub    0x8(%esi),%eax
4211d6:	3d 60 ea 00 00       	cmp    $0xea60,%eax
4211db:	0f 86 a7 02 00 00    	jbe    0x421488
4211e1:	ff 15 64 63 42 00    	call   *0x426364
4211e7:	89 46 08             	mov    %eax,0x8(%esi)
4211ea:	8d 95 f0 fe ff ff    	lea    -0x110(%ebp),%edx
4211f0:	8d 85 d0 fe ff ff    	lea    -0x130(%ebp),%eax
4211f6:	50                   	push   %eax
4211f7:	8d 85 c8 fe ff ff    	lea    -0x138(%ebp),%eax
4211fd:	50                   	push   %eax
4211fe:	51                   	push   %ecx
4211ff:	e8 ad fe ff ff       	call   0x4210b1
421204:	89 85 d4 fe ff ff    	mov    %eax,-0x12c(%ebp)
42120a:	85 c0                	test   %eax,%eax
42120c:	74 21                	je     0x42122f
42120e:	ba 00 00 40 00       	mov    $0x400000,%edx
421213:	3b fa                	cmp    %edx,%edi
421215:	72 18                	jb     0x42122f
421217:	8b 85 d0 fe ff ff    	mov    -0x130(%ebp),%eax
42121d:	8d 88 00 00 40 00    	lea    0x400000(%eax),%ecx
421223:	3b ca                	cmp    %edx,%ecx
421225:	76 08                	jbe    0x42122f
421227:	3b f9                	cmp    %ecx,%edi
421229:	77 04                	ja     0x42122f
42122b:	2b fa                	sub    %edx,%edi
42122d:	eb 02                	jmp    0x421231
42122f:	33 ff                	xor    %edi,%edi
421231:	83 7e 10 01          	cmpl   $0x1,0x10(%esi)
421235:	89 bd dc fe ff ff    	mov    %edi,-0x124(%ebp)
42123b:	0f 85 11 01 00 00    	jne    0x421352
421241:	b9 30 41 42 00       	mov    $0x424130,%ecx
421246:	e8 70 4e fe ff       	call   0x4060bb
42124b:	85 c0                	test   %eax,%eax
42124d:	0f 85 ff 00 00 00    	jne    0x421352
421253:	39 1d 30 41 42 00    	cmp    %ebx,0x424130
421259:	0f 86 cc 00 00 00    	jbe    0x42132b
42125f:	8a 95 f0 fe ff ff    	mov    -0x110(%ebp),%dl
421265:	40                   	inc    %eax
421266:	33 db                	xor    %ebx,%ebx
421268:	89 85 cc fe ff ff    	mov    %eax,-0x134(%ebp)
42126e:	89 85 d8 fe ff ff    	mov    %eax,-0x128(%ebp)
421274:	c7 85 e0 fe ff ff a6 	movl   $0x1d1727a6,-0x120(%ebp)
42127b:	27 17 1d
42127e:	c7 85 e4 fe ff ff c8 	movl   $0x4e2792c8,-0x11c(%ebp)
421285:	92 27 4e
421288:	c7 85 e8 fe ff ff bc 	movl   $0x8b0f69bc,-0x118(%ebp)
42128f:	69 0f 8b
421292:	c7 85 ec fe ff ff 45 	movl   $0x9d548c45,-0x114(%ebp)
421299:	8c 54 9d
42129c:	84 d2                	test   %dl,%dl
42129e:	74 31                	je     0x4212d1
4212a0:	8d bd f0 fe ff ff    	lea    -0x110(%ebp),%edi
4212a6:	0f be c2             	movsbl %dl,%eax
4212a9:	50                   	push   %eax
4212aa:	ff 15 08 64 42 00    	call   *0x426408
4212b0:	00 84 1d e0 fe ff ff 	add    %al,-0x120(%ebp,%ebx,1)
4212b7:	47                   	inc    %edi
4212b8:	8d 43 01             	lea    0x1(%ebx),%eax
4212bb:	83 f8 10             	cmp    $0x10,%eax
4212be:	59                   	pop    %ecx
4212bf:	8a 0f                	mov    (%edi),%cl
4212c1:	1b db                	sbb    %ebx,%ebx
4212c3:	23 d8                	and    %eax,%ebx
4212c5:	8a d1                	mov    %cl,%dl
4212c7:	84 c9                	test   %cl,%cl
4212c9:	75 db                	jne    0x4212a6
4212cb:	8b bd dc fe ff ff    	mov    -0x124(%ebp),%edi
4212d1:	8d 85 c0 fe ff ff    	lea    -0x140(%ebp),%eax
4212d7:	33 db                	xor    %ebx,%ebx
4212d9:	50                   	push   %eax
4212da:	53                   	push   %ebx
4212db:	53                   	push   %ebx
4212dc:	8d 85 e0 fe ff ff    	lea    -0x120(%ebp),%eax
4212e2:	50                   	push   %eax
4212e3:	e8 bc 02 00 00       	call   0x4215a4
4212e8:	85 c0                	test   %eax,%eax
4212ea:	75 39                	jne    0x421325
4212ec:	53                   	push   %ebx
4212ed:	53                   	push   %ebx
4212ee:	53                   	push   %ebx
4212ef:	ff b5 c4 fe ff ff    	push   -0x13c(%ebp)
4212f5:	ff b5 c0 fe ff ff    	push   -0x140(%ebp)
4212fb:	ff 15 58 64 42 00    	call   *0x426458
421301:	ff b5 c4 fe ff ff    	push   -0x13c(%ebp)
421307:	0f b6 c0             	movzbl %al,%eax
42130a:	ff b5 c0 fe ff ff    	push   -0x140(%ebp)
421310:	f7 d8                	neg    %eax
421312:	1b c0                	sbb    %eax,%eax
421314:	f7 d0                	not    %eax
421316:	23 85 d8 fe ff ff    	and    -0x128(%ebp),%eax
42131c:	8b d8                	mov    %eax,%ebx
42131e:	e8 91 02 00 00       	call   0x4215b4
421323:	eb 06                	jmp    0x42132b
421325:	8b 9d d8 fe ff ff    	mov    -0x128(%ebp),%ebx
42132b:	a1 4c 41 42 00       	mov    0x42414c,%eax
421330:	33 d2                	xor    %edx,%edx
421332:	8b 0d 48 41 42 00    	mov    0x424148,%ecx
421338:	50                   	push   %eax
421339:	51                   	push   %ecx
42133a:	89 15 30 41 42 00    	mov    %edx,0x424130
421340:	89 15 48 41 42 00    	mov    %edx,0x424148
421346:	89 15 4c 41 42 00    	mov    %edx,0x42414c
42134c:	ff 15 3c 90 42 00    	call   *0x42903c
421352:	b9 58 41 42 00       	mov    $0x424158,%ecx
421357:	e8 5f 4d fe ff       	call   0x4060bb
42135c:	85 c0                	test   %eax,%eax
42135e:	0f 85 08 01 00 00    	jne    0x42146c
421364:	83 3d 58 41 42 00 05 	cmpl   $0x5,0x424158
42136b:	0f 86 d3 00 00 00    	jbe    0x421444
421371:	68 00 40 00 00       	push   $0x4000
421376:	50                   	push   %eax
421377:	b9 58 41 42 00       	mov    $0x424158,%ecx
42137c:	e8 83 4c fe ff       	call   0x406004
421381:	84 c0                	test   %al,%al
421383:	0f 84 bb 00 00 00    	je     0x421444
421389:	83 bd d4 fe ff ff 00 	cmpl   $0x0,-0x12c(%ebp)
421390:	8d 85 f0 fe ff ff    	lea    -0x110(%ebp),%eax
421396:	8b 56 10             	mov    0x10(%esi),%edx
421399:	75 05                	jne    0x4213a0
42139b:	b8 60 4f 40 00       	mov    $0x404f60,%eax
4213a0:	8b 8d cc fe ff ff    	mov    -0x134(%ebp),%ecx
4213a6:	89 85 b4 fe ff ff    	mov    %eax,-0x14c(%ebp)
4213ac:	89 8d d8 fe ff ff    	mov    %ecx,-0x128(%ebp)
4213b2:	8b 8d d4 fe ff ff    	mov    -0x12c(%ebp),%ecx
4213b8:	8b c1                	mov    %ecx,%eax
4213ba:	f7 d8                	neg    %eax
4213bc:	89 95 bc fe ff ff    	mov    %edx,-0x144(%ebp)
4213c2:	8b 56 0c             	mov    0xc(%esi),%edx
4213c5:	1b c0                	sbb    %eax,%eax
4213c7:	89 95 b8 fe ff ff    	mov    %edx,-0x148(%ebp)
4213cd:	21 85 d0 fe ff ff    	and    %eax,-0x130(%ebp)
4213d3:	ba 68 55 40 00       	mov    $0x405568,%edx
4213d8:	8d 85 d8 fe ff ff    	lea    -0x128(%ebp),%eax
4213de:	89 9d dc fe ff ff    	mov    %ebx,-0x124(%ebp)
4213e4:	50                   	push   %eax
4213e5:	8d 85 dc fe ff ff    	lea    -0x124(%ebp),%eax
4213eb:	89 bd d4 fe ff ff    	mov    %edi,-0x12c(%ebp)
4213f1:	50                   	push   %eax
4213f2:	8d 85 bc fe ff ff    	lea    -0x144(%ebp),%eax
4213f8:	c7 85 c4 fe ff ff 0a 	movl   $0xa,-0x13c(%ebp)
4213ff:	00 00 00
421402:	50                   	push   %eax
421403:	8d 85 b8 fe ff ff    	lea    -0x148(%ebp),%eax
421409:	f7 d9                	neg    %ecx
42140b:	50                   	push   %eax
42140c:	8d 85 b4 fe ff ff    	lea    -0x14c(%ebp),%eax
421412:	1b c9                	sbb    %ecx,%ecx
421414:	23 8d c8 fe ff ff    	and    -0x138(%ebp),%ecx
42141a:	50                   	push   %eax
42141b:	8d 85 d0 fe ff ff    	lea    -0x130(%ebp),%eax
421421:	89 8d c8 fe ff ff    	mov    %ecx,-0x138(%ebp)
421427:	50                   	push   %eax
421428:	8d 85 c8 fe ff ff    	lea    -0x138(%ebp),%eax
42142e:	50                   	push   %eax
42142f:	8d 85 d4 fe ff ff    	lea    -0x12c(%ebp),%eax
421435:	50                   	push   %eax
421436:	8d 85 c4 fe ff ff    	lea    -0x13c(%ebp),%eax
42143c:	50                   	push   %eax