45ae2e:	8b c7                	mov    %edi,%eax
45ae30:	8b 75 1c             	mov    0x1c(%ebp),%esi
45ae33:	2b 45 d0             	sub    -0x30(%ebp),%eax
45ae36:	03 45 e0             	add    -0x20(%ebp),%eax
45ae39:	56                   	push   %esi
45ae3a:	ff 75 18             	push   0x18(%ebp)
45ae3d:	50                   	push   %eax
45ae3e:	e8 dd 07 01 00       	call   0x46b620
45ae43:	83 c4 14             	add    $0x14,%esp
45ae46:	b9 cc 00 00 00       	mov    $0xcc,%ecx
45ae4b:	85 f6                	test   %esi,%esi
45ae4d:	b8 bc 00 00 00       	mov    $0xbc,%eax
45ae52:	0f 45 c1             	cmovne %ecx,%eax
45ae55:	8b 4d e0             	mov    -0x20(%ebp),%ecx
45ae58:	88 44 0f ff          	mov    %al,-0x1(%edi,%ecx,1)
45ae5c:	8b 4d 28             	mov    0x28(%ebp),%ecx
45ae5f:	83 e1 07             	and    $0x7,%ecx
45ae62:	74 0c                	je     0x45ae70
45ae64:	8a 07                	mov    (%edi),%al
45ae66:	b2 01                	mov    $0x1,%dl
45ae68:	d2 e2                	shl    %cl,%dl
45ae6a:	fe ca                	dec    %dl
45ae6c:	22 d0                	and    %al,%dl
45ae6e:	88 17                	mov    %dl,(%edi)
45ae70:	8b 55 dc             	mov    -0x24(%ebp),%edx
45ae73:	32 c0                	xor    %al,%al
45ae75:	8b 4d d8             	mov    -0x28(%ebp),%ecx
45ae78:	8b fa                	mov    %edx,%edi
45ae7a:	f3 aa                	rep stos %al,%es:(%edi)
45ae7c:	52                   	push   %edx
45ae7d:	e8 00 e8 01 00       	call   0x479682
45ae82:	8b 55 c4             	mov    -0x3c(%ebp),%edx
45ae85:	32 c0                	xor    %al,%al
45ae87:	8b fa                	mov    %edx,%edi
45ae89:	8b cb                	mov    %ebx,%ecx
45ae8b:	f3 aa                	rep stos %al,%es:(%edi)
45ae8d:	52                   	push   %edx
45ae8e:	e8 ef e7 01 00       	call   0x479682
45ae93:	83 c4 08             	add    $0x8,%esp
45ae96:	8b 4d f4             	mov    -0xc(%ebp),%ecx
45ae99:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
45aea0:	59                   	pop    %ecx
45aea1:	5f                   	pop    %edi
45aea2:	5e                   	pop    %esi
45aea3:	5b                   	pop    %ebx
45aea4:	8b 4d f0             	mov    -0x10(%ebp),%ecx
45aea7:	33 cd                	xor    %ebp,%ecx
45aea9:	e8 1c eb 00 00       	call   0x4699ca
45aeae:	8b e5                	mov    %ebp,%esp
45aeb0:	5d                   	pop    %ebp
45aeb1:	c2 24 00             	ret    $0x24
45aeb4:	cc                   	int3
45aeb5:	cc                   	int3
45aeb6:	cc                   	int3
45aeb7:	cc                   	int3
45aeb8:	cc                   	int3
45aeb9:	cc                   	int3
45aeba:	cc                   	int3
45aebb:	cc                   	int3
45aebc:	cc                   	int3
45aebd:	cc                   	int3
45aebe:	cc                   	int3
45aebf:	cc                   	int3
45aec0:	cc                   	int3
45aec1:	cc                   	int3
45aec2:	cc                   	int3
45aec3:	cc                   	int3
45aec4:	cc                   	int3
45aec5:	cc                   	int3
45aec6:	cc                   	int3
45aec7:	cc                   	int3
45aec8:	cc                   	int3
45aec9:	cc                   	int3
45aeca:	cc                   	int3
45aecb:	cc                   	int3
45aecc:	cc                   	int3
45aecd:	cc                   	int3
45aece:	cc                   	int3
45aecf:	cc                   	int3
45aed0:	55                   	push   %ebp
45aed1:	8b ec                	mov    %esp,%ebp
45aed3:	6a ff                	push   $0xffffffff
45aed5:	68 08 c0 49 00       	push   $0x49c008
45aeda:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
45aee0:	50                   	push   %eax
45aee1:	81 ec 88 00 00 00    	sub    $0x88,%esp
45aee7:	a1 14 40 4c 00       	mov    0x4c4014,%eax
45aeec:	33 c5                	xor    %ebp,%eax
45aeee:	89 45 f0             	mov    %eax,-0x10(%ebp)
45aef1:	53                   	push   %ebx
45aef2:	56                   	push   %esi
45aef3:	57                   	push   %edi
45aef4:	50                   	push   %eax
45aef5:	8d 45 f4             	lea    -0xc(%ebp),%eax
45aef8:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
45aefe:	89 4d a4             	mov    %ecx,-0x5c(%ebp)
45af01:	8b 45 1c             	mov    0x1c(%ebp),%eax
45af04:	8b 7d 0c             	mov    0xc(%ebp),%edi
45af07:	8b 5d 08             	mov    0x8(%ebp),%ebx
45af0a:	89 45 a0             	mov    %eax,-0x60(%ebp)
45af0d:	8b 45 24             	mov    0x24(%ebp),%eax
45af10:	89 45 80             	mov    %eax,-0x80(%ebp)
45af13:	8b 45 14             	mov    0x14(%ebp),%eax
45af16:	40                   	inc    %eax
45af17:	89 7d 8c             	mov    %edi,-0x74(%ebp)
45af1a:	89 45 94             	mov    %eax,-0x6c(%ebp)
45af1d:	8b 45 20             	mov    0x20(%ebp),%eax
45af20:	8d 40 07             	lea    0x7(%eax),%eax
45af23:	c1 e8 03             	shr    $0x3,%eax
45af26:	89 45 90             	mov    %eax,-0x70(%ebp)
45af29:	8b 07                	mov    (%edi),%eax
45af2b:	8b 70 1c             	mov    0x1c(%eax),%esi
45af2e:	8b ce                	mov    %esi,%ecx
45af30:	ff 15 d4 e2 49 00    	call   *0x49e2d4
45af36:	8b cf                	mov    %edi,%ecx
45af38:	ff d6                	call   *%esi
45af3a:	8b f8                	mov    %eax,%edi
45af3c:	8b 45 a4             	mov    -0x5c(%ebp),%eax
45af3f:	57                   	push   %edi
45af40:	89 7d 9c             	mov    %edi,-0x64(%ebp)
45af43:	8b 00                	mov    (%eax),%eax
45af45:	8b 70 2c             	mov    0x2c(%eax),%esi
45af48:	8b ce                	mov    %esi,%ecx
45af4a:	ff 15 d4 e2 49 00    	call   *0x49e2d4
45af50:	8b 4d a4             	mov    -0x5c(%ebp),%ecx
45af53:	ff d6                	call   *%esi
45af55:	89 85 7c ff ff ff    	mov    %eax,-0x84(%ebp)
45af5b:	8b 45 a0             	mov    -0x60(%ebp),%eax
45af5e:	2b c7                	sub    %edi,%eax
45af60:	89 bd 70 ff ff ff    	mov    %edi,-0x90(%ebp)
45af66:	2b 45 94             	sub    -0x6c(%ebp),%eax
45af69:	03 45 90             	add    -0x70(%ebp),%eax
45af6c:	89 85 78 ff ff ff    	mov    %eax,-0x88(%ebp)
45af72:	85 ff                	test   %edi,%edi
45af74:	75 07                	jne    0x45af7d
45af76:	33 c9                	xor    %ecx,%ecx
45af78:	89 4d 88             	mov    %ecx,-0x78(%ebp)
45af7b:	eb 0c                	jmp    0x45af89
45af7d:	8b cf                	mov    %edi,%ecx
45af7f:	e8 dc 10 00 00       	call   0x45c060
45af84:	8b c8                	mov    %eax,%ecx
45af86:	89 45 88             	mov    %eax,-0x78(%ebp)
45af89:	89 8d 74 ff ff ff    	mov    %ecx,-0x8c(%ebp)
45af8f:	8b 7d 8c             	mov    -0x74(%ebp),%edi
45af92:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
45af99:	51                   	push   %ecx
45af9a:	8b 07                	mov    (%edi),%eax
45af9c:	8b 70 14             	mov    0x14(%eax),%esi
45af9f:	8b ce                	mov    %esi,%ecx
45afa1:	ff 15 d4 e2 49 00    	call   *0x49e2d4
45afa7:	8b cf                	mov    %edi,%ecx
45afa9:	ff d6                	call   *%esi
45afab:	8b 55 a0             	mov    -0x60(%ebp),%edx
45afae:	bf bc 00 00 00       	mov    $0xbc,%edi
45afb3:	8b 75 90             	mov    -0x70(%ebp),%esi
45afb6:	8b 4d 14             	mov    0x14(%ebp),%ecx
45afb9:	85 c9                	test   %ecx,%ecx
45afbb:	c6 03 01             	movb   $0x1,(%ebx)
45afbe:	c7 43 04 00 00 00 00 	movl   $0x0,0x4(%ebx)
45afc5:	0f b6 44 32 ff       	movzbl -0x1(%edx,%esi,1),%eax
45afca:	c7 45 84 cc 00 00 00 	movl   $0xcc,-0x7c(%ebp)
45afd1:	0f 45 7d 84          	cmovne -0x7c(%ebp),%edi
45afd5:	51                   	push   %ecx
45afd6:	3b c7                	cmp    %edi,%eax
45afd8:	89 45 98             	mov    %eax,-0x68(%ebp)
45afdb:	8b ca                	mov    %edx,%ecx
45afdd:	8b 55 10             	mov    0x10(%ebp),%edx
45afe0:	0f 94 c0             	sete   %al
45afe3:	2b 4d 94             	sub    -0x6c(%ebp),%ecx
45afe6:	03 ce                	add    %esi,%ecx
45afe8:	88 03                	mov    %al,(%ebx)
45afea:	e8 51 0e 00 00       	call   0x45be40
45afef:	83 c4 04             	add    $0x4,%esp
45aff2:	84 c0                	test   %al,%al
45aff4:	74 09                	je     0x45afff
45aff6:	39 7d 98             	cmp    %edi,-0x68(%ebp)
45aff9:	75 04                	jne    0x45afff
45affb:	b0 01                	mov    $0x1,%al
45affd:	eb 02                	jmp    0x45b001
45afff:	32 c0                	xor    %al,%al
45b001:	8b 7d a4             	mov    -0x5c(%ebp),%edi
45b004:	88 03                	mov    %al,(%ebx)
45b006:	8b 07                	mov    (%edi),%eax
45b008:	8b 70 34             	mov    0x34(%eax),%esi
45b00b:	8b ce                	mov    %esi,%ecx
45b00d:	ff 15 d4 e2 49 00    	call   *0x49e2d4
45b013:	8b cf                	mov    %edi,%ecx
45b015:	ff d6                	call   *%esi
45b017:	8b 4d 9c             	mov    -0x64(%ebp),%ecx
45b01a:	8b f8                	mov    %eax,%edi
45b01c:	8b 45 90             	mov    -0x70(%ebp),%eax
45b01f:	6a 01                	push   $0x1
45b021:	51                   	push   %ecx
45b022:	ff b5 78 ff ff ff    	push   -0x88(%ebp)
45b028:	8b 37                	mov    (%edi),%esi
45b02a:	2b c1                	sub    %ecx,%eax
45b02c:	2b 45 94             	sub    -0x6c(%ebp),%eax
45b02f:	50                   	push   %eax
45b030:	ff 75 a0             	push   -0x60(%ebp)
45b033:	8b 76 04             	mov    0x4(%esi),%esi
45b036:	8b ce                	mov    %esi,%ecx
45b038:	ff 75 8c             	push   -0x74(%ebp)
45b03b:	ff 15 d4 e2 49 00    	call   *0x49e2d4
45b041:	8b cf                	mov    %edi,%ecx
45b043:	ff d6                	call   *%esi
45b045:	8b 4d 20             	mov    0x20(%ebp),%ecx
45b048:	8b 7d a0             	mov    -0x60(%ebp),%edi
45b04b:	83 e1 07             	and    $0x7,%ecx
45b04e:	89 4d 98             	mov    %ecx,-0x68(%ebp)
45b051:	74 08                	je     0x45b05b
45b053:	b2 01                	mov    $0x1,%dl
45b055:	d2 e2                	shl    %cl,%dl
45b057:	fe ca                	dec    %dl
45b059:	20 17                	and    %dl,(%edi)
45b05b:	8b 4d 9c             	mov    -0x64(%ebp),%ecx
45b05e:	8b c7                	mov    %edi,%eax
45b060:	2b 85 7c ff ff ff    	sub    -0x84(%ebp),%eax
45b066:	8b f7                	mov    %edi,%esi
45b068:	2b c1                	sub    %ecx,%eax
45b06a:	2b 45 94             	sub    -0x6c(%ebp),%eax
45b06d:	03 45 90             	add    -0x70(%ebp),%eax
45b070:	89 45 84             	mov    %eax,-0x7c(%ebp)
45b073:	8d 50 ff             	lea    -0x1(%eax),%edx
45b076:	3b fa                	cmp    %edx,%edi
45b078:	74 10                	je     0x45b08a
45b07a:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
45b080:	80 3e 00             	cmpb   $0x0,(%esi)
45b083:	75 05                	jne    0x45b08a
45b085:	46                   	inc    %esi
45b086:	3b f2                	cmp    %edx,%esi
45b088:	75 f6                	jne    0x45b080
45b08a:	2b c6                	sub    %esi,%eax
45b08c:	48                   	dec    %eax
45b08d:	89 43 04             	mov    %eax,0x4(%ebx)
45b090:	80 3e 01             	cmpb   $0x1,(%esi)
45b093:	75 65                	jne    0x45b0fa
45b095:	8b 45 a4             	mov    -0x5c(%ebp),%eax
45b098:	51                   	push   %ecx
45b099:	8b 00                	mov    (%eax),%eax
45b09b:	8b 78 30             	mov    0x30(%eax),%edi
45b09e:	8b cf                	mov    %edi,%ecx
45b0a0:	ff 15 d4 e2 49 00    	call   *0x49e2d4
45b0a6:	8b 4d a4             	mov    -0x5c(%ebp),%ecx
45b0a9:	ff d7                	call   *%edi
45b0ab:	33 d2                	xor    %edx,%edx
45b0ad:	8b ce                	mov    %esi,%ecx
45b0af:	39 55 98             	cmp    %edx,-0x68(%ebp)
45b0b2:	0f 95 c2             	setne  %dl
45b0b5:	2b ca                	sub    %edx,%ecx
45b0b7:	2b 4d a0             	sub    -0x60(%ebp),%ecx
45b0ba:	3b c8                	cmp    %eax,%ecx
45b0bc:	72 3c                	jb     0x45b0fa
45b0be:	8b 43 04             	mov    0x4(%ebx),%eax
45b0c1:	ff 75 9c             	push   -0x64(%ebp)
45b0c4:	8b 4d 20             	mov    0x20(%ebp),%ecx
45b0c7:	ff 75 14             	push   0x14(%ebp)
45b0ca:	89 45 98             	mov    %eax,-0x68(%ebp)
45b0cd:	8b 45 a4             	mov    -0x5c(%ebp),%eax
45b0d0:	51                   	push   %ecx
45b0d1:	8b 00                	mov    (%eax),%eax
45b0d3:	8b 78 08             	mov    0x8(%eax),%edi
45b0d6:	8b cf                	mov    %edi,%ecx
45b0d8:	ff 15 d4 e2 49 00    	call   *0x49e2d4
45b0de:	8b 4d a4             	mov    -0x5c(%ebp),%ecx
45b0e1:	ff d7                	call   *%edi
45b0e3:	8b 4d 98             	mov    -0x68(%ebp),%ecx
45b0e6:	3b c8                	cmp    %eax,%ecx
45b0e8:	77 10                	ja     0x45b0fa
45b0ea:	51                   	push   %ecx
45b0eb:	46                   	inc    %esi
45b0ec:	56                   	push   %esi
45b0ed:	ff 75 80             	push   -0x80(%ebp)
45b0f0:	e8 2b 05 01 00       	call   0x46b620
45b0f5:	83 c4 0c             	add    $0xc,%esp
45b0f8:	eb 0a                	jmp    0x45b104
45b0fa:	c7 43 04 00 00 00 00 	movl   $0x0,0x4(%ebx)
45b101:	c6 03 00             	movb   $0x0,(%ebx)
45b104:	8b 4b 04             	mov    0x4(%ebx),%ecx
45b107:	8b c1                	mov    %ecx,%eax
45b109:	8b 7d 8c             	mov    -0x74(%ebp),%edi
45b10c:	c1 e8 1d             	shr    $0x1d,%eax
45b10f:	0f c8                	bswap  %eax
45b111:	89 45 e8             	mov    %eax,-0x18(%ebp)
45b114:	8d 04 cd 00 00 00 00 	lea    0x0(,%ecx,8),%eax
45b11b:	0f c8                	bswap  %eax
45b11d:	89 45 ec             	mov    %eax,-0x14(%ebp)
45b120:	8d 4d e8             	lea    -0x18(%ebp),%ecx
45b123:	8b 07                	mov    (%edi),%eax
45b125:	6a 08                	push   $0x8
45b127:	51                   	push   %ecx
45b128:	8b 70 0c             	mov    0xc(%eax),%esi
45b12b:	8b ce                	mov    %esi,%ecx
45b12d:	ff 15 d4 e2 49 00    	call   *0x49e2d4
45b133:	8b cf                	mov    %edi,%ecx
45b135:	ff d6                	call   *%esi
45b137:	8b 07                	mov    (%edi),%eax
45b139:	ff 73 04             	push   0x4(%ebx)
45b13c:	ff 75 80             	push   -0x80(%ebp)
45b13f:	8b 70 0c             	mov    0xc(%eax),%esi
45b142:	8b ce                	mov    %esi,%ecx
45b144:	ff 15 d4 e2 49 00    	call   *0x49e2d4
45b14a:	8b cf                	mov    %edi,%ecx
45b14c:	ff d6                	call   *%esi
45b14e:	8b 07                	mov    (%edi),%eax
45b150:	ff 75 9c             	push   -0x64(%ebp)
45b153:	ff 75 88             	push   -0x78(%ebp)
45b156:	8b 70 0c             	mov    0xc(%eax),%esi
45b159:	8b ce                	mov    %esi,%ecx
45b15b:	ff 15 d4 e2 49 00    	call   *0x49e2d4
45b161:	8b cf                	mov    %edi,%ecx
45b163:	ff d6                	call   *%esi
45b165:	8b 07                	mov    (%edi),%eax
45b167:	ff b5 7c ff ff ff    	push   -0x84(%ebp)
45b16d:	ff 75 84             	push   -0x7c(%ebp)
45b170:	8b 70 0c             	mov    0xc(%eax),%esi
45b173:	8b ce                	mov    %esi,%ecx
45b175:	ff 15 d4 e2 49 00    	call   *0x49e2d4
45b17b:	8b cf                	mov    %edi,%ecx
45b17d:	ff d6                	call   *%esi
45b17f:	8b 07                	mov    (%edi),%eax
45b181:	ff b5 78 ff ff ff    	push   -0x88(%ebp)
45b187:	8b 70 30             	mov    0x30(%eax),%esi
45b18a:	8b ce                	mov    %esi,%ecx
45b18c:	ff 15 d4 e2 49 00    	call   *0x49e2d4
45b192:	8b cf                	mov    %edi,%ecx
45b194:	ff d6                	call   *%esi
45b196:	84 c0                	test   %al,%al
45b198:	74 09                	je     0x45b1a3
45b19a:	80 3b 00             	cmpb   $0x0,(%ebx)
45b19d:	74 04                	je     0x45b1a3
45b19f:	b0 01                	mov    $0x1,%al
45b1a1:	eb 02                	jmp    0x45b1a5
45b1a3:	32 c0                	xor    %al,%al
45b1a5:	8b 7d a4             	mov    -0x5c(%ebp),%edi
45b1a8:	88 03                	mov    %al,(%ebx)
45b1aa:	8b 07                	mov    (%edi),%eax
45b1ac:	8b 70 28             	mov    0x28(%eax),%esi
45b1af:	8b ce                	mov    %esi,%ecx
45b1b1:	ff 15 d4 e2 49 00    	call   *0x49e2d4
45b1b7:	8b cf                	mov    %edi,%ecx
45b1b9:	ff d6                	call   *%esi
45b1bb:	84 c0                	test   %al,%al
45b1bd:	75 0a                	jne    0x45b1c9
45b1bf:	38 03                	cmp    %al,(%ebx)
45b1c1:	74 06                	je     0x45b1c9
45b1c3:	83 7b 04 00          	cmpl   $0x0,0x4(%ebx)
45b1c7:	75 35                	jne    0x45b1fe
45b1c9:	8b 55 88             	mov    -0x78(%ebp),%edx
45b1cc:	32 c0                	xor    %al,%al
45b1ce:	8b 4d 9c             	mov    -0x64(%ebp),%ecx