402fff:	e8 da f1 ff ff       	call   0x4021de
403004:	84 c0                	test   %al,%al
403006:	74 1d                	je     0x403025
403008:	83 7c 24 28 08       	cmpl   $0x8,0x28(%esp)
40300d:	8b c1                	mov    %ecx,%eax
40300f:	6a 09                	push   $0x9
403011:	0f 43 44 24 18       	cmovae 0x18(%esp),%eax
403016:	2b f0                	sub    %eax,%esi
403018:	8b c1                	mov    %ecx,%eax
40301a:	d1 fe                	sar    $1,%esi
40301c:	56                   	push   %esi
40301d:	50                   	push   %eax
40301e:	e8 9c 05 00 00       	call   0x4035bf
403023:	eb 65                	jmp    0x40308a
403025:	8b 4c 24 24          	mov    0x24(%esp),%ecx
403029:	83 c8 ff             	or     $0xffffffff,%eax
40302c:	2b c1                	sub    %ecx,%eax
40302e:	83 f8 09             	cmp    $0x9,%eax
403031:	0f 86 d7 00 00 00    	jbe    0x40310e
403037:	8d 41 09             	lea    0x9(%ecx),%eax
40303a:	6a 00                	push   $0x0
40303c:	50                   	push   %eax
40303d:	8d 4c 24 1c          	lea    0x1c(%esp),%ecx
403041:	89 44 24 18          	mov    %eax,0x18(%esp)
403045:	e8 cd f1 ff ff       	call   0x402217
40304a:	84 c0                	test   %al,%al
40304c:	74 3c                	je     0x40308a
40304e:	83 7c 24 28 08       	cmpl   $0x8,0x28(%esp)
403053:	8d 4c 24 14          	lea    0x14(%esp),%ecx
403057:	8b 44 24 24          	mov    0x24(%esp),%eax
40305b:	be e8 93 43 00       	mov    $0x4393e8,%esi
403060:	0f 43 4c 24 14       	cmovae 0x14(%esp),%ecx
403065:	8d 3c 41             	lea    (%ecx,%eax,2),%edi
403068:	8b 4c 24 10          	mov    0x10(%esp),%ecx
40306c:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40306d:	8d 44 24 14          	lea    0x14(%esp),%eax
403071:	a5                   	movsl  %ds:(%esi),%es:(%edi)
403072:	a5                   	movsl  %ds:(%esi),%es:(%edi)
403073:	a5                   	movsl  %ds:(%esi),%es:(%edi)
403074:	66 a5                	movsw  %ds:(%esi),%es:(%edi)
403076:	83 7c 24 28 08       	cmpl   $0x8,0x28(%esp)
40307b:	89 4c 24 24          	mov    %ecx,0x24(%esp)
40307f:	0f 43 44 24 14       	cmovae 0x14(%esp),%eax
403084:	33 d2                	xor    %edx,%edx
403086:	66 89 14 48          	mov    %dx,(%eax,%ecx,2)
40308a:	83 7c 24 28 08       	cmpl   $0x8,0x28(%esp)
40308f:	8d 44 24 14          	lea    0x14(%esp),%eax
403093:	0f 43 44 24 14       	cmovae 0x14(%esp),%eax
403098:	33 c9                	xor    %ecx,%ecx
40309a:	51                   	push   %ecx
40309b:	68 80 00 00 00       	push   $0x80
4030a0:	6a 01                	push   $0x1
4030a2:	51                   	push   %ecx
4030a3:	51                   	push   %ecx
4030a4:	68 00 00 00 40       	push   $0x40000000
4030a9:	50                   	push   %eax
4030aa:	ff 15 38 11 43 00    	call   *0x431138
4030b0:	89 83 4c 01 02 00    	mov    %eax,0x2014c(%ebx)
4030b6:	83 f8 ff             	cmp    $0xffffffff,%eax
4030b9:	74 20                	je     0x4030db
4030bb:	8d 44 24 14          	lea    0x14(%esp),%eax
4030bf:	c6 83 51 01 02 00 01 	movb   $0x1,0x20151(%ebx)
4030c6:	3b e8                	cmp    %eax,%ebp
4030c8:	74 0c                	je     0x4030d6
4030ca:	6a ff                	push   $0xffffffff
4030cc:	6a 00                	push   $0x0
4030ce:	50                   	push   %eax
4030cf:	8b cd                	mov    %ebp,%ecx
4030d1:	e8 3a f0 ff ff       	call   0x402110
4030d6:	33 db                	xor    %ebx,%ebx
4030d8:	43                   	inc    %ebx
4030d9:	eb 02                	jmp    0x4030dd
4030db:	32 db                	xor    %bl,%bl
4030dd:	8b 54 24 28          	mov    0x28(%esp),%edx
4030e1:	83 fa 08             	cmp    $0x8,%edx
4030e4:	72 0d                	jb     0x4030f3
4030e6:	8b 4c 24 14          	mov    0x14(%esp),%ecx
4030ea:	42                   	inc    %edx
4030eb:	6a 02                	push   $0x2
4030ed:	e8 ec e0 ff ff       	call   0x4011de
4030f2:	59                   	pop    %ecx
4030f3:	8a c3                	mov    %bl,%al
4030f5:	eb 02                	jmp    0x4030f9
4030f7:	32 c0                	xor    %al,%al
4030f9:	8b 4c 24 2c          	mov    0x2c(%esp),%ecx
4030fd:	5f                   	pop    %edi
4030fe:	5e                   	pop    %esi
4030ff:	5d                   	pop    %ebp
403100:	5b                   	pop    %ebx
403101:	33 cc                	xor    %esp,%ecx
403103:	e8 9f 6b 00 00       	call   0x409ca7
403108:	83 c4 20             	add    $0x20,%esp
40310b:	c2 04 00             	ret    $0x4
40310e:	e8 f0 f1 ff ff       	call   0x402303
403113:	cc                   	int3
403114:	51                   	push   %ecx
403115:	56                   	push   %esi
403116:	8b f1                	mov    %ecx,%esi
403118:	57                   	push   %edi
403119:	8b 3d 14 10 43 00    	mov    0x431014,%edi
40311f:	8d 86 74 01 02 00    	lea    0x20174(%esi),%eax
403125:	50                   	push   %eax
403126:	89 44 24 0c          	mov    %eax,0xc(%esp)
40312a:	ff d7                	call   *%edi
40312c:	83 7e 04 00          	cmpl   $0x0,0x4(%esi)
403130:	75 3a                	jne    0x40316c
403132:	55                   	push   %ebp
403133:	8d ae 5c 01 02 00    	lea    0x2015c(%esi),%ebp
403139:	55                   	push   %ebp
40313a:	ff d7                	call   *%edi
40313c:	8b 3e                	mov    (%esi),%edi
40313e:	85 ff                	test   %edi,%edi
403140:	75 0f                	jne    0x403151
403142:	68 fc 93 43 00       	push   $0x4393fc
403147:	ff 15 3c 11 43 00    	call   *0x43113c
40314d:	8b f8                	mov    %eax,%edi
40314f:	89 3e                	mov    %edi,(%esi)
403151:	55                   	push   %ebp
403152:	ff 15 18 10 43 00    	call   *0x431018
403158:	5d                   	pop    %ebp
403159:	85 ff                	test   %edi,%edi
40315b:	74 0f                	je     0x40316c
40315d:	68 14 94 43 00       	push   $0x439414
403162:	57                   	push   %edi
403163:	ff 15 40 11 43 00    	call   *0x431140
403169:	89 46 04             	mov    %eax,0x4(%esi)
40316c:	ff 74 24 08          	push   0x8(%esp)
403170:	8b 76 04             	mov    0x4(%esi),%esi
403173:	ff 15 18 10 43 00    	call   *0x431018
403179:	5f                   	pop    %edi
40317a:	8b c6                	mov    %esi,%eax
40317c:	5e                   	pop    %esi
40317d:	59                   	pop    %ecx
40317e:	c3                   	ret
40317f:	81 ec 78 06 00 00    	sub    $0x678,%esp
403185:	a1 c0 d0 43 00       	mov    0x43d0c0,%eax
40318a:	33 c4                	xor    %esp,%eax
40318c:	89 84 24 74 06 00 00 	mov    %eax,0x674(%esp)
403193:	53                   	push   %ebx
403194:	55                   	push   %ebp
403195:	56                   	push   %esi
403196:	57                   	push   %edi
403197:	8b ac 24 8c 06 00 00 	mov    0x68c(%esp),%ebp
40319e:	8d 7c 24 78          	lea    0x78(%esp),%edi
4031a2:	83 64 24 10 00       	andl   $0x0,0x10(%esp)
4031a7:	8d 84 24 88 00 00 00 	lea    0x88(%esp),%eax
4031ae:	be 28 94 43 00       	mov    $0x439428,%esi
4031b3:	8b d9                	mov    %ecx,%ebx
4031b5:	68 f8 01 00 00       	push   $0x1f8
4031ba:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4031bb:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4031bc:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4031bd:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4031be:	33 ff                	xor    %edi,%edi
4031c0:	57                   	push   %edi
4031c1:	50                   	push   %eax
4031c2:	e8 f9 81 00 00       	call   0x40b3c0
4031c7:	83 c4 0c             	add    $0xc,%esp
4031ca:	8d 44 24 10          	lea    0x10(%esp),%eax
4031ce:	50                   	push   %eax
4031cf:	6a 04                	push   $0x4
4031d1:	8d 44 24 1c          	lea    0x1c(%esp),%eax
4031d5:	50                   	push   %eax
4031d6:	ff 73 10             	push   0x10(%ebx)
4031d9:	ff 15 b4 11 43 00    	call   *0x4311b4
4031df:	85 c0                	test   %eax,%eax
4031e1:	74 25                	je     0x403208
4031e3:	be 04 01 00 00       	mov    $0x104,%esi
4031e8:	8d 44 24 78          	lea    0x78(%esp),%eax
4031ec:	56                   	push   %esi
4031ed:	50                   	push   %eax
4031ee:	ff 74 24 1c          	push   0x1c(%esp)
4031f2:	ff 73 10             	push   0x10(%ebx)
4031f5:	ff 15 b8 11 43 00    	call   *0x4311b8
4031fb:	8d 44 24 78          	lea    0x78(%esp),%eax
4031ff:	56                   	push   %esi
403200:	50                   	push   %eax
403201:	e8 12 02 01 00       	call   0x413418
403206:	59                   	pop    %ecx
403207:	59                   	pop    %ecx
403208:	57                   	push   %edi
403209:	e8 12 f8 00 00       	call   0x412a20
40320e:	89 44 24 1c          	mov    %eax,0x1c(%esp)
403212:	8d 44 24 1c          	lea    0x1c(%esp),%eax
403216:	50                   	push   %eax
403217:	8d 44 24 2c          	lea    0x2c(%esp),%eax
40321b:	89 54 24 24          	mov    %edx,0x24(%esp)
40321f:	50                   	push   %eax
403220:	e8 60 fe 00 00       	call   0x413085
403225:	8d 93 2c 00 02 00    	lea    0x2002c(%ebx),%edx
40322b:	83 c4 0c             	add    $0xc,%esp
40322e:	85 d2                	test   %edx,%edx
403230:	74 16                	je     0x403248
403232:	8b ca                	mov    %edx,%ecx
403234:	8d 71 02             	lea    0x2(%ecx),%esi
403237:	66 8b 01             	mov    (%ecx),%ax
40323a:	83 c1 02             	add    $0x2,%ecx
40323d:	66 3b c7             	cmp    %di,%ax
403240:	75 f5                	jne    0x403237
403242:	2b ce                	sub    %esi,%ecx
403244:	d1 f9                	sar    $1,%ecx
403246:	75 04                	jne    0x40324c
403248:	8d 54 24 78          	lea    0x78(%esp),%edx
40324c:	ff 05 a0 ff 43 00    	incl   0x43ffa0
403252:	b9 44 94 43 00       	mov    $0x439444,%ecx
403257:	ff 35 a0 ff 43 00    	push   0x43ffa0
40325d:	8b 44 24 38          	mov    0x38(%esp),%eax
403261:	ff 74 24 28          	push   0x28(%esp)
403265:	40                   	inc    %eax
403266:	ff 74 24 30          	push   0x30(%esp)
40326a:	ff 74 24 38          	push   0x38(%esp)
40326e:	ff 74 24 40          	push   0x40(%esp)
403272:	50                   	push   %eax
403273:	8b 44 24 50          	mov    0x50(%esp),%eax
403277:	05 6c 07 00 00       	add    $0x76c,%eax
40327c:	39 7b 20             	cmp    %edi,0x20(%ebx)
40327f:	50                   	push   %eax
403280:	52                   	push   %edx
403281:	b8 38 94 43 00       	mov    $0x439438,%eax
403286:	0f 44 c1             	cmove  %ecx,%eax
403289:	50                   	push   %eax
40328a:	68 58 94 43 00       	push   $0x439458
40328f:	8d 84 24 a8 02 00 00 	lea    0x2a8(%esp),%eax
403296:	68 00 02 00 00       	push   $0x200
40329b:	50                   	push   %eax
40329c:	e8 0d f5 ff ff       	call   0x4027ae
4032a1:	83 c4 2c             	add    $0x2c,%esp
4032a4:	8d 93 30 01 02 00    	lea    0x20130(%ebx),%edx
4032aa:	8d 4c 24 64          	lea    0x64(%esp),%ecx
4032ae:	e8 c6 03 00 00       	call   0x403679
4032b3:	59                   	pop    %ecx
4032b4:	8d 8c 24 80 02 00 00 	lea    0x280(%esp),%ecx
4032bb:	8b f0                	mov    %eax,%esi
4032bd:	e8 8a de ff ff       	call   0x40114c
4032c2:	50                   	push   %eax
4032c3:	8d 84 24 84 02 00 00 	lea    0x284(%esp),%eax
4032ca:	8b ce                	mov    %esi,%ecx
4032cc:	50                   	push   %eax
4032cd:	e8 8a 01 00 00       	call   0x40345c
4032d2:	50                   	push   %eax
4032d3:	8d 4c 24 4c          	lea    0x4c(%esp),%ecx
4032d7:	e8 f2 ec ff ff       	call   0x401fce
4032dc:	8d 44 24 48          	lea    0x48(%esp),%eax
4032e0:	8b cd                	mov    %ebp,%ecx
4032e2:	50                   	push   %eax
4032e3:	e8 bd 00 00 00       	call   0x4033a5
4032e8:	57                   	push   %edi
4032e9:	6a 01                	push   $0x1
4032eb:	8d 4c 24 50          	lea    0x50(%esp),%ecx
4032ef:	e8 d1 ed ff ff       	call   0x4020c5
4032f4:	57                   	push   %edi
4032f5:	6a 01                	push   $0x1
4032f7:	8d 4c 24 68          	lea    0x68(%esp),%ecx
4032fb:	e8 c5 ed ff ff       	call   0x4020c5
403300:	8b 8c 24 84 06 00 00 	mov    0x684(%esp),%ecx
403307:	b0 01                	mov    $0x1,%al
403309:	5f                   	pop    %edi
40330a:	5e                   	pop    %esi
40330b:	5d                   	pop    %ebp
40330c:	5b                   	pop    %ebx
40330d:	33 cc                	xor    %esp,%ecx
40330f:	e8 93 69 00 00       	call   0x409ca7
403314:	81 c4 78 06 00 00    	add    $0x678,%esp
40331a:	c2 04 00             	ret    $0x4
40331d:	56                   	push   %esi
40331e:	8b f1                	mov    %ecx,%esi
403320:	57                   	push   %edi
403321:	8b 7c 24 0c          	mov    0xc(%esp),%edi
403325:	8b 4e 04             	mov    0x4(%esi),%ecx
403328:	8b 06                	mov    (%esi),%eax
40332a:	2b c8                	sub    %eax,%ecx
40332c:	3b f9                	cmp    %ecx,%edi
40332e:	72 26                	jb     0x403356
403330:	76 29                	jbe    0x40335b
403332:	2b 46 04             	sub    0x4(%esi),%eax
403335:	8b ce                	mov    %esi,%ecx
403337:	03 c7                	add    %edi,%eax
403339:	50                   	push   %eax
40333a:	e8 ab 00 00 00       	call   0x4033ea
40333f:	8b 06                	mov    (%esi),%eax
403341:	2b 46 04             	sub    0x4(%esi),%eax
403344:	03 c7                	add    %edi,%eax
403346:	50                   	push   %eax
403347:	6a 00                	push   $0x0
403349:	ff 76 04             	push   0x4(%esi)
40334c:	e8 6f 80 00 00       	call   0x40b3c0
403351:	8b 06                	mov    (%esi),%eax
403353:	83 c4 0c             	add    $0xc,%esp
403356:	03 c7                	add    %edi,%eax
403358:	89 46 04             	mov    %eax,0x4(%esi)
40335b:	5f                   	pop    %edi
40335c:	5e                   	pop    %esi
40335d:	c2 04 00             	ret    $0x4
403360:	53                   	push   %ebx
403361:	55                   	push   %ebp
403362:	57                   	push   %edi
403363:	8b f9                	mov    %ecx,%edi
403365:	bd 28 01 00 00       	mov    $0x128,%ebp
40336a:	8b 07                	mov    (%edi),%eax
40336c:	8b 18                	mov    (%eax),%ebx
40336e:	89 00                	mov    %eax,(%eax)
403370:	8b 07                	mov    (%edi),%eax
403372:	89 40 04             	mov    %eax,0x4(%eax)
403375:	83 67 04 00          	andl   $0x0,0x4(%edi)
403379:	8b 0f                	mov    (%edi),%ecx
40337b:	3b d9                	cmp    %ecx,%ebx
40337d:	74 18                	je     0x403397
40337f:	56                   	push   %esi
403380:	8b 33                	mov    (%ebx),%esi
403382:	33 d2                	xor    %edx,%edx
403384:	55                   	push   %ebp
403385:	42                   	inc    %edx
403386:	8b cb                	mov    %ebx,%ecx
403388:	e8 51 de ff ff       	call   0x4011de
40338d:	59                   	pop    %ecx
40338e:	8b 0f                	mov    (%edi),%ecx
403390:	8b de                	mov    %esi,%ebx
403392:	3b f1                	cmp    %ecx,%esi
403394:	75 ea                	jne    0x403380
403396:	5e                   	pop    %esi
403397:	33 d2                	xor    %edx,%edx
403399:	55                   	push   %ebp
40339a:	42                   	inc    %edx
40339b:	e8 3e de ff ff       	call   0x4011de
4033a0:	59                   	pop    %ecx
4033a1:	5f                   	pop    %edi
4033a2:	5d                   	pop    %ebp
4033a3:	5b                   	pop    %ebx
4033a4:	c3                   	ret
4033a5:	56                   	push   %esi
4033a6:	8b f1                	mov    %ecx,%esi
4033a8:	3b 74 24 08          	cmp    0x8(%esp),%esi
4033ac:	74 14                	je     0x4033c2
4033ae:	6a 00                	push   $0x0
4033b0:	6a 01                	push   $0x1
4033b2:	e8 0e ed ff ff       	call   0x4020c5
4033b7:	ff 74 24 08          	push   0x8(%esp)
4033bb:	8b ce                	mov    %esi,%ecx
4033bd:	e8 c8 ed ff ff       	call   0x40218a
4033c2:	8b c6                	mov    %esi,%eax
4033c4:	5e                   	pop    %esi
4033c5:	c2 04 00             	ret    $0x4
4033c8:	56                   	push   %esi
4033c9:	8b f1                	mov    %ecx,%esi
4033cb:	8b 0e                	mov    (%esi),%ecx
4033cd:	85 c9                	test   %ecx,%ecx
4033cf:	74 17                	je     0x4033e8
4033d1:	8b 56 08             	mov    0x8(%esi),%edx
4033d4:	6a 01                	push   $0x1
4033d6:	2b d1                	sub    %ecx,%edx