425366:	33 cd                	xor    %ebp,%ecx
425368:	5b                   	pop    %ebx
425369:	e8 39 49 fe ff       	call   0x409ca7
42536e:	c9                   	leave
42536f:	c2 04 00             	ret    $0x4
425372:	8b ff                	mov    %edi,%edi
425374:	55                   	push   %ebp
425375:	8b ec                	mov    %esp,%ebp
425377:	56                   	push   %esi
425378:	57                   	push   %edi
425379:	e8 6b 6f ff ff       	call   0x41c2e9
42537e:	8b d0                	mov    %eax,%edx
425380:	33 ff                	xor    %edi,%edi
425382:	8b 4a 54             	mov    0x54(%edx),%ecx
425385:	8d 71 02             	lea    0x2(%ecx),%esi
425388:	66 8b 01             	mov    (%ecx),%ax
42538b:	83 c1 02             	add    $0x2,%ecx
42538e:	66 3b c7             	cmp    %di,%ax
425391:	75 f5                	jne    0x425388
425393:	2b ce                	sub    %esi,%ecx
425395:	33 c0                	xor    %eax,%eax
425397:	d1 f9                	sar    $1,%ecx
425399:	83 f9 03             	cmp    $0x3,%ecx
42539c:	6a 01                	push   $0x1
42539e:	0f 94 c0             	sete   %al
4253a1:	68 cb 52 42 00       	push   $0x4252cb
4253a6:	89 42 64             	mov    %eax,0x64(%edx)
4253a9:	ff 15 8c 10 43 00    	call   *0x43108c
4253af:	8b 45 08             	mov    0x8(%ebp),%eax
4253b2:	f6 00 04             	testb  $0x4,(%eax)
4253b5:	75 02                	jne    0x4253b9
4253b7:	89 38                	mov    %edi,(%eax)
4253b9:	5f                   	pop    %edi
4253ba:	5e                   	pop    %esi
4253bb:	5d                   	pop    %ebp
4253bc:	c3                   	ret
4253bd:	8b ff                	mov    %edi,%edi
4253bf:	55                   	push   %ebp
4253c0:	8b ec                	mov    %esp,%ebp
4253c2:	53                   	push   %ebx
4253c3:	56                   	push   %esi
4253c4:	57                   	push   %edi
4253c5:	e8 1f 6f ff ff       	call   0x41c2e9
4253ca:	8b f0                	mov    %eax,%esi
4253cc:	33 db                	xor    %ebx,%ebx
4253ce:	6a 02                	push   $0x2
4253d0:	5a                   	pop    %edx
4253d1:	8b 4e 50             	mov    0x50(%esi),%ecx
4253d4:	8d 79 02             	lea    0x2(%ecx),%edi
4253d7:	66 8b 01             	mov    (%ecx),%ax
4253da:	03 ca                	add    %edx,%ecx
4253dc:	66 3b c3             	cmp    %bx,%ax
4253df:	75 f6                	jne    0x4253d7
4253e1:	2b cf                	sub    %edi,%ecx
4253e3:	33 c0                	xor    %eax,%eax
4253e5:	d1 f9                	sar    $1,%ecx
4253e7:	83 f9 03             	cmp    $0x3,%ecx
4253ea:	8b 4e 54             	mov    0x54(%esi),%ecx
4253ed:	0f 94 c0             	sete   %al
4253f0:	89 46 60             	mov    %eax,0x60(%esi)
4253f3:	8d 79 02             	lea    0x2(%ecx),%edi
4253f6:	66 8b 01             	mov    (%ecx),%ax
4253f9:	03 ca                	add    %edx,%ecx
4253fb:	66 3b c3             	cmp    %bx,%ax
4253fe:	75 f6                	jne    0x4253f6
425400:	2b cf                	sub    %edi,%ecx
425402:	33 c0                	xor    %eax,%eax
425404:	8b 7d 08             	mov    0x8(%ebp),%edi
425407:	d1 f9                	sar    $1,%ecx
425409:	83 f9 03             	cmp    $0x3,%ecx
42540c:	0f 94 c0             	sete   %al
42540f:	89 46 64             	mov    %eax,0x64(%esi)
425412:	89 5f 04             	mov    %ebx,0x4(%edi)
425415:	39 5e 60             	cmp    %ebx,0x60(%esi)
425418:	75 0b                	jne    0x425425
42541a:	ff 76 50             	push   0x50(%esi)
42541d:	e8 95 00 00 00       	call   0x4254b7
425422:	59                   	pop    %ecx
425423:	8b d0                	mov    %eax,%edx
425425:	6a 01                	push   $0x1
425427:	68 e3 54 42 00       	push   $0x4254e3
42542c:	89 56 5c             	mov    %edx,0x5c(%esi)
42542f:	ff 15 8c 10 43 00    	call   *0x43108c
425435:	8b 0f                	mov    (%edi),%ecx
425437:	f6 c1 07             	test   $0x7,%cl
42543a:	0f 95 c2             	setne  %dl
42543d:	0f ba e1 09          	bt     $0x9,%ecx
425441:	0f 92 c0             	setb   %al
425444:	22 d0                	and    %al,%dl
425446:	0f ba e1 08          	bt     $0x8,%ecx
42544a:	0f 92 c0             	setb   %al
42544d:	84 d0                	test   %dl,%al
42544f:	75 02                	jne    0x425453
425451:	89 1f                	mov    %ebx,(%edi)
425453:	5f                   	pop    %edi
425454:	5e                   	pop    %esi
425455:	5b                   	pop    %ebx
425456:	5d                   	pop    %ebp
425457:	c3                   	ret
425458:	8b ff                	mov    %edi,%edi
42545a:	55                   	push   %ebp
42545b:	8b ec                	mov    %esp,%ebp
42545d:	53                   	push   %ebx
42545e:	56                   	push   %esi
42545f:	57                   	push   %edi
425460:	e8 84 6e ff ff       	call   0x41c2e9
425465:	8b f0                	mov    %eax,%esi
425467:	33 db                	xor    %ebx,%ebx
425469:	6a 02                	push   $0x2
42546b:	5a                   	pop    %edx
42546c:	8b 4e 50             	mov    0x50(%esi),%ecx
42546f:	8d 79 02             	lea    0x2(%ecx),%edi
425472:	66 8b 01             	mov    (%ecx),%ax
425475:	03 ca                	add    %edx,%ecx
425477:	66 3b c3             	cmp    %bx,%ax
42547a:	75 f6                	jne    0x425472
42547c:	2b cf                	sub    %edi,%ecx
42547e:	33 c0                	xor    %eax,%eax
425480:	d1 f9                	sar    $1,%ecx
425482:	83 f9 03             	cmp    $0x3,%ecx
425485:	0f 94 c0             	sete   %al
425488:	89 46 60             	mov    %eax,0x60(%esi)
42548b:	74 0b                	je     0x425498
42548d:	ff 76 50             	push   0x50(%esi)
425490:	e8 22 00 00 00       	call   0x4254b7
425495:	59                   	pop    %ecx
425496:	8b d0                	mov    %eax,%edx
425498:	6a 01                	push   $0x1
42549a:	68 36 57 42 00       	push   $0x425736
42549f:	89 56 5c             	mov    %edx,0x5c(%esi)
4254a2:	ff 15 8c 10 43 00    	call   *0x43108c
4254a8:	8b 45 08             	mov    0x8(%ebp),%eax
4254ab:	f6 00 04             	testb  $0x4,(%eax)
4254ae:	75 02                	jne    0x4254b2
4254b0:	89 18                	mov    %ebx,(%eax)
4254b2:	5f                   	pop    %edi
4254b3:	5e                   	pop    %esi
4254b4:	5b                   	pop    %ebx
4254b5:	5d                   	pop    %ebp
4254b6:	c3                   	ret
4254b7:	8b ff                	mov    %edi,%edi
4254b9:	55                   	push   %ebp
4254ba:	8b ec                	mov    %esp,%ebp
4254bc:	8b 4d 08             	mov    0x8(%ebp),%ecx
4254bf:	33 d2                	xor    %edx,%edx
4254c1:	0f b7 01             	movzwl (%ecx),%eax
4254c4:	83 c1 02             	add    $0x2,%ecx
4254c7:	66 83 f8 41          	cmp    $0x41,%ax
4254cb:	72 06                	jb     0x4254d3
4254cd:	66 83 f8 5a          	cmp    $0x5a,%ax
4254d1:	76 09                	jbe    0x4254dc
4254d3:	83 c0 9f             	add    $0xffffff9f,%eax
4254d6:	66 83 f8 19          	cmp    $0x19,%ax
4254da:	77 03                	ja     0x4254df
4254dc:	42                   	inc    %edx
4254dd:	eb e2                	jmp    0x4254c1
4254df:	8b c2                	mov    %edx,%eax
4254e1:	5d                   	pop    %ebp
4254e2:	c3                   	ret
4254e3:	8b ff                	mov    %edi,%edi
4254e5:	55                   	push   %ebp
4254e6:	8b ec                	mov    %esp,%ebp
4254e8:	81 ec fc 00 00 00    	sub    $0xfc,%esp
4254ee:	a1 c0 d0 43 00       	mov    0x43d0c0,%eax
4254f3:	33 c5                	xor    %ebp,%eax
4254f5:	89 45 fc             	mov    %eax,-0x4(%ebp)
4254f8:	53                   	push   %ebx
4254f9:	56                   	push   %esi
4254fa:	8b 75 08             	mov    0x8(%ebp),%esi
4254fd:	57                   	push   %edi
4254fe:	e8 e6 6d ff ff       	call   0x41c2e9
425503:	8b d8                	mov    %eax,%ebx
425505:	e8 df 6d ff ff       	call   0x41c2e9
42550a:	56                   	push   %esi
42550b:	8b b8 4c 03 00 00    	mov    0x34c(%eax),%edi
425511:	e8 f5 02 00 00       	call   0x42580b
425516:	59                   	pop    %ecx
425517:	8b 4b 64             	mov    0x64(%ebx),%ecx
42551a:	8b f0                	mov    %eax,%esi
42551c:	f7 d9                	neg    %ecx
42551e:	8d 85 0c ff ff ff    	lea    -0xf4(%ebp),%eax
425524:	6a 78                	push   $0x78
425526:	1b c9                	sbb    %ecx,%ecx
425528:	81 e1 05 f0 ff ff    	and    $0xfffff005,%ecx
42552e:	50                   	push   %eax
42552f:	81 c1 02 10 00 00    	add    $0x1002,%ecx
425535:	51                   	push   %ecx
425536:	56                   	push   %esi
425537:	ff 15 98 10 43 00    	call   *0x431098
42553d:	83 a5 08 ff ff ff 00 	andl   $0x0,-0xf8(%ebp)
425544:	85 c0                	test   %eax,%eax
425546:	0f 84 d4 01 00 00    	je     0x425720
42554c:	8d 85 0c ff ff ff    	lea    -0xf4(%ebp),%eax
425552:	50                   	push   %eax
425553:	ff 73 54             	push   0x54(%ebx)
425556:	e8 da 31 ff ff       	call   0x418735
42555b:	59                   	pop    %ecx
42555c:	59                   	pop    %ecx
42555d:	85 c0                	test   %eax,%eax
42555f:	0f 85 b5 00 00 00    	jne    0x42561a
425565:	6a 78                	push   $0x78
425567:	8d 85 0c ff ff ff    	lea    -0xf4(%ebp),%eax
42556d:	50                   	push   %eax
42556e:	8b 43 60             	mov    0x60(%ebx),%eax
425571:	f7 d8                	neg    %eax
425573:	1b c0                	sbb    %eax,%eax
425575:	25 02 f0 ff ff       	and    $0xfffff002,%eax
42557a:	05 01 10 00 00       	add    $0x1001,%eax
42557f:	50                   	push   %eax
425580:	56                   	push   %esi
425581:	ff 15 98 10 43 00    	call   *0x431098
425587:	85 c0                	test   %eax,%eax
425589:	0f 84 91 01 00 00    	je     0x425720
42558f:	8d 85 0c ff ff ff    	lea    -0xf4(%ebp),%eax
425595:	50                   	push   %eax
425596:	ff 73 50             	push   0x50(%ebx)
425599:	e8 97 31 ff ff       	call   0x418735
42559e:	59                   	pop    %ecx
42559f:	59                   	pop    %ecx
4255a0:	8b 0f                	mov    (%edi),%ecx
4255a2:	85 c0                	test   %eax,%eax
4255a4:	75 0d                	jne    0x4255b3
4255a6:	81 c9 04 03 00 00    	or     $0x304,%ecx
4255ac:	89 77 04             	mov    %esi,0x4(%edi)
4255af:	89 0f                	mov    %ecx,(%edi)
4255b1:	eb 64                	jmp    0x425617
4255b3:	f6 c1 02             	test   $0x2,%cl
4255b6:	75 62                	jne    0x42561a
4255b8:	83 7b 5c 00          	cmpl   $0x0,0x5c(%ebx)
4255bc:	74 42                	je     0x425600
4255be:	ff 73 5c             	push   0x5c(%ebx)
4255c1:	8d 85 0c ff ff ff    	lea    -0xf4(%ebp),%eax
4255c7:	50                   	push   %eax
4255c8:	ff 73 50             	push   0x50(%ebx)
4255cb:	e8 81 2f 00 00       	call   0x428551
4255d0:	83 c4 0c             	add    $0xc,%esp
4255d3:	85 c0                	test   %eax,%eax
4255d5:	75 29                	jne    0x425600
4255d7:	83 0f 02             	orl    $0x2,(%edi)
4255da:	89 77 08             	mov    %esi,0x8(%edi)
4255dd:	8b 4b 50             	mov    0x50(%ebx),%ecx
4255e0:	8d 51 02             	lea    0x2(%ecx),%edx
4255e3:	66 8b 01             	mov    (%ecx),%ax
4255e6:	83 c1 02             	add    $0x2,%ecx
4255e9:	66 3b 85 08 ff ff ff 	cmp    -0xf8(%ebp),%ax
4255f0:	75 f1                	jne    0x4255e3
4255f2:	2b ca                	sub    %edx,%ecx
4255f4:	d1 f9                	sar    $1,%ecx
4255f6:	3b 4b 5c             	cmp    0x5c(%ebx),%ecx
4255f9:	75 1f                	jne    0x42561a
4255fb:	89 77 04             	mov    %esi,0x4(%edi)
4255fe:	eb 1a                	jmp    0x42561a
425600:	8b 17                	mov    (%edi),%edx
425602:	f6 c2 01             	test   $0x1,%dl
425605:	75 13                	jne    0x42561a
425607:	56                   	push   %esi
425608:	e8 33 03 00 00       	call   0x425940
42560d:	59                   	pop    %ecx
42560e:	85 c0                	test   %eax,%eax
425610:	74 08                	je     0x42561a
425612:	83 ca 01             	or     $0x1,%edx
425615:	89 17                	mov    %edx,(%edi)
425617:	89 77 08             	mov    %esi,0x8(%edi)
42561a:	8b 07                	mov    (%edi),%eax
42561c:	b9 00 03 00 00       	mov    $0x300,%ecx
425621:	23 c1                	and    %ecx,%eax
425623:	3b c1                	cmp    %ecx,%eax
425625:	0f 84 e9 00 00 00    	je     0x425714
42562b:	6a 78                	push   $0x78
42562d:	8d 85 0c ff ff ff    	lea    -0xf4(%ebp),%eax
425633:	50                   	push   %eax
425634:	8b 43 60             	mov    0x60(%ebx),%eax
425637:	f7 d8                	neg    %eax
425639:	1b c0                	sbb    %eax,%eax
42563b:	25 02 f0 ff ff       	and    $0xfffff002,%eax
425640:	05 01 10 00 00       	add    $0x1001,%eax
425645:	50                   	push   %eax
425646:	56                   	push   %esi
425647:	ff 15 98 10 43 00    	call   *0x431098
42564d:	85 c0                	test   %eax,%eax
42564f:	0f 84 cb 00 00 00    	je     0x425720
425655:	8d 85 0c ff ff ff    	lea    -0xf4(%ebp),%eax
42565b:	50                   	push   %eax
42565c:	ff 73 50             	push   0x50(%ebx)
42565f:	e8 d1 30 ff ff       	call   0x418735
425664:	59                   	pop    %ecx
425665:	59                   	pop    %ecx
425666:	85 c0                	test   %eax,%eax
425668:	75 6a                	jne    0x4256d4
42566a:	8b 0f                	mov    (%edi),%ecx
42566c:	81 c9 00 02 00 00    	or     $0x200,%ecx
425672:	89 0f                	mov    %ecx,(%edi)
425674:	39 43 60             	cmp    %eax,0x60(%ebx)
425677:	74 10                	je     0x425689
425679:	81 c9 00 01 00 00    	or     $0x100,%ecx
42567f:	89 0f                	mov    %ecx,(%edi)
425681:	39 47 04             	cmp    %eax,0x4(%edi)
425684:	e9 86 00 00 00       	jmp    0x42570f
425689:	39 43 5c             	cmp    %eax,0x5c(%ebx)
42568c:	74 eb                	je     0x425679
42568e:	8b 53 50             	mov    0x50(%ebx),%edx
425691:	8d 42 02             	lea    0x2(%edx),%eax
425694:	89 85 04 ff ff ff    	mov    %eax,-0xfc(%ebp)
42569a:	66 8b 02             	mov    (%edx),%ax
42569d:	83 c2 02             	add    $0x2,%edx
4256a0:	66 3b 85 08 ff ff ff 	cmp    -0xf8(%ebp),%ax
4256a7:	75 f1                	jne    0x42569a
4256a9:	2b 95 04 ff ff ff    	sub    -0xfc(%ebp),%edx
4256af:	d1 fa                	sar    $1,%edx
4256b1:	3b 53 5c             	cmp    0x5c(%ebx),%edx
4256b4:	75 1a                	jne    0x4256d0
4256b6:	57                   	push   %edi
4256b7:	6a 01                	push   $0x1
4256b9:	56                   	push   %esi
4256ba:	e8 a6 02 00 00       	call   0x425965
4256bf:	83 c4 0c             	add    $0xc,%esp
4256c2:	85 c0                	test   %eax,%eax
4256c4:	74 4e                	je     0x425714
4256c6:	81 0f 00 01 00 00    	orl    $0x100,(%edi)
4256cc:	33 c0                	xor    %eax,%eax
4256ce:	eb b1                	jmp    0x425681
4256d0:	33 c0                	xor    %eax,%eax
4256d2:	eb a5                	jmp    0x425679
4256d4:	33 c0                	xor    %eax,%eax
4256d6:	39 43 60             	cmp    %eax,0x60(%ebx)
4256d9:	75 39                	jne    0x425714
4256db:	39 43 5c             	cmp    %eax,0x5c(%ebx)
4256de:	74 34                	je     0x425714
4256e0:	8d 85 0c ff ff ff    	lea    -0xf4(%ebp),%eax
4256e6:	50                   	push   %eax
4256e7:	ff 73 50             	push   0x50(%ebx)
4256ea:	e8 46 30 ff ff       	call   0x418735
4256ef:	59                   	pop    %ecx
4256f0:	59                   	pop    %ecx
4256f1:	85 c0                	test   %eax,%eax
4256f3:	75 1f                	jne    0x425714
4256f5:	57                   	push   %edi
4256f6:	33 db                	xor    %ebx,%ebx
4256f8:	53                   	push   %ebx
4256f9:	56                   	push   %esi
4256fa:	e8 66 02 00 00       	call   0x425965
4256ff:	83 c4 0c             	add    $0xc,%esp
425702:	85 c0                	test   %eax,%eax
425704:	74 0e                	je     0x425714
425706:	81 0f 00 01 00 00    	orl    $0x100,(%edi)
42570c:	39 5f 04             	cmp    %ebx,0x4(%edi)
42570f:	75 03                	jne    0x425714
425711:	89 77 04             	mov    %esi,0x4(%edi)
425714:	8b 07                	mov    (%edi),%eax
425716:	c1 e8 02             	shr    $0x2,%eax