408281:	ff 75 e4             	push   -0x1c(%ebp)
408284:	ff 75 dc             	push   -0x24(%ebp)
408287:	ff 75 d8             	push   -0x28(%ebp)
40828a:	6a 01                	push   $0x1
40828c:	ff 75 08             	push   0x8(%ebp)
40828f:	ff d3                	call   *%ebx
408291:	85 c0                	test   %eax,%eax
408293:	74 7f                	je     0x408314
408295:	8b 5d cc             	mov    -0x34(%ebp),%ebx
408298:	3b df                	cmp    %edi,%ebx
40829a:	74 1d                	je     0x4082b9
40829c:	57                   	push   %edi
40829d:	57                   	push   %edi
40829e:	ff 75 1c             	push   0x1c(%ebp)
4082a1:	53                   	push   %ebx
4082a2:	56                   	push   %esi
4082a3:	ff 75 e4             	push   -0x1c(%ebp)
4082a6:	57                   	push   %edi
4082a7:	ff 75 0c             	push   0xc(%ebp)
4082aa:	ff 15 14 11 40 00    	call   *0x401114
4082b0:	85 c0                	test   %eax,%eax
4082b2:	74 60                	je     0x408314
4082b4:	89 5d e0             	mov    %ebx,-0x20(%ebp)
4082b7:	eb 5b                	jmp    0x408314
4082b9:	8b 1d 14 11 40 00    	mov    0x401114,%ebx
4082bf:	39 7d d4             	cmp    %edi,-0x2c(%ebp)
4082c2:	75 14                	jne    0x4082d8
4082c4:	57                   	push   %edi
4082c5:	57                   	push   %edi
4082c6:	57                   	push   %edi
4082c7:	57                   	push   %edi
4082c8:	56                   	push   %esi
4082c9:	ff 75 e4             	push   -0x1c(%ebp)
4082cc:	57                   	push   %edi
4082cd:	ff 75 0c             	push   0xc(%ebp)
4082d0:	ff d3                	call   *%ebx
4082d2:	8b f0                	mov    %eax,%esi
4082d4:	3b f7                	cmp    %edi,%esi
4082d6:	74 3c                	je     0x408314
4082d8:	56                   	push   %esi
4082d9:	6a 01                	push   $0x1
4082db:	e8 00 d6 ff ff       	call   0x4058e0
4082e0:	59                   	pop    %ecx
4082e1:	59                   	pop    %ecx
4082e2:	89 45 e0             	mov    %eax,-0x20(%ebp)
4082e5:	3b c7                	cmp    %edi,%eax
4082e7:	74 2b                	je     0x408314
4082e9:	57                   	push   %edi
4082ea:	57                   	push   %edi
4082eb:	56                   	push   %esi
4082ec:	50                   	push   %eax
4082ed:	56                   	push   %esi
4082ee:	ff 75 e4             	push   -0x1c(%ebp)
4082f1:	57                   	push   %edi
4082f2:	ff 75 0c             	push   0xc(%ebp)
4082f5:	ff d3                	call   *%ebx
4082f7:	3b c7                	cmp    %edi,%eax
4082f9:	75 0e                	jne    0x408309
4082fb:	ff 75 e0             	push   -0x20(%ebp)
4082fe:	e8 9b d4 ff ff       	call   0x40579e
408303:	59                   	pop    %ecx
408304:	89 7d e0             	mov    %edi,-0x20(%ebp)
408307:	eb 0b                	jmp    0x408314
408309:	83 7d dc ff          	cmpl   $0xffffffff,-0x24(%ebp)
40830d:	74 05                	je     0x408314
40830f:	8b 4d d0             	mov    -0x30(%ebp),%ecx
408312:	89 01                	mov    %eax,(%ecx)
408314:	ff 75 e4             	push   -0x1c(%ebp)
408317:	e8 7e e6 ff ff       	call   0x40699a
40831c:	59                   	pop    %ecx
40831d:	8b 45 e0             	mov    -0x20(%ebp),%eax
408320:	8d 65 c0             	lea    -0x40(%ebp),%esp
408323:	5f                   	pop    %edi
408324:	5e                   	pop    %esi
408325:	5b                   	pop    %ebx
408326:	8b 4d fc             	mov    -0x4(%ebp),%ecx
408329:	33 cd                	xor    %ebp,%ecx
40832b:	e8 c0 a0 ff ff       	call   0x4023f0
408330:	c9                   	leave
408331:	c3                   	ret
408332:	cc                   	int3
408333:	cc                   	int3
408334:	cc                   	int3
408335:	cc                   	int3
408336:	cc                   	int3
408337:	cc                   	int3
408338:	cc                   	int3
408339:	cc                   	int3
40833a:	cc                   	int3
40833b:	cc                   	int3
40833c:	cc                   	int3
40833d:	cc                   	int3
40833e:	cc                   	int3
40833f:	cc                   	int3
408340:	51                   	push   %ecx
408341:	8d 4c 24 08          	lea    0x8(%esp),%ecx
408345:	2b c8                	sub    %eax,%ecx
408347:	83 e1 0f             	and    $0xf,%ecx
40834a:	03 c1                	add    %ecx,%eax
40834c:	1b c9                	sbb    %ecx,%ecx
40834e:	0b c1                	or     %ecx,%eax
408350:	59                   	pop    %ecx
408351:	e9 1a 00 00 00       	jmp    0x408370
408356:	51                   	push   %ecx
408357:	8d 4c 24 08          	lea    0x8(%esp),%ecx
40835b:	2b c8                	sub    %eax,%ecx
40835d:	83 e1 07             	and    $0x7,%ecx
408360:	03 c1                	add    %ecx,%eax
408362:	1b c9                	sbb    %ecx,%ecx
408364:	0b c1                	or     %ecx,%eax
408366:	59                   	pop    %ecx
408367:	e9 04 00 00 00       	jmp    0x408370
40836c:	cc                   	int3
40836d:	cc                   	int3
40836e:	cc                   	int3
40836f:	cc                   	int3
408370:	51                   	push   %ecx
408371:	8d 4c 24 04          	lea    0x4(%esp),%ecx
408375:	2b c8                	sub    %eax,%ecx
408377:	1b c0                	sbb    %eax,%eax
408379:	f7 d0                	not    %eax
40837b:	23 c8                	and    %eax,%ecx
40837d:	8b c4                	mov    %esp,%eax
40837f:	25 00 f0 ff ff       	and    $0xfffff000,%eax
408384:	3b c8                	cmp    %eax,%ecx
408386:	72 0a                	jb     0x408392
408388:	8b c1                	mov    %ecx,%eax
40838a:	59                   	pop    %ecx
40838b:	94                   	xchg   %eax,%esp
40838c:	8b 00                	mov    (%eax),%eax
40838e:	89 04 24             	mov    %eax,(%esp)
408391:	c3                   	ret
408392:	2d 00 10 00 00       	sub    $0x1000,%eax
408397:	85 00                	test   %eax,(%eax)
408399:	eb e9                	jmp    0x408384
40839b:	cc                   	int3
40839c:	cc                   	int3
40839d:	cc                   	int3
40839e:	cc                   	int3
40839f:	cc                   	int3
4083a0:	55                   	push   %ebp
4083a1:	8b ec                	mov    %esp,%ebp
4083a3:	57                   	push   %edi
4083a4:	56                   	push   %esi
4083a5:	53                   	push   %ebx
4083a6:	8b 4d 10             	mov    0x10(%ebp),%ecx
4083a9:	0b c9                	or     %ecx,%ecx
4083ab:	74 4d                	je     0x4083fa
4083ad:	8b 75 08             	mov    0x8(%ebp),%esi
4083b0:	8b 7d 0c             	mov    0xc(%ebp),%edi
4083b3:	b7 41                	mov    $0x41,%bh
4083b5:	b3 5a                	mov    $0x5a,%bl
4083b7:	b6 20                	mov    $0x20,%dh
4083b9:	8d 49 00             	lea    0x0(%ecx),%ecx
4083bc:	8a 26                	mov    (%esi),%ah
4083be:	0a e4                	or     %ah,%ah
4083c0:	8a 07                	mov    (%edi),%al
4083c2:	74 27                	je     0x4083eb
4083c4:	0a c0                	or     %al,%al
4083c6:	74 23                	je     0x4083eb
4083c8:	83 c6 01             	add    $0x1,%esi
4083cb:	83 c7 01             	add    $0x1,%edi
4083ce:	3a e7                	cmp    %bh,%ah
4083d0:	72 06                	jb     0x4083d8
4083d2:	3a e3                	cmp    %bl,%ah
4083d4:	77 02                	ja     0x4083d8
4083d6:	02 e6                	add    %dh,%ah
4083d8:	3a c7                	cmp    %bh,%al
4083da:	72 06                	jb     0x4083e2
4083dc:	3a c3                	cmp    %bl,%al
4083de:	77 02                	ja     0x4083e2
4083e0:	02 c6                	add    %dh,%al
4083e2:	3a e0                	cmp    %al,%ah
4083e4:	75 0b                	jne    0x4083f1
4083e6:	83 e9 01             	sub    $0x1,%ecx
4083e9:	75 d1                	jne    0x4083bc
4083eb:	33 c9                	xor    %ecx,%ecx
4083ed:	3a e0                	cmp    %al,%ah
4083ef:	74 09                	je     0x4083fa
4083f1:	b9 ff ff ff ff       	mov    $0xffffffff,%ecx
4083f6:	72 02                	jb     0x4083fa
4083f8:	f7 d9                	neg    %ecx
4083fa:	8b c1                	mov    %ecx,%eax
4083fc:	5b                   	pop    %ebx
4083fd:	5e                   	pop    %esi
4083fe:	5f                   	pop    %edi
4083ff:	c9                   	leave
408400:	c3                   	ret
408401:	cc                   	int3
408402:	cc                   	int3
408403:	cc                   	int3
408404:	cc                   	int3
408405:	cc                   	int3
408406:	cc                   	int3
408407:	cc                   	int3
408408:	cc                   	int3
408409:	cc                   	int3
40840a:	cc                   	int3
40840b:	cc                   	int3
40840c:	cc                   	int3
40840d:	cc                   	int3
40840e:	cc                   	int3
40840f:	cc                   	int3
408410:	8d 42 ff             	lea    -0x1(%edx),%eax
408413:	5b                   	pop    %ebx
408414:	c3                   	ret
408415:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
40841c:	8d 64 24 00          	lea    0x0(%esp),%esp
408420:	33 c0                	xor    %eax,%eax
408422:	8a 44 24 08          	mov    0x8(%esp),%al
408426:	53                   	push   %ebx
408427:	8b d8                	mov    %eax,%ebx
408429:	c1 e0 08             	shl    $0x8,%eax
40842c:	8b 54 24 08          	mov    0x8(%esp),%edx
408430:	f7 c2 03 00 00 00    	test   $0x3,%edx
408436:	74 15                	je     0x40844d
408438:	8a 0a                	mov    (%edx),%cl
40843a:	83 c2 01             	add    $0x1,%edx
40843d:	3a cb                	cmp    %bl,%cl
40843f:	74 cf                	je     0x408410
408441:	84 c9                	test   %cl,%cl
408443:	74 51                	je     0x408496
408445:	f7 c2 03 00 00 00    	test   $0x3,%edx
40844b:	75 eb                	jne    0x408438
40844d:	0b d8                	or     %eax,%ebx
40844f:	57                   	push   %edi
408450:	8b c3                	mov    %ebx,%eax
408452:	c1 e3 10             	shl    $0x10,%ebx
408455:	56                   	push   %esi
408456:	0b d8                	or     %eax,%ebx
408458:	8b 0a                	mov    (%edx),%ecx
40845a:	bf ff fe fe 7e       	mov    $0x7efefeff,%edi
40845f:	8b c1                	mov    %ecx,%eax
408461:	8b f7                	mov    %edi,%esi
408463:	33 cb                	xor    %ebx,%ecx
408465:	03 f0                	add    %eax,%esi
408467:	03 f9                	add    %ecx,%edi
408469:	83 f1 ff             	xor    $0xffffffff,%ecx
40846c:	83 f0 ff             	xor    $0xffffffff,%eax
40846f:	33 cf                	xor    %edi,%ecx
408471:	33 c6                	xor    %esi,%eax
408473:	83 c2 04             	add    $0x4,%edx
408476:	81 e1 00 01 01 81    	and    $0x81010100,%ecx
40847c:	75 1c                	jne    0x40849a
40847e:	25 00 01 01 81       	and    $0x81010100,%eax
408483:	74 d3                	je     0x408458
408485:	25 00 01 01 01       	and    $0x1010100,%eax
40848a:	75 08                	jne    0x408494
40848c:	81 e6 00 00 00 80    	and    $0x80000000,%esi
408492:	75 c4                	jne    0x408458
408494:	5e                   	pop    %esi
408495:	5f                   	pop    %edi
408496:	5b                   	pop    %ebx
408497:	33 c0                	xor    %eax,%eax
408499:	c3                   	ret
40849a:	8b 42 fc             	mov    -0x4(%edx),%eax
40849d:	3a c3                	cmp    %bl,%al
40849f:	74 36                	je     0x4084d7
4084a1:	84 c0                	test   %al,%al
4084a3:	74 ef                	je     0x408494
4084a5:	3a e3                	cmp    %bl,%ah
4084a7:	74 27                	je     0x4084d0
4084a9:	84 e4                	test   %ah,%ah
4084ab:	74 e7                	je     0x408494
4084ad:	c1 e8 10             	shr    $0x10,%eax
4084b0:	3a c3                	cmp    %bl,%al
4084b2:	74 15                	je     0x4084c9
4084b4:	84 c0                	test   %al,%al
4084b6:	74 dc                	je     0x408494
4084b8:	3a e3                	cmp    %bl,%ah
4084ba:	74 06                	je     0x4084c2
4084bc:	84 e4                	test   %ah,%ah
4084be:	74 d4                	je     0x408494
4084c0:	eb 96                	jmp    0x408458
4084c2:	5e                   	pop    %esi
4084c3:	5f                   	pop    %edi
4084c4:	8d 42 ff             	lea    -0x1(%edx),%eax
4084c7:	5b                   	pop    %ebx
4084c8:	c3                   	ret
4084c9:	8d 42 fe             	lea    -0x2(%edx),%eax
4084cc:	5e                   	pop    %esi
4084cd:	5f                   	pop    %edi
4084ce:	5b                   	pop    %ebx
4084cf:	c3                   	ret
4084d0:	8d 42 fd             	lea    -0x3(%edx),%eax
4084d3:	5e                   	pop    %esi
4084d4:	5f                   	pop    %edi
4084d5:	5b                   	pop    %ebx
4084d6:	c3                   	ret
4084d7:	8d 42 fc             	lea    -0x4(%edx),%eax
4084da:	5e                   	pop    %esi
4084db:	5f                   	pop    %edi
4084dc:	5b                   	pop    %ebx
4084dd:	c3                   	ret
4084de:	ff 25 10 11 40 00    	jmp    *0x401110
4084e4:	cc                   	int3
4084e5:	cc                   	int3
4084e6:	cc                   	int3
4084e7:	cc                   	int3
4084e8:	cc                   	int3
4084e9:	cc                   	int3
4084ea:	cc                   	int3
4084eb:	cc                   	int3
4084ec:	cc                   	int3
4084ed:	cc                   	int3
4084ee:	cc                   	int3
4084ef:	cc                   	int3
4084f0:	ff 25 d4 85 88 00    	jmp    *0x8885d4
4084f6:	cc                   	int3
4084f7:	cc                   	int3
4084f8:	cc                   	int3
4084f9:	cc                   	int3
4084fa:	cc                   	int3
4084fb:	cc                   	int3
4084fc:	cc                   	int3
4084fd:	cc                   	int3
4084fe:	cc                   	int3
4084ff:	cc                   	int3
408500:	51                   	push   %ecx
408501:	8b 0d b4 0a 89 00    	mov    0x890ab4,%ecx
408507:	8b 15 d4 85 88 00    	mov    0x8885d4,%edx
40850d:	8d 04 24             	lea    (%esp),%eax
408510:	50                   	push   %eax
408511:	6a 40                	push   $0x40
408513:	51                   	push   %ecx
408514:	52                   	push   %edx
408515:	ff 15 d0 85 88 00    	call   *0x8885d0
40851b:	59                   	pop    %ecx
40851c:	c3                   	ret
40851d:	cc                   	int3
40851e:	cc                   	int3
40851f:	cc                   	int3
408520:	83 ec 30             	sub    $0x30,%esp
408523:	c7 44 24 2c 9f 92 6e 	movl   $0x346e929f,0x2c(%esp)
40852a:	34
40852b:	c7 04 24 fd 82 1f 0a 	movl   $0xa1f82fd,(%esp)
408532:	c7 44 24 18 b3 31 78 	movl   $0x437831b3,0x18(%esp)
408539:	43
40853a:	c7 44 24 0c 30 d7 bb 	movl   $0x4fbbd730,0xc(%esp)
408541:	4f
408542:	c7 44 24 24 32 12 63 	movl   $0x51631232,0x24(%esp)
408549:	51
40854a:	81 44 24 2c c5 ff 34 	addl   $0x2a34ffc5,0x2c(%esp)
408551:	2a
408552:	81 44 24 2c 80 cb 8c 	addl   $0x2e8ccb80,0x2c(%esp)
408559:	2e
40855a:	81 6c 24 2c d7 36 ed 	subl   $0x48ed36d7,0x2c(%esp)
408561:	48
408562:	81 44 24 2c 94 ba e3 	addl   $0x3fe3ba94,0x2c(%esp)
408569:	3f