45ac40:	57                   	push   %edi
45ac41:	50                   	push   %eax
45ac42:	8d 45 f4             	lea    -0xc(%ebp),%eax
45ac45:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
45ac4b:	89 4d cc             	mov    %ecx,-0x34(%ebp)
45ac4e:	8b 45 08             	mov    0x8(%ebp),%eax
45ac51:	8b 5d 14             	mov    0x14(%ebp),%ebx
45ac54:	8b 7d 24             	mov    0x24(%ebp),%edi
45ac57:	89 45 c0             	mov    %eax,-0x40(%ebp)
45ac5a:	8b 45 0c             	mov    0xc(%ebp),%eax
45ac5d:	89 45 bc             	mov    %eax,-0x44(%ebp)
45ac60:	8b 45 10             	mov    0x10(%ebp),%eax
45ac63:	89 45 d4             	mov    %eax,-0x2c(%ebp)
45ac66:	8b 45 1c             	mov    0x1c(%ebp),%eax
45ac69:	40                   	inc    %eax
45ac6a:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
45ac6d:	89 45 d0             	mov    %eax,-0x30(%ebp)
45ac70:	8b 45 28             	mov    0x28(%ebp),%eax
45ac73:	83 c0 07             	add    $0x7,%eax
45ac76:	89 7d c8             	mov    %edi,-0x38(%ebp)
45ac79:	c1 e8 03             	shr    $0x3,%eax
45ac7c:	89 45 e0             	mov    %eax,-0x20(%ebp)
45ac7f:	8b 03                	mov    (%ebx),%eax
45ac81:	8b 70 1c             	mov    0x1c(%eax),%esi
45ac84:	8b ce                	mov    %esi,%ecx
45ac86:	ff 15 d4 e2 49 00    	call   *0x49e2d4
45ac8c:	8b cb                	mov    %ebx,%ecx
45ac8e:	ff d6                	call   *%esi
45ac90:	8b 4d cc             	mov    -0x34(%ebp),%ecx
45ac93:	8b d8                	mov    %eax,%ebx
45ac95:	53                   	push   %ebx
45ac96:	8b 09                	mov    (%ecx),%ecx
45ac98:	8b 71 2c             	mov    0x2c(%ecx),%esi
45ac9b:	8b ce                	mov    %esi,%ecx
45ac9d:	ff 15 d4 e2 49 00    	call   *0x49e2d4
45aca3:	8b 4d cc             	mov    -0x34(%ebp),%ecx
45aca6:	ff d6                	call   *%esi
45aca8:	2b fb                	sub    %ebx,%edi
45acaa:	89 45 d8             	mov    %eax,-0x28(%ebp)
45acad:	2b 7d d0             	sub    -0x30(%ebp),%edi
45acb0:	03 7d e0             	add    -0x20(%ebp),%edi
45acb3:	89 7d b8             	mov    %edi,-0x48(%ebp)
45acb6:	89 5d b0             	mov    %ebx,-0x50(%ebp)
45acb9:	85 db                	test   %ebx,%ebx
45acbb:	75 04                	jne    0x45acc1
45acbd:	33 f6                	xor    %esi,%esi
45acbf:	eb 0c                	jmp    0x45accd
45acc1:	8b cb                	mov    %ebx,%ecx
45acc3:	e8 98 13 00 00       	call   0x45c060
45acc8:	8b f0                	mov    %eax,%esi
45acca:	8b 45 d8             	mov    -0x28(%ebp),%eax
45accd:	89 75 c4             	mov    %esi,-0x3c(%ebp)
45acd0:	89 75 b4             	mov    %esi,-0x4c(%ebp)
45acd3:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
45acda:	89 45 a4             	mov    %eax,-0x5c(%ebp)
45acdd:	85 c0                	test   %eax,%eax
45acdf:	74 07                	je     0x45ace8
45ace1:	8b c8                	mov    %eax,%ecx
45ace3:	e8 78 13 00 00       	call   0x45c060
45ace8:	89 45 dc             	mov    %eax,-0x24(%ebp)
45aceb:	89 45 a8             	mov    %eax,-0x58(%ebp)
45acee:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
45acf1:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
45acf5:	56                   	push   %esi
45acf6:	8b 09                	mov    (%ecx),%ecx
45acf8:	8b 71 14             	mov    0x14(%ecx),%esi
45acfb:	8b ce                	mov    %esi,%ecx
45acfd:	ff 15 d4 e2 49 00    	call   *0x49e2d4
45ad03:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
45ad06:	ff d6                	call   *%esi
45ad08:	8b 4d c0             	mov    -0x40(%ebp),%ecx
45ad0b:	ff 75 d8             	push   -0x28(%ebp)
45ad0e:	ff 75 dc             	push   -0x24(%ebp)
45ad11:	8b 01                	mov    (%ecx),%eax
45ad13:	8b 70 20             	mov    0x20(%eax),%esi
45ad16:	8b ce                	mov    %esi,%ecx
45ad18:	ff 15 d4 e2 49 00    	call   *0x49e2d4
45ad1e:	8b 4d c0             	mov    -0x40(%ebp),%ecx
45ad21:	ff d6                	call   *%esi
45ad23:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
45ad26:	8b c1                	mov    %ecx,%eax
45ad28:	c1 e8 1d             	shr    $0x1d,%eax
45ad2b:	0f c8                	bswap  %eax
45ad2d:	89 45 e8             	mov    %eax,-0x18(%ebp)
45ad30:	8d 04 cd 00 00 00 00 	lea    0x0(,%ecx,8),%eax
45ad37:	0f c8                	bswap  %eax
45ad39:	89 45 ec             	mov    %eax,-0x14(%ebp)
45ad3c:	8d 4d e8             	lea    -0x18(%ebp),%ecx
45ad3f:	8b 45 e4             	mov    -0x1c(%ebp),%eax
45ad42:	6a 08                	push   $0x8
45ad44:	51                   	push   %ecx
45ad45:	8b 00                	mov    (%eax),%eax
45ad47:	8b 70 0c             	mov    0xc(%eax),%esi
45ad4a:	8b ce                	mov    %esi,%ecx
45ad4c:	ff 15 d4 e2 49 00    	call   *0x49e2d4
45ad52:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
45ad55:	ff d6                	call   *%esi
45ad57:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
45ad5a:	8b 01                	mov    (%ecx),%eax
45ad5c:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
45ad5f:	51                   	push   %ecx
45ad60:	ff 75 bc             	push   -0x44(%ebp)
45ad63:	8b 70 0c             	mov    0xc(%eax),%esi
45ad66:	8b ce                	mov    %esi,%ecx
45ad68:	ff 15 d4 e2 49 00    	call   *0x49e2d4
45ad6e:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
45ad71:	ff d6                	call   *%esi
45ad73:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
45ad76:	53                   	push   %ebx
45ad77:	ff 75 c4             	push   -0x3c(%ebp)
45ad7a:	8b 01                	mov    (%ecx),%eax
45ad7c:	8b 70 0c             	mov    0xc(%eax),%esi
45ad7f:	8b ce                	mov    %esi,%ecx
45ad81:	ff 15 d4 e2 49 00    	call   *0x49e2d4
45ad87:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
45ad8a:	ff d6                	call   *%esi
45ad8c:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
45ad8f:	ff 75 d8             	push   -0x28(%ebp)
45ad92:	ff 75 dc             	push   -0x24(%ebp)
45ad95:	8b 01                	mov    (%ecx),%eax
45ad97:	8b 70 0c             	mov    0xc(%eax),%esi
45ad9a:	8b ce                	mov    %esi,%ecx
45ad9c:	ff 15 d4 e2 49 00    	call   *0x49e2d4
45ada2:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
45ada5:	ff d6                	call   *%esi
45ada7:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
45adaa:	57                   	push   %edi
45adab:	8b 01                	mov    (%ecx),%eax
45adad:	8b 70 14             	mov    0x14(%eax),%esi
45adb0:	8b ce                	mov    %esi,%ecx
45adb2:	ff 15 d4 e2 49 00    	call   *0x49e2d4
45adb8:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
45adbb:	ff d6                	call   *%esi
45adbd:	8b 7d cc             	mov    -0x34(%ebp),%edi
45adc0:	8b 07                	mov    (%edi),%eax
45adc2:	8b 70 34             	mov    0x34(%eax),%esi
45adc5:	8b ce                	mov    %esi,%ecx
45adc7:	ff 15 d4 e2 49 00    	call   *0x49e2d4
45adcd:	8b cf                	mov    %edi,%ecx
45adcf:	ff d6                	call   *%esi
45add1:	8b 4d e0             	mov    -0x20(%ebp),%ecx
45add4:	8b f8                	mov    %eax,%edi
45add6:	6a 00                	push   $0x0
45add8:	53                   	push   %ebx
45add9:	ff 75 b8             	push   -0x48(%ebp)
45addc:	8b 37                	mov    (%edi),%esi
45adde:	2b cb                	sub    %ebx,%ecx
45ade0:	2b 4d d0             	sub    -0x30(%ebp),%ecx
45ade3:	51                   	push   %ecx
45ade4:	ff 75 c8             	push   -0x38(%ebp)
45ade7:	8b 76 04             	mov    0x4(%esi),%esi
45adea:	8b ce                	mov    %esi,%ecx
45adec:	ff 75 e4             	push   -0x1c(%ebp)
45adef:	ff 15 d4 e2 49 00    	call   *0x49e2d4
45adf5:	8b cf                	mov    %edi,%ecx
45adf7:	ff d6                	call   *%esi
45adf9:	8b 55 d4             	mov    -0x2c(%ebp),%edx
45adfc:	8b 75 c8             	mov    -0x38(%ebp),%esi
45adff:	8b 7d d8             	mov    -0x28(%ebp),%edi
45ae02:	2b f2                	sub    %edx,%esi
45ae04:	2b f7                	sub    %edi,%esi
45ae06:	2b f3                	sub    %ebx,%esi
45ae08:	2b 75 d0             	sub    -0x30(%ebp),%esi
45ae0b:	03 75 e0             	add    -0x20(%ebp),%esi
45ae0e:	52                   	push   %edx
45ae0f:	8b 55 bc             	mov    -0x44(%ebp),%edx
45ae12:	8b ce                	mov    %esi,%ecx
45ae14:	80 76 ff 01          	xorb   $0x1,-0x1(%esi)
45ae18:	e8 f3 0b 00 00       	call   0x45ba10
45ae1d:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
45ae20:	8b 55 dc             	mov    -0x24(%ebp),%edx
45ae23:	03 ce                	add    %esi,%ecx
45ae25:	57                   	push   %edi
45ae26:	e8 e5 0b 00 00       	call   0x45ba10
45ae2b:	8b 7d c8             	mov    -0x38(%ebp),%edi
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