46c6da:	e8 ee 05 fb ff       	call   0x41cccd
46c6df:	33 c0                	xor    %eax,%eax
46c6e1:	40                   	inc    %eax
46c6e2:	5f                   	pop    %edi
46c6e3:	5e                   	pop    %esi
46c6e4:	5b                   	pop    %ebx
46c6e5:	c9                   	leave
46c6e6:	c2 08 00             	ret    $0x8
46c6e9:	55                   	push   %ebp
46c6ea:	8b ec                	mov    %esp,%ebp
46c6ec:	83 e4 f8             	and    $0xfffffff8,%esp
46c6ef:	81 ec ac 00 00 00    	sub    $0xac,%esp
46c6f5:	8d 44 24 04          	lea    0x4(%esp),%eax
46c6f9:	53                   	push   %ebx
46c6fa:	56                   	push   %esi
46c6fb:	57                   	push   %edi
46c6fc:	50                   	push   %eax
46c6fd:	8d 44 24 28          	lea    0x28(%esp),%eax
46c701:	50                   	push   %eax
46c702:	ff 75 08             	push   0x8(%ebp)
46c705:	b9 28 16 4c 00       	mov    $0x4c1628,%ecx
46c70a:	e8 ef 0c fa ff       	call   0x40d3fe
46c70f:	84 c0                	test   %al,%al
46c711:	75 07                	jne    0x46c71a
46c713:	33 c0                	xor    %eax,%eax
46c715:	e9 d4 05 00 00       	jmp    0x46ccee
46c71a:	a1 88 16 4c 00       	mov    0x4c1688,%eax
46c71f:	8b 54 24 24          	mov    0x24(%esp),%edx
46c723:	8b 4c 24 10          	mov    0x10(%esp),%ecx
46c727:	8b 04 90             	mov    (%eax,%edx,4),%eax
46c72a:	8b 5d 0c             	mov    0xc(%ebp),%ebx
46c72d:	8b 00                	mov    (%eax),%eax
46c72f:	89 44 24 20          	mov    %eax,0x20(%esp)
46c733:	a1 9c 16 4c 00       	mov    0x4c169c,%eax
46c738:	33 f6                	xor    %esi,%esi
46c73a:	8b 04 88             	mov    (%eax,%ecx,4),%eax
46c73d:	89 74 24 14          	mov    %esi,0x14(%esp)
46c741:	8b 38                	mov    (%eax),%edi
46c743:	8b 07                	mov    (%edi),%eax
46c745:	89 44 24 1c          	mov    %eax,0x1c(%esp)
46c749:	8a 87 90 00 00 00    	mov    0x90(%edi),%al
46c74f:	88 44 24 1b          	mov    %al,0x1b(%esp)
46c753:	85 db                	test   %ebx,%ebx
46c755:	79 02                	jns    0x46c759
46c757:	8b de                	mov    %esi,%ebx
46c759:	8b c3                	mov    %ebx,%eax
46c75b:	25 00 01 00 00       	and    $0x100,%eax
46c760:	89 44 24 28          	mov    %eax,0x28(%esp)
46c764:	74 0f                	je     0x46c775
46c766:	51                   	push   %ecx
46c767:	52                   	push   %edx
46c768:	e8 8b ef fa ff       	call   0x41b6f8
46c76d:	c7 44 24 14 01 00 00 	movl   $0x1,0x14(%esp)
46c774:	00
46c775:	f7 c3 00 08 00 00    	test   $0x800,%ebx
46c77b:	74 19                	je     0x46c796
46c77d:	6a 13                	push   $0x13
46c77f:	56                   	push   %esi
46c780:	56                   	push   %esi
46c781:	56                   	push   %esi
46c782:	56                   	push   %esi
46c783:	56                   	push   %esi
46c784:	ff 74 24 34          	push   0x34(%esp)
46c788:	ff 15 b4 d4 48 00    	call   *0x48d4b4
46c78e:	c7 44 24 14 01 00 00 	movl   $0x1,0x14(%esp)
46c795:	00
46c796:	0f b6 44 24 1b       	movzbl 0x1b(%esp),%eax
46c79b:	b9 00 10 00 00       	mov    $0x1000,%ecx
46c7a0:	83 f8 14             	cmp    $0x14,%eax
46c7a3:	0f 8f 17 03 00 00    	jg     0x46cac0
46c7a9:	0f 84 39 02 00 00    	je     0x46c9e8
46c7af:	83 f8 09             	cmp    $0x9,%eax
46c7b2:	0f 84 ec 01 00 00    	je     0x46c9a4
46c7b8:	83 f8 0b             	cmp    $0xb,%eax
46c7bb:	0f 84 98 01 00 00    	je     0x46c959
46c7c1:	83 f8 0c             	cmp    $0xc,%eax
46c7c4:	0f 84 49 ff ff ff    	je     0x46c713
46c7ca:	83 f8 0d             	cmp    $0xd,%eax
46c7cd:	0f 8e 20 04 00 00    	jle    0x46cbf3
46c7d3:	83 f8 0f             	cmp    $0xf,%eax
46c7d6:	0f 8e b6 00 00 00    	jle    0x46c892
46c7dc:	83 f8 11             	cmp    $0x11,%eax
46c7df:	0f 85 0e 04 00 00    	jne    0x46cbf3
46c7e5:	8b 47 10             	mov    0x10(%edi),%eax
46c7e8:	89 84 24 94 00 00 00 	mov    %eax,0x94(%esp)
46c7ef:	8a c3                	mov    %bl,%al
46c7f1:	24 01                	and    $0x1,%al
46c7f3:	0f be c0             	movsbl %al,%eax
46c7f6:	f7 d8                	neg    %eax
46c7f8:	1b c0                	sbb    %eax,%eax
46c7fa:	23 c1                	and    %ecx,%eax
46c7fc:	03 c1                	add    %ecx,%eax
46c7fe:	c7 84 24 90 00 00 00 	movl   $0x8,0x90(%esp)
46c805:	08 00 00 00
46c809:	c7 84 24 9c 00 00 00 	movl   $0xf010,0x9c(%esp)
46c810:	10 f0 00 00
46c814:	89 84 24 98 00 00 00 	mov    %eax,0x98(%esp)
46c81b:	f7 c3 00 02 00 00    	test   $0x200,%ebx
46c821:	74 0a                	je     0x46c82d
46c823:	83 c8 10             	or     $0x10,%eax
46c826:	89 84 24 98 00 00 00 	mov    %eax,0x98(%esp)
46c82d:	8d 84 24 90 00 00 00 	lea    0x90(%esp),%eax
46c834:	50                   	push   %eax
46c835:	56                   	push   %esi
46c836:	68 3f 11 00 00       	push   $0x113f
46c83b:	ff 77 34             	push   0x34(%edi)
46c83e:	ff 15 70 d6 48 00    	call   *0x48d670
46c844:	f7 c3 00 04 00 00    	test   $0x400,%ebx
46c84a:	74 13                	je     0x46c85f
46c84c:	ff 77 10             	push   0x10(%edi)
46c84f:	6a 02                	push   $0x2
46c851:	68 02 11 00 00       	push   $0x1102
46c856:	ff 77 34             	push   0x34(%edi)
46c859:	ff 15 70 d6 48 00    	call   *0x48d670
46c85f:	39 74 24 28          	cmp    %esi,0x28(%esp)
46c863:	0f 84 86 02 00 00    	je     0x46caef
46c869:	ff 77 34             	push   0x34(%edi)
46c86c:	b9 28 16 4c 00       	mov    $0x4c1628,%ecx
46c871:	e8 b0 ec fa ff       	call   0x41b526
46c876:	50                   	push   %eax
46c877:	ff 74 24 28          	push   0x28(%esp)
46c87b:	e8 78 ee fa ff       	call   0x41b6f8
46c880:	ff 77 10             	push   0x10(%edi)
46c883:	6a 09                	push   $0x9
46c885:	68 0b 11 00 00       	push   $0x110b
46c88a:	ff 77 34             	push   0x34(%edi)
46c88d:	e9 83 02 00 00       	jmp    0x46cb15
46c892:	8d 44 24 2c          	lea    0x2c(%esp),%eax
46c896:	50                   	push   %eax
46c897:	56                   	push   %esi
46c898:	ff 74 24 18          	push   0x18(%esp)
46c89c:	c7 44 24 38 30 00 00 	movl   $0x30,0x38(%esp)
46c8a3:	00
46c8a4:	ff 77 0c             	push   0xc(%edi)
46c8a7:	c7 44 24 40 01 00 00 	movl   $0x1,0x40(%esp)
46c8ae:	00
46c8af:	ff 15 bc d5 48 00    	call   *0x48d5bc
46c8b5:	85 c0                	test   %eax,%eax
46c8b7:	0f 84 56 fe ff ff    	je     0x46c713
46c8bd:	f6 c3 20             	test   $0x20,%bl
46c8c0:	0f 85 4d fe ff ff    	jne    0x46c713
46c8c6:	84 db                	test   %bl,%bl
46c8c8:	79 05                	jns    0x46c8cf
46c8ca:	6a 03                	push   $0x3
46c8cc:	58                   	pop    %eax
46c8cd:	eb 02                	jmp    0x46c8d1
46c8cf:	8b c6                	mov    %esi,%eax
46c8d1:	f6 c3 01             	test   $0x1,%bl
46c8d4:	74 03                	je     0x46c8d9
46c8d6:	83 c8 08             	or     $0x8,%eax
46c8d9:	39 74 24 28          	cmp    %esi,0x28(%esp)
46c8dd:	74 05                	je     0x46c8e4
46c8df:	0d 80 00 00 00       	or     $0x80,%eax
46c8e4:	f6 44 24 38 08       	testb  $0x8,0x38(%esp)
46c8e9:	74 08                	je     0x46c8f3
46c8eb:	f6 c3 04             	test   $0x4,%bl
46c8ee:	75 03                	jne    0x46c8f3
46c8f0:	83 c8 08             	or     $0x8,%eax
46c8f3:	89 44 24 38          	mov    %eax,0x38(%esp)
46c8f7:	8d 44 24 2c          	lea    0x2c(%esp),%eax
46c8fb:	50                   	push   %eax
46c8fc:	56                   	push   %esi
46c8fd:	ff 74 24 18          	push   0x18(%esp)
46c901:	ff 77 0c             	push   0xc(%edi)
46c904:	ff 15 b8 d5 48 00    	call   *0x48d5b8
46c90a:	f7 c3 00 02 00 00    	test   $0x200,%ebx
46c910:	74 07                	je     0x46c919
46c912:	56                   	push   %esi
46c913:	ff 74 24 14          	push   0x14(%esp)
46c917:	eb 26                	jmp    0x46c93f
46c919:	8d 44 24 2c          	lea    0x2c(%esp),%eax
46c91d:	50                   	push   %eax
46c91e:	56                   	push   %esi
46c91f:	ff 74 24 18          	push   0x18(%esp)
46c923:	ff 77 0c             	push   0xc(%edi)
46c926:	ff 15 bc d5 48 00    	call   *0x48d5bc
46c92c:	85 c0                	test   %eax,%eax
46c92e:	74 18                	je     0x46c948
46c930:	f7 44 24 38 00 10 00 	testl  $0x1000,0x38(%esp)
46c937:	00
46c938:	74 0e                	je     0x46c948
46c93a:	56                   	push   %esi
46c93b:	83 c9 ff             	or     $0xffffffff,%ecx
46c93e:	51                   	push   %ecx
46c93f:	ff 77 0c             	push   0xc(%edi)
46c942:	ff 15 94 d5 48 00    	call   *0x48d594
46c948:	8b 44 24 20          	mov    0x20(%esp),%eax
46c94c:	ff 30                	push   (%eax)
46c94e:	ff 15 3c d5 48 00    	call   *0x48d53c
46c954:	e9 96 01 00 00       	jmp    0x46caef
46c959:	f6 c3 10             	test   $0x10,%bl
46c95c:	0f 84 91 02 00 00    	je     0x46cbf3
46c962:	8b 54 24 20          	mov    0x20(%esp),%edx
46c966:	0f b6 8f 93 00 00 00 	movzbl 0x93(%edi),%ecx
46c96d:	80 ba 98 01 00 00 00 	cmpb   $0x0,0x198(%edx)
46c974:	74 0c                	je     0x46c982
46c976:	8b 82 94 01 00 00    	mov    0x194(%edx),%eax
46c97c:	89 82 90 01 00 00    	mov    %eax,0x190(%edx)
46c982:	51                   	push   %ecx
46c983:	52                   	push   %edx
46c984:	b9 28 16 4c 00       	mov    $0x4c1628,%ecx
46c989:	e8 09 1a 00 00       	call   0x46e397
46c98e:	0f b6 87 93 00 00 00 	movzbl 0x93(%edi),%eax
46c995:	8b 4c 24 20          	mov    0x20(%esp),%ecx
46c999:	89 81 94 01 00 00    	mov    %eax,0x194(%ecx)
46c99f:	e9 4b 01 00 00       	jmp    0x46caef
46c9a4:	8b c3                	mov    %ebx,%eax
46c9a6:	83 e0 07             	and    $0x7,%eax
46c9a9:	2b c6                	sub    %esi,%eax
46c9ab:	74 1d                	je     0x46c9ca
46c9ad:	48                   	dec    %eax
46c9ae:	74 0c                	je     0x46c9bc
46c9b0:	56                   	push   %esi
46c9b1:	56                   	push   %esi
46c9b2:	68 67 04 00 00       	push   $0x467
46c9b7:	e9 55 01 00 00       	jmp    0x46cb11
46c9bc:	68 00 00 ff ff       	push   $0xffff0000
46c9c1:	6a ff                	push   $0xffffffff
46c9c3:	68 65 04 00 00       	push   $0x465
46c9c8:	eb 07                	jmp    0x46c9d1
46c9ca:	56                   	push   %esi
46c9cb:	56                   	push   %esi
46c9cc:	68 66 04 00 00       	push   $0x466
46c9d1:	ff 74 24 28          	push   0x28(%esp)
46c9d5:	ff 15 70 d6 48 00    	call   *0x48d670
46c9db:	85 c0                	test   %eax,%eax
46c9dd:	0f 84 10 02 00 00    	je     0x46cbf3
46c9e3:	e9 07 01 00 00       	jmp    0x46caef
46c9e8:	8b 44 24 10          	mov    0x10(%esp),%eax
46c9ec:	8b 7f 34             	mov    0x34(%edi),%edi
46c9ef:	89 44 24 34          	mov    %eax,0x34(%esp)
46c9f3:	8d 44 24 2c          	lea    0x2c(%esp),%eax
46c9f7:	50                   	push   %eax
46c9f8:	6a ff                	push   $0xffffffff
46c9fa:	68 53 10 00 00       	push   $0x1053
46c9ff:	57                   	push   %edi
46ca00:	c7 44 24 3c 01 00 00 	movl   $0x1,0x3c(%esp)
46ca07:	00
46ca08:	ff 15 70 d6 48 00    	call   *0x48d670
46ca0e:	83 c9 ff             	or     $0xffffffff,%ecx
46ca11:	89 44 24 24          	mov    %eax,0x24(%esp)
46ca15:	3b c1                	cmp    %ecx,%eax
46ca17:	0f 84 f6 fc ff ff    	je     0x46c713
46ca1d:	6a ec                	push   $0xffffffec
46ca1f:	57                   	push   %edi
46ca20:	89 44 24 68          	mov    %eax,0x68(%esp)
46ca24:	89 74 24 6c          	mov    %esi,0x6c(%esp)
46ca28:	c7 44 24 64 08 00 00 	movl   $0x8,0x64(%esp)
46ca2f:	00
46ca30:	ff 15 44 d6 48 00    	call   *0x48d644
46ca36:	a8 04                	test   $0x4,%al
46ca38:	74 36                	je     0x46ca70
46ca3a:	f6 c3 05             	test   $0x5,%bl
46ca3d:	74 31                	je     0x46ca70
46ca3f:	8d 43 ff             	lea    -0x1(%ebx),%eax
46ca42:	f7 d8                	neg    %eax
46ca44:	1b c0                	sbb    %eax,%eax
46ca46:	25 00 f0 ff ff       	and    $0xfffff000,%eax
46ca4b:	05 00 20 00 00       	add    $0x2000,%eax
46ca50:	89 44 24 68          	mov    %eax,0x68(%esp)
46ca54:	8d 44 24 5c          	lea    0x5c(%esp),%eax
46ca58:	50                   	push   %eax
46ca59:	56                   	push   %esi
46ca5a:	68 4c 10 00 00       	push   $0x104c
46ca5f:	57                   	push   %edi
46ca60:	c7 44 24 7c 00 f0 00 	movl   $0xf000,0x7c(%esp)
46ca67:	00
46ca68:	ff 15 70 d6 48 00    	call   *0x48d670
46ca6e:	8b f0                	mov    %eax,%esi
46ca70:	f7 c3 00 21 00 00    	test   $0x2100,%ebx
46ca76:	74 41                	je     0x46cab9
46ca78:	83 7c 24 28 00       	cmpl   $0x0,0x28(%esp)
46ca7d:	74 05                	je     0x46ca84
46ca7f:	83 c8 ff             	or     $0xffffffff,%eax
46ca82:	eb 04                	jmp    0x46ca88
46ca84:	8b 44 24 68          	mov    0x68(%esp),%eax
46ca88:	81 e3 00 20 00 00    	and    $0x2000,%ebx
46ca8e:	f7 db                	neg    %ebx
46ca90:	1b db                	sbb    %ebx,%ebx
46ca92:	f7 d3                	not    %ebx
46ca94:	23 d8                	and    %eax,%ebx
46ca96:	8d 44 24 5c          	lea    0x5c(%esp),%eax
46ca9a:	50                   	push   %eax
46ca9b:	ff 74 24 28          	push   0x28(%esp)
46ca9f:	89 5c 24 70          	mov    %ebx,0x70(%esp)
46caa3:	68 2b 10 00 00       	push   $0x102b
46caa8:	57                   	push   %edi
46caa9:	c7 44 24 7c 03 00 00 	movl   $0x3,0x7c(%esp)
46cab0:	00
46cab1:	ff 15 70 d6 48 00    	call   *0x48d670
46cab7:	8b f0                	mov    %eax,%esi
46cab9:	8b c6                	mov    %esi,%eax
46cabb:	e9 2e 02 00 00       	jmp    0x46ccee
46cac0:	83 e8 16             	sub    $0x16,%eax
46cac3:	0f 84 8f 00 00 00    	je     0x46cb58
46cac9:	48                   	dec    %eax
46caca:	48                   	dec    %eax
46cacb:	74 50                	je     0x46cb1d
46cacd:	48                   	dec    %eax
46cace:	74 2c                	je     0x46cafc
46cad0:	48                   	dec    %eax
46cad1:	0f 85 1c 01 00 00    	jne    0x46cbf3
46cad7:	8b c3                	mov    %ebx,%eax
46cad9:	83 e0 07             	and    $0x7,%eax
46cadc:	0f 84 11 01 00 00    	je     0x46cbf3
46cae2:	83 e0 03             	and    $0x3,%eax
46cae5:	50                   	push   %eax
46cae6:	ff 74 24 14          	push   0x14(%esp)
46caea:	e8 d9 c4 ff ff       	call   0x468fc8
46caef:	c7 44 24 14 01 00 00 	movl   $0x1,0x14(%esp)
46caf6:	00
46caf7:	e9 f7 00 00 00       	jmp    0x46cbf3
46cafc:	8b c3                	mov    %ebx,%eax
46cafe:	83 e0 07             	and    $0x7,%eax
46cb01:	0f 84 ec 00 00 00    	je     0x46cbf3
46cb07:	56                   	push   %esi
46cb08:	83 e0 03             	and    $0x3,%eax
46cb0b:	50                   	push   %eax
46cb0c:	68 f1 00 00 00       	push   $0xf1
46cb11:	ff 74 24 28          	push   0x28(%esp)
46cb15:	ff 15 70 d6 48 00    	call   *0x48d670
46cb1b:	eb d2                	jmp    0x46caef
46cb1d:	f7 c3 00 02 00 00    	test   $0x200,%ebx
46cb23:	0f 84 ca 00 00 00    	je     0x46cbf3
46cb29:	8b 44 24 20          	mov    0x20(%esp),%eax
46cb2d:	56                   	push   %esi
46cb2e:	ff 74 24 14          	push   0x14(%esp)
46cb32:	68 01 04 00 00       	push   $0x401
46cb37:	ff 30                	push   (%eax)
46cb39:	ff 15 70 d6 48 00    	call   *0x48d670
46cb3f:	ff 15 50 d6 48 00    	call   *0x48d650
46cb45:	3b 07                	cmp    (%edi),%eax
46cb47:	75 a6                	jne    0x46caef
46cb49:	ff 74 24 10          	push   0x10(%esp)
46cb4d:	ff 74 24 28          	push   0x28(%esp)
46cb51:	e8 a2 eb fa ff       	call   0x41b6f8
46cb56:	eb 97                	jmp    0x46caef
46cb58:	6a 03                	push   $0x3
46cb5a:	59                   	pop    %ecx
46cb5b:	39 0d ac 16 4c 00    	cmp    %ecx,0x4c16ac
46cb61:	0f 8c 8c 00 00 00    	jl     0x46cbf3
46cb67:	a1 9c 16 4c 00       	mov    0x4c169c,%eax
46cb6c:	8b 04 88             	mov    (%eax,%ecx,4),%eax
46cb6f:	8b 10                	mov    (%eax),%edx
46cb71:	85 d2                	test   %edx,%edx
46cb73:	74 1f                	je     0x46cb94
46cb75:	8b 74 24 20          	mov    0x20(%esp),%esi
46cb79:	8b 42 04             	mov    0x4(%edx),%eax
46cb7c:	3b 46 04             	cmp    0x4(%esi),%eax
46cb7f:	6a 00                	push   $0x0