45ac08:	7d 13                	jge    0x45ac1d
45ac0a:	56                   	push   %esi
45ac0b:	53                   	push   %ebx
45ac0c:	51                   	push   %ecx
45ac0d:	8b cf                	mov    %edi,%ecx
45ac0f:	e8 9c fd ff ff       	call   0x45a9b0
45ac14:	5f                   	pop    %edi
45ac15:	5e                   	pop    %esi
45ac16:	5b                   	pop    %ebx
45ac17:	8b e5                	mov    %ebp,%esp
45ac19:	5d                   	pop    %ebp
45ac1a:	c2 0c 00             	ret    $0xc
45ac1d:	53                   	push   %ebx
45ac1e:	51                   	push   %ecx
45ac1f:	56                   	push   %esi
45ac20:	e8 ab 81 17 00       	call   0x5d2dd0
45ac25:	83 c4 0c             	add    $0xc,%esp
45ac28:	8d 04 1e             	lea    (%esi,%ebx,1),%eax
45ac2b:	5f                   	pop    %edi
45ac2c:	5e                   	pop    %esi
45ac2d:	5b                   	pop    %ebx
45ac2e:	8b e5                	mov    %ebp,%esp
45ac30:	5d                   	pop    %ebp
45ac31:	c2 0c 00             	ret    $0xc
45ac34:	cc                   	int3
45ac35:	cc                   	int3
45ac36:	cc                   	int3
45ac37:	cc                   	int3
45ac38:	cc                   	int3
45ac39:	cc                   	int3
45ac3a:	cc                   	int3
45ac3b:	cc                   	int3
45ac3c:	cc                   	int3
45ac3d:	cc                   	int3
45ac3e:	cc                   	int3
45ac3f:	cc                   	int3
45ac40:	55                   	push   %ebp
45ac41:	8b ec                	mov    %esp,%ebp
45ac43:	51                   	push   %ecx
45ac44:	8b 45 10             	mov    0x10(%ebp),%eax
45ac47:	53                   	push   %ebx
45ac48:	8b 5d 08             	mov    0x8(%ebp),%ebx
45ac4b:	56                   	push   %esi
45ac4c:	8b 75 0c             	mov    0xc(%ebp),%esi
45ac4f:	57                   	push   %edi
45ac50:	89 4d fc             	mov    %ecx,-0x4(%ebp)
45ac53:	3b 01                	cmp    (%ecx),%eax
45ac55:	72 06                	jb     0x45ac5d
45ac57:	50                   	push   %eax
45ac58:	e8 13 e9 ff ff       	call   0x459570
45ac5d:	8b 7e 10             	mov    0x10(%esi),%edi
45ac60:	50                   	push   %eax
45ac61:	8d 04 dd 00 00 00 00 	lea    0x0(,%ebx,8),%eax
45ac68:	83 c8 02             	or     $0x2,%eax
45ac6b:	50                   	push   %eax
45ac6c:	e8 4f 5e ff ff       	call   0x450ac0
45ac71:	83 c4 08             	add    $0x8,%esp
45ac74:	8b d7                	mov    %edi,%edx
45ac76:	81 ff 80 00 00 00    	cmp    $0x80,%edi
45ac7c:	72 15                	jb     0x45ac93
45ac7e:	66 90                	xchg   %ax,%ax
45ac80:	8a ca                	mov    %dl,%cl
45ac82:	c1 ea 07             	shr    $0x7,%edx
45ac85:	80 c9 80             	or     $0x80,%cl
45ac88:	88 08                	mov    %cl,(%eax)
45ac8a:	40                   	inc    %eax
45ac8b:	81 fa 80 00 00 00    	cmp    $0x80,%edx
45ac91:	73 ed                	jae    0x45ac80
45ac93:	88 10                	mov    %dl,(%eax)
45ac95:	8d 58 01             	lea    0x1(%eax),%ebx
45ac98:	83 7e 14 10          	cmpl   $0x10,0x14(%esi)
45ac9c:	72 02                	jb     0x45aca0
45ac9e:	8b 36                	mov    (%esi),%esi
45aca0:	8b 4d fc             	mov    -0x4(%ebp),%ecx
45aca3:	8b 01                	mov    (%ecx),%eax
45aca5:	2b c3                	sub    %ebx,%eax
45aca7:	3b c7                	cmp    %edi,%eax
45aca9:	7d 11                	jge    0x45acbc
45acab:	53                   	push   %ebx
45acac:	57                   	push   %edi
45acad:	56                   	push   %esi
45acae:	e8 fd fc ff ff       	call   0x45a9b0
45acb3:	5f                   	pop    %edi
45acb4:	5e                   	pop    %esi
45acb5:	5b                   	pop    %ebx
45acb6:	8b e5                	mov    %ebp,%esp
45acb8:	5d                   	pop    %ebp
45acb9:	c2 0c 00             	ret    $0xc
45acbc:	57                   	push   %edi
45acbd:	56                   	push   %esi
45acbe:	53                   	push   %ebx
45acbf:	e8 0c 81 17 00       	call   0x5d2dd0
45acc4:	83 c4 0c             	add    $0xc,%esp
45acc7:	8d 04 3b             	lea    (%ebx,%edi,1),%eax
45acca:	5f                   	pop    %edi
45accb:	5e                   	pop    %esi
45accc:	5b                   	pop    %ebx
45accd:	8b e5                	mov    %ebp,%esp
45accf:	5d                   	pop    %ebp
45acd0:	c2 0c 00             	ret    $0xc
45acd3:	cc                   	int3
45acd4:	cc                   	int3
45acd5:	cc                   	int3
45acd6:	cc                   	int3
45acd7:	cc                   	int3
45acd8:	cc                   	int3
45acd9:	cc                   	int3
45acda:	cc                   	int3
45acdb:	cc                   	int3
45acdc:	cc                   	int3
45acdd:	cc                   	int3
45acde:	cc                   	int3
45acdf:	cc                   	int3
45ace0:	55                   	push   %ebp
45ace1:	8b ec                	mov    %esp,%ebp
45ace3:	83 ec 08             	sub    $0x8,%esp
45ace6:	56                   	push   %esi
45ace7:	8b f1                	mov    %ecx,%esi
45ace9:	57                   	push   %edi
45acea:	8b 7d 08             	mov    0x8(%ebp),%edi
45aced:	8b 56 10             	mov    0x10(%esi),%edx
45acf0:	89 55 fc             	mov    %edx,-0x4(%ebp)
45acf3:	3b d7                	cmp    %edi,%edx
45acf5:	0f 87 2c 01 00 00    	ja     0x45ae27
45acfb:	53                   	push   %ebx
45acfc:	8b 5e 14             	mov    0x14(%esi),%ebx
45acff:	3b df                	cmp    %edi,%ebx
45ad01:	0f 84 1f 01 00 00    	je     0x45ae26
45ad07:	0f 83 d0 00 00 00    	jae    0x45addd
45ad0d:	8b cf                	mov    %edi,%ecx
45ad0f:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
45ad14:	2b ca                	sub    %edx,%ecx
45ad16:	2b c2                	sub    %edx,%eax
45ad18:	3b c1                	cmp    %ecx,%eax
45ad1a:	0f 82 14 01 00 00    	jb     0x45ae34
45ad20:	8b cf                	mov    %edi,%ecx
45ad22:	83 c9 0f             	or     $0xf,%ecx
45ad25:	81 f9 ff ff ff 7f    	cmp    $0x7fffffff,%ecx
45ad2b:	76 07                	jbe    0x45ad34
45ad2d:	b9 ff ff ff 7f       	mov    $0x7fffffff,%ecx
45ad32:	eb 1e                	jmp    0x45ad52
45ad34:	8b d3                	mov    %ebx,%edx
45ad36:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
45ad3b:	d1 ea                	shr    $1,%edx
45ad3d:	2b c2                	sub    %edx,%eax
45ad3f:	3b d8                	cmp    %eax,%ebx
45ad41:	76 07                	jbe    0x45ad4a
45ad43:	b9 ff ff ff 7f       	mov    $0x7fffffff,%ecx
45ad48:	eb 08                	jmp    0x45ad52
45ad4a:	8d 04 1a             	lea    (%edx,%ebx,1),%eax
45ad4d:	3b c8                	cmp    %eax,%ecx
45ad4f:	0f 42 c8             	cmovb  %eax,%ecx
45ad52:	8d 41 01             	lea    0x1(%ecx),%eax
45ad55:	89 4d 08             	mov    %ecx,0x8(%ebp)
45ad58:	50                   	push   %eax
45ad59:	8b ce                	mov    %esi,%ecx
45ad5b:	e8 c0 e0 ff ff       	call   0x458e20
45ad60:	8b 4d 08             	mov    0x8(%ebp),%ecx
45ad63:	89 4e 14             	mov    %ecx,0x14(%esi)
45ad66:	8b 4d fc             	mov    -0x4(%ebp),%ecx
45ad69:	41                   	inc    %ecx
45ad6a:	89 45 f8             	mov    %eax,-0x8(%ebp)
45ad6d:	89 7e 10             	mov    %edi,0x10(%esi)
45ad70:	51                   	push   %ecx
45ad71:	83 fb 10             	cmp    $0x10,%ebx
45ad74:	72 49                	jb     0x45adbf
45ad76:	8b 3e                	mov    (%esi),%edi
45ad78:	57                   	push   %edi
45ad79:	50                   	push   %eax
45ad7a:	e8 51 80 17 00       	call   0x5d2dd0
45ad7f:	43                   	inc    %ebx
45ad80:	83 c4 0c             	add    $0xc,%esp
45ad83:	81 fb 00 10 00 00    	cmp    $0x1000,%ebx
45ad89:	72 16                	jb     0x45ada1
45ad8b:	8b 4f fc             	mov    -0x4(%edi),%ecx
45ad8e:	83 c3 23             	add    $0x23,%ebx
45ad91:	2b f9                	sub    %ecx,%edi
45ad93:	8d 47 fc             	lea    -0x4(%edi),%eax
45ad96:	83 f8 1f             	cmp    $0x1f,%eax
45ad99:	0f 87 90 00 00 00    	ja     0x45ae2f
45ad9f:	8b f9                	mov    %ecx,%edi
45ada1:	53                   	push   %ebx
45ada2:	57                   	push   %edi
45ada3:	e8 ad 64 17 00       	call   0x5d1255
45ada8:	8b 45 f8             	mov    -0x8(%ebp),%eax
45adab:	83 c4 08             	add    $0x8,%esp
45adae:	89 06                	mov    %eax,(%esi)
45adb0:	8b 45 fc             	mov    -0x4(%ebp),%eax
45adb3:	89 46 10             	mov    %eax,0x10(%esi)
45adb6:	5b                   	pop    %ebx
45adb7:	5f                   	pop    %edi
45adb8:	5e                   	pop    %esi
45adb9:	8b e5                	mov    %ebp,%esp
45adbb:	5d                   	pop    %ebp
45adbc:	c2 04 00             	ret    $0x4
45adbf:	56                   	push   %esi
45adc0:	50                   	push   %eax
45adc1:	e8 0a 80 17 00       	call   0x5d2dd0
45adc6:	8b 45 f8             	mov    -0x8(%ebp),%eax
45adc9:	83 c4 0c             	add    $0xc,%esp
45adcc:	89 06                	mov    %eax,(%esi)
45adce:	8b 45 fc             	mov    -0x4(%ebp),%eax
45add1:	89 46 10             	mov    %eax,0x10(%esi)
45add4:	5b                   	pop    %ebx
45add5:	5f                   	pop    %edi
45add6:	5e                   	pop    %esi
45add7:	8b e5                	mov    %ebp,%esp
45add9:	5d                   	pop    %ebp
45adda:	c2 04 00             	ret    $0x4
45addd:	83 ff 10             	cmp    $0x10,%edi
45ade0:	73 44                	jae    0x45ae26
45ade2:	83 fb 10             	cmp    $0x10,%ebx
45ade5:	72 3f                	jb     0x45ae26
45ade7:	8b 3e                	mov    (%esi),%edi
45ade9:	8d 42 01             	lea    0x1(%edx),%eax
45adec:	50                   	push   %eax
45aded:	57                   	push   %edi
45adee:	56                   	push   %esi
45adef:	e8 dc 7f 17 00       	call   0x5d2dd0
45adf4:	8b 4e 14             	mov    0x14(%esi),%ecx
45adf7:	83 c4 0c             	add    $0xc,%esp
45adfa:	41                   	inc    %ecx
45adfb:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
45ae01:	72 12                	jb     0x45ae15
45ae03:	8b 57 fc             	mov    -0x4(%edi),%edx
45ae06:	83 c1 23             	add    $0x23,%ecx
45ae09:	2b fa                	sub    %edx,%edi
45ae0b:	8d 47 fc             	lea    -0x4(%edi),%eax
45ae0e:	83 f8 1f             	cmp    $0x1f,%eax
45ae11:	77 1c                	ja     0x45ae2f
45ae13:	8b fa                	mov    %edx,%edi
45ae15:	51                   	push   %ecx
45ae16:	57                   	push   %edi
45ae17:	e8 39 64 17 00       	call   0x5d1255
45ae1c:	83 c4 08             	add    $0x8,%esp
45ae1f:	c7 46 14 0f 00 00 00 	movl   $0xf,0x14(%esi)
45ae26:	5b                   	pop    %ebx
45ae27:	5f                   	pop    %edi
45ae28:	5e                   	pop    %esi
45ae29:	8b e5                	mov    %ebp,%esp
45ae2b:	5d                   	pop    %ebp
45ae2c:	c2 04 00             	ret    $0x4
45ae2f:	e8 bc b3 17 00       	call   0x5d61f0
45ae34:	e8 d7 c7 fe ff       	call   0x447610
45ae39:	cc                   	int3
45ae3a:	cc                   	int3
45ae3b:	cc                   	int3
45ae3c:	cc                   	int3
45ae3d:	cc                   	int3
45ae3e:	cc                   	int3
45ae3f:	cc                   	int3
45ae40:	55                   	push   %ebp
45ae41:	8b ec                	mov    %esp,%ebp
45ae43:	83 ec 0c             	sub    $0xc,%esp
45ae46:	56                   	push   %esi
45ae47:	8b f1                	mov    %ecx,%esi
45ae49:	8b 4d 08             	mov    0x8(%ebp),%ecx
45ae4c:	8b 56 10             	mov    0x10(%esi),%edx
45ae4f:	89 55 f4             	mov    %edx,-0xc(%ebp)
45ae52:	3b ca                	cmp    %edx,%ecx
45ae54:	77 16                	ja     0x45ae6c
45ae56:	89 4e 10             	mov    %ecx,0x10(%esi)
45ae59:	83 7e 14 10          	cmpl   $0x10,0x14(%esi)
45ae5d:	72 02                	jb     0x45ae61
45ae5f:	8b 36                	mov    (%esi),%esi
45ae61:	c6 04 0e 00          	movb   $0x0,(%esi,%ecx,1)
45ae65:	5e                   	pop    %esi
45ae66:	8b e5                	mov    %ebp,%esp
45ae68:	5d                   	pop    %ebp
45ae69:	c2 08 00             	ret    $0x8
45ae6c:	53                   	push   %ebx
45ae6d:	57                   	push   %edi
45ae6e:	8b 7e 14             	mov    0x14(%esi),%edi
45ae71:	8b d9                	mov    %ecx,%ebx
45ae73:	8b c7                	mov    %edi,%eax
45ae75:	89 7d fc             	mov    %edi,-0x4(%ebp)
45ae78:	2b da                	sub    %edx,%ebx
45ae7a:	2b c2                	sub    %edx,%eax
45ae7c:	3b d8                	cmp    %eax,%ebx
45ae7e:	77 28                	ja     0x45aea8
45ae80:	89 4e 10             	mov    %ecx,0x10(%esi)
45ae83:	83 ff 10             	cmp    $0x10,%edi
45ae86:	72 02                	jb     0x45ae8a
45ae88:	8b 36                	mov    (%esi),%esi
45ae8a:	0f be 45 0c          	movsbl 0xc(%ebp),%eax
45ae8e:	03 f2                	add    %edx,%esi
45ae90:	53                   	push   %ebx
45ae91:	50                   	push   %eax
45ae92:	56                   	push   %esi
45ae93:	e8 d8 7d 17 00       	call   0x5d2c70
45ae98:	83 c4 0c             	add    $0xc,%esp
45ae9b:	c6 04 1e 00          	movb   $0x0,(%esi,%ebx,1)
45ae9f:	5f                   	pop    %edi
45aea0:	5b                   	pop    %ebx
45aea1:	5e                   	pop    %esi
45aea2:	8b e5                	mov    %ebp,%esp
45aea4:	5d                   	pop    %ebp
45aea5:	c2 08 00             	ret    $0x8
45aea8:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
45aead:	2b c2                	sub    %edx,%eax
45aeaf:	3b c3                	cmp    %ebx,%eax
45aeb1:	0f 82 e5 00 00 00    	jb     0x45af9c
45aeb7:	8b f9                	mov    %ecx,%edi
45aeb9:	83 cf 0f             	or     $0xf,%edi
45aebc:	81 ff ff ff ff 7f    	cmp    $0x7fffffff,%edi
45aec2:	76 07                	jbe    0x45aecb
45aec4:	bf ff ff ff 7f       	mov    $0x7fffffff,%edi
45aec9:	eb 20                	jmp    0x45aeeb
45aecb:	8b 45 fc             	mov    -0x4(%ebp),%eax
45aece:	b9 ff ff ff 7f       	mov    $0x7fffffff,%ecx
45aed3:	8b d0                	mov    %eax,%edx
45aed5:	d1 ea                	shr    $1,%edx
45aed7:	2b ca                	sub    %edx,%ecx
45aed9:	3b c1                	cmp    %ecx,%eax
45aedb:	76 07                	jbe    0x45aee4
45aedd:	bf ff ff ff 7f       	mov    $0x7fffffff,%edi
45aee2:	eb 07                	jmp    0x45aeeb
45aee4:	03 c2                	add    %edx,%eax
45aee6:	3b f8                	cmp    %eax,%edi
45aee8:	0f 42 f8             	cmovb  %eax,%edi
45aeeb:	8d 47 01             	lea    0x1(%edi),%eax
45aeee:	8b ce                	mov    %esi,%ecx
45aef0:	50                   	push   %eax
45aef1:	e8 2a df ff ff       	call   0x458e20
45aef6:	83 7d fc 10          	cmpl   $0x10,-0x4(%ebp)
45aefa:	8b 4d 08             	mov    0x8(%ebp),%ecx
45aefd:	89 4e 10             	mov    %ecx,0x10(%esi)
45af00:	0f be 4d 0c          	movsbl 0xc(%ebp),%ecx
45af04:	89 4d 0c             	mov    %ecx,0xc(%ebp)
45af07:	8b 4d f4             	mov    -0xc(%ebp),%ecx
45af0a:	89 7e 14             	mov    %edi,0x14(%esi)
45af0d:	89 45 f8             	mov    %eax,-0x8(%ebp)
45af10:	51                   	push   %ecx
45af11:	8d 3c 08             	lea    (%eax,%ecx,1),%edi
45af14:	8d 14 1f             	lea    (%edi,%ebx,1),%edx
45af17:	89 7d 08             	mov    %edi,0x8(%ebp)
45af1a:	89 55 f4             	mov    %edx,-0xc(%ebp)
45af1d:	72 54                	jb     0x45af73
45af1f:	8b 3e                	mov    (%esi),%edi
45af21:	57                   	push   %edi
45af22:	50                   	push   %eax
45af23:	e8 a8 7e 17 00       	call   0x5d2dd0
45af28:	53                   	push   %ebx
45af29:	ff 75 0c             	push   0xc(%ebp)
45af2c:	ff 75 08             	push   0x8(%ebp)
45af2f:	e8 3c 7d 17 00       	call   0x5d2c70
45af34:	8b 45 f4             	mov    -0xc(%ebp),%eax
45af37:	83 c4 18             	add    $0x18,%esp
45af3a:	8b 4d fc             	mov    -0x4(%ebp),%ecx
45af3d:	41                   	inc    %ecx